Я новачок у цій гейдевській стекет-обміні, але раніше використовував сайти з математики та cs.
Отже, я змагаюсь створити AI для змії, яка змагатиметься з чотирма іншими зміями за 5 хвилинних раундів, де правила схожі на традиційну гру Nokia Snake, за винятком того, що є п'ять змій, дошка - 30x30 і є ряд невеликих перешкод на полі.
Як і гра Nokia, ваша змія зростає, коли ви доберетеся до плодів, і якщо ви вріжетеся в себе, інша змія або стіна, ви гинете. Гра працює з затримкою 30 мс між рухами, і сервер надсилає новий ігровий стан кожні 50 мс, який код повинен аналізувати, а що ні, і виводити наступний хід.
Переможець - змія, яка мала найдовшу довжину в будь-яку точку гри. Розв'язки вирішують вбивці.
Поки що я зробив це реалізований пошук графіка A * від кожної змії, щоб визначити, чи є моя змія найближчою до яблука, і якщо вона є, вона йде для яблука. В іншому випадку я склав акуратний маленький алгоритм, щоб визначити найпотужнішу площу дошки, на яку йде моя змія, передбачити наступне яблуко.
Крім цього, у мене є кілька невеликих перевірок життєздатності, щоб переконатися, що моя змія не потрапляє у пастку, яку вона не може вийти, і якщо вона застрягне, у мене є щось, що дасть їй кращі шанси вийти.
...
У будь-якому разі, я перевірив свою змію на тестовому сервері, і це дуже добре. Взагалі, моя стратегія - я шукаю лише яблуко, коли його впевнено і знайти простір, коли його не роблять швидше, ніж будь-які інші змії (деякі змії роблять подібну річ, але часто просто йдуть в середину чи кут), іноді вона виграє Ці пробні ігри, але частіше за все не перемагають ту саму змію, яка, схоже, має перевагу в живучості (моя змія росте швидше, але потім якось гине, і ця інша змія просто повільно пливе вздовж і виграє в послідовності.
Тож мені було цікаво про будь-які ідеї, хтось має спробувати вдосконалити мою змію. Або, можливо, ідеї при новому підході. Мої функції та заняття хороші, тому зміни, які можуть здатися різкими, не повинні бути занадто поганими. Я заохочую всі ідеї.
Будь-які думки?