Add API
This commit is contained in:
parent
2a76b5c022
commit
6557bc5c67
2 changed files with 76 additions and 0 deletions
76
doc/api.org
Normal file
76
doc/api.org
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
#+TITLE: Remote Snake API
|
||||||
|
|
||||||
|
#+OPTIONS: toc:nil
|
||||||
|
#+LATEX_HEADER: \usepackage{fullpage}
|
||||||
|
|
||||||
|
* General Description
|
||||||
|
- All transmissions will be based on UDP
|
||||||
|
- All UDP packet will contain plain json data
|
||||||
|
* Communications
|
||||||
|
** Initialisation
|
||||||
|
1. Server wait for a client
|
||||||
|
2. Client can send:
|
||||||
|
#+BEGIN_SRC json
|
||||||
|
{
|
||||||
|
"type": "new-game"
|
||||||
|
}
|
||||||
|
#+END_SRC
|
||||||
|
3. Server can reply:
|
||||||
|
#+BEGIN_SRC json
|
||||||
|
{
|
||||||
|
"type": "state",
|
||||||
|
"game-id": 1,
|
||||||
|
"game-over": false,
|
||||||
|
"snake": [(1,2),(1,3)],
|
||||||
|
"food": [(6,7)]
|
||||||
|
}
|
||||||
|
#+END_SRC
|
||||||
|
** Gameplay
|
||||||
|
*** Change Direction
|
||||||
|
1. When client is playing a game it can ask to the server to change snake direction:
|
||||||
|
#+BEGIN_SRC json
|
||||||
|
{
|
||||||
|
"type": "update",
|
||||||
|
"direction": "left",
|
||||||
|
}
|
||||||
|
#+END_SRC
|
||||||
|
2. Server can reply
|
||||||
|
#+BEGIN_SRC json
|
||||||
|
{
|
||||||
|
"type": "state",
|
||||||
|
"game-id": 1,
|
||||||
|
"game-over": false,
|
||||||
|
"snake": [(0,2),(1,2)],
|
||||||
|
"food": [(6,7)]
|
||||||
|
}
|
||||||
|
#+END_SRC
|
||||||
|
*** Refresh Screen
|
||||||
|
1. When no key are press (the snake is simply going straigth forward). So, client can send:
|
||||||
|
#+BEGIN_SRC json
|
||||||
|
{
|
||||||
|
"type": "update",
|
||||||
|
"direction": null
|
||||||
|
}
|
||||||
|
#+END_SRC
|
||||||
|
2. Server can reply:
|
||||||
|
#+BEGIN_SRC json
|
||||||
|
{
|
||||||
|
"type": "state",
|
||||||
|
"game-id": 1,
|
||||||
|
"game-over": false,
|
||||||
|
"snake": [(1,2),(0,2)],
|
||||||
|
"food": [(6,7)]
|
||||||
|
}
|
||||||
|
#+END_SRC
|
||||||
|
*** End Game
|
||||||
|
- When game is over server will send the following state message (switch game-over to true):
|
||||||
|
#+BEGIN_SRC json
|
||||||
|
{
|
||||||
|
"type": "state",
|
||||||
|
"game-id": 1,
|
||||||
|
"game-over": true,
|
||||||
|
"snake": [(0,2),(1,2)],
|
||||||
|
"food": [(6,7)]
|
||||||
|
}
|
||||||
|
#+END_SRC
|
||||||
|
- No reply is expected from the client and server will be in charge to free local memory
|
BIN
doc/api.pdf
Normal file
BIN
doc/api.pdf
Normal file
Binary file not shown.
Loading…
Add table
Reference in a new issue