gcr / robots

A server and client API for robot battles from the programming language of your choice
Other
2 stars 1 forks source link

note: here lies the original notes that started the problem; it's sorta out-of-date now.

               █████   ▓██▓  █████░  ▓██▓ ███████  ▓███▒
               █   ▓█ ▒█  █▒ █   ▒█ ▒█  █▒   █    █▓  ░█
               █    █ █░  ░█ █    █ █░  ░█   █    █     
               █   ▒█ █    █ █   ▒█ █    █   █    █▓░   
               █████  █    █ █████░ █    █   █     ▓██▓ 
               █  ░█▒ █    █ █   ▒█ █    █   █        ▓█
               █   ░█ █░  ░█ █    █ █░  ░█   █         █
               █    █ ▒█  █▒ █   ▒█ ▒█  █▒   █    █░  ▓█
               █    ▒  ▓██▓  █████░  ▓██▓    █    ▒████░

              Programming-language-agnostic robot battles

This framework is where people can write robots in their own programming language - whichever one they wish - and they'll be run and connected with a central server.

Ideas borrowed from AT Robots 2, http://necrobones.com/atrobots/ and see the specification here: http://necrobones.com/pub/atrobots/docs/atr2.txt

This framework runs in three parts:

  1. A server that hosts the battles
  2. A client API that connects to the server and runs the programs
  3. A web page of some sort so a human can see the field and watch their robots perform

URL reference: http://host/matches Redirects the user to the list of matches if in a browser http://host/matches?history=t Tracks the history of the match list (for long polling clients) http://host/matches?list=t JSON object of current list of matches. http://host/matches?register=t Registers a match. Returns the ID of the match along with a code so you can start it. http://host/matches/00000 Web page of certain match. http://host/matches/00000?register=t Register a slot in a match. http://host/matches/000/slot?connect=t Connect to a running match. http://host/matches/000?start=t&code=c Start a match.

Basic outline of a match: