Репозиторий для создания ИИ для змейки с помощью нейронных сетей. Основным фреймворком выбран Keras.
Игра поддерживает удобное и быстрое добавление и использование новых алгоритмов игры. См. раздел Запуск.
Запуск алгоритма передвижения по кругу с оконным отображением.
git clone https://github.com/d0rj/snake_ai.git
cd ./snake_ai/
python main.py
Функция алгоритма вызывается каждый ход перед передвижением змейки.
Она должна иметь следующую сигнатуру:
- На входе:
- объект
engine.Game
, содержащий информацию о текущем состоянии игры;
- объект
- На выходе:
- объект перечисления
Direction
, обозначающий новое абсолютное направление движения змейки;
- объект перечисления
- Имя:
- Может быть любым, по умолчанию ищется имя
snake_ai
;
- Может быть любым, по умолчанию ищется имя
- Модуль (где функцию писать):
- Можно писать где угодно, но по умолчанию она ищется в модуле
ai.snake_ai
.
- Можно писать где угодно, но по умолчанию она ищется в модуле
Примеры можно посмотреть в папке ai репозитория.
Для указания пути до функции ИИ используй параметр -m/--module.
Для указания имени функции ИИ (если оно вдруг другое) используй параметр -f/--function.
python main.py -m path.to.module -f 'my_awesome_ai_function' # пример запуска программы со своим алгоритмом
По умолчанию процесс игры отображается в открытом окне. Для того, чтобы игра происходила в 'тихом режиме' (без окна), следует при запуске программы указать флаг -n/--no-window:
python main.py -m path.to.module --no-window
Можно играть самому с использованием клавиатуры, если при запуске указать флаг -k/--keyboard:
python main.py -k
Последовательная нейронная сеть, обучаемая лишь на выживание.
В итоге выполняет свою задачу отлично: просто вертится вокруг самой себя и живёт вечно.
Последовательная НС, обучаемая на выживание + съедание еды.