Skip to content

A Snake AI written using BFS, Dijkstra, HeatMap and A* algorithms to survive and fight off other snakes

Notifications You must be signed in to change notification settings

qqqstuv/BattleSnake-2017

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

battlesnake-python

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.

Deploy

This idea is inspired from Game Programming

Algorithms used:

  • 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

You will need...

Running the Snake Locally

  1. Fork this repo.

  2. Clone repo to your development environment:

git clone git@github.com:username/battlesnake-python.git
  1. Install dependencies using pip:
pip install -r requirements.txt
  1. Run local server:
python app/main.py
  1. Test client in your browser: http://localhost:8080.

Deploying to Heroku

  1. Create a new Heroku app:
heroku create [APP_NAME]
  1. Deploy code to Heroku servers:
git push heroku master
  1. Open Heroku app in browser:
heroku open

or visit http://APP_NAME.herokuapp.com.

  1. View server logs with the heroku logs command:
heroku logs --tail

Questions?

Email battlesnake@sendwithus.com, or tweet @send_with_us.

About

A Snake AI written using BFS, Dijkstra, HeatMap and A* algorithms to survive and fight off other snakes

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published