A simple BattleSnake AI written in Python.
Visit battlesnake.io/readme for API documentation and instructions for running your AI.
This AI client uses the bottle web framework to serve requests and the gunicorn web server for running bottle on Heroku. Dependencies are listed in requirements.txt.
This idea is inspired from Game Programming
- BFS: calculate if the snake is likely to be cornered in x move
- Dijkstra: calculate if the snake is likely to be cornered, taken surrounding weights into consideration
- A*: calculate the shortest path to a point, taken surrounding weights into consideration
The approach: The snake will make a move based on the intention: get food, trap a snake, or safe move
- Get food gets the closest food and run A* to find a path to get there
- Trap a snake runs BFS and Dijkstra to see if a snake is trapped then find a path to get there to block their exit
- Safe move: do Dijkstra from our head, approximate a safe point and navigate there
The kind of moves the snake will make take into account the number of snakes on the board and levels of food
- a working Python 2.7 development environment (getting started guide)
- experience deploying Python apps to Heroku
- pip to install Python dependencies
-
Clone repo to your development environment:
git clone git@github.com:username/battlesnake-python.git
- Install dependencies using pip:
pip install -r requirements.txt
- Run local server:
python app/main.py
- Test client in your browser: http://localhost:8080.
- Create a new Heroku app:
heroku create [APP_NAME]
- Deploy code to Heroku servers:
git push heroku master
- Open Heroku app in browser:
heroku open
or visit http://APP_NAME.herokuapp.com.
- View server logs with the
heroku logs
command:
heroku logs --tail
Email battlesnake@sendwithus.com, or tweet @send_with_us.