thaw-tic-tac-toe-web-service

0.0.2 • Public • Published

thaw-tic-tac-toe-web-service

An Express.js Tic-Tac-Toe Web service.

Build Status npm npm license Maintainability Known Vulnerabilities

Git Installation Instructions

git clone https://github.com/tom-weatherhead/thaw-tic-tac-toe-web-service.git
cd thaw-tic-tac-toe-web-service
npm install -g grunt
npm install
grunt
npm start

Note: The command "grunt" runs lint, unit tests, and security tests.

npm Installation Instructions

npm install -g thaw-tic-tac-toe-web-service
thaw-tic-tac-toe-web-service

Usage

The Web service uses the game engine in the npm package thaw-tic-tac-toe-game-engine. By default, the Web service listens on port 3000/TCP and responds with JSON data.

To use the Web service:

The Web service plays Tic-Tac-Toe on a 3-by-3 board. It takes two parameters:

  1. boardString: A 9-character string representation of the 3-by-3 game board. Empty squares are represented by the letter 'E'. For example, the board

. O X . X . O . .

... would be represented by the string 'EOXEXEOEE'.

The game engine will infer which player is to move based on the relative populations of X and O pieces currently on the board.

  1. maxPly: The maximum depth to which to search the game tree. By default, maxPly must be an integer no less than 1 and no greather than 6.

Sample HTTP GET request URL:

http://localhost:3000/tictactoe/EEEEXEEEE/5

Sample JSON response:

{
    "bestRow": 0,
    "bestColumn": 1,
    "bestMoveList": [
        { "row": 0, "column": 1 },
        { "row": 1, "column": 0 },
        { "row": 1, "column": 2 },
        { "row": 2, "column": 1 }
    ],
    "bestScore": 1,
    "player": "O"
}

bestScore = 100 indicates that player X can force a victory.

License

MIT

Package Sidebar

Install

npm i thaw-tic-tac-toe-web-service

Weekly Downloads

2

Version

0.0.2

License

MIT

Unpacked Size

15.2 kB

Total Files

11

Last publish

Collaborators

  • tom-weatherhead