Snaky is a Snake game series including a basic one-player version and three versions of AI to play Snake automatically.
The project is implemented in Python.
If you like it, Please give it a star, Thanks!
You should have pygame module installed.
In this version, you can control the movement of the snake to eat the apple to grow.
git clone https://github.com/memoiry/Snaky
cd Snaky
python snaky.pyIt was actually manually controlled by myself(hard to control while recording the gif....so it's poor..)
A perfect strategy, ensuring filling the screen, but the speed is slow.
python snaky_ai_v1.pyA simple BFS strategy make the snake trapped in local optimal point and not considering future.
python snaky_ai_v2.pyIn this AI version. The algorithm is constructed as follow.
To find snake S1's next moving direction D, the AI snake follows the steps below:
- Compute the shortest path
P1from snakeS1's head to the food. IfP1exists, go to step 2. Otherwise, go to step 4. - Move a virtual snake
S2(the same asS1) to eat the food along pathP1. - Compute the longest path
P2from snakeS2's head to its tail. IfP2exists, letDbe the first direction in pathP1. Otherwise, go to step 4. - Compute the longest path
P3from snakeS1's head to its tail. IfP3exists, let D be the first direction in pathP3. Otherwise, go to step 5. - Let
Dbe the direction that makes the snake the farthest from the food.
python snaky_ai_v3.pyEnjoy!



