testdrivennode
Test Driven Node.js Precompiler for Codemash 2014
Getting started
- Install Node.js
- Clone this repo, change into the project directory, and run
npm install
- To run the server, open a new terminal and
nodemon app.js
- To run the unit tests, run
npm test
- To run all tests, run
npm run-script test-all
- To re-run the tests each time a file changes, open a new terminal and
nodemon --exec npm test
API
- POST
/games
#create
- starts the game. - GET
/games/:id
#show
- game state - PUT
/games/:id
#update
- used once per game to place the ships - POST
/games/:gameId/shots
#create
- this is how the user ends a turn
JSON Structure
Game
{
status: ("setup" | "inprogress" | "won" | "lost"),
turn: ("yours" | "opponents"),
primaryGrid:
[
[{state:"none", ship: "ship"}, {state:"hit", ship:"ship"}, {state:"none", ship:"ship"}],
[{state:"miss"}, {state:"miss"}, {state:"miss"}],
[{state:"none"}, {state:"none"}, {state:"none"}]
]
trackingGrid:
[
...
]
}
Shot
{
x: 0,
y: 1,
hit: [true | false],
sunk: ["none sunk" | [shipType]]
}
Frontend
The frontend JavaScript, HTML, and CSS located in /public
are generated. Visit this repo to make changes.