Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tom-weatherhead/thaw-tic-tac-toe-web-service
An Express.js Tic-Tac-Toe Web service
https://github.com/tom-weatherhead/thaw-tic-tac-toe-web-service
Last synced: 11 days ago
JSON representation
An Express.js Tic-Tac-Toe Web service
- Host: GitHub
- URL: https://github.com/tom-weatherhead/thaw-tic-tac-toe-web-service
- Owner: tom-weatherhead
- License: mit
- Created: 2017-08-18T13:47:54.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2024-09-18T10:29:30.000Z (2 months ago)
- Last Synced: 2024-09-19T13:59:06.885Z (about 2 months ago)
- Language: JavaScript
- Size: 2.42 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 35
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# thaw-tic-tac-toe-web-service
An Express.js Tic-Tac-Toe Web service.[![Build Status](https://secure.travis-ci.org/tom-weatherhead/thaw-tic-tac-toe-web-service.svg)](https://travis-ci.org/tom-weatherhead/thaw-tic-tac-toe-web-service)
[![npm](https://img.shields.io/npm/v/thaw-tic-tac-toe-web-service.svg)](https://www.npmjs.com/package/thaw-tic-tac-toe-web-service)
[![npm](https://img.shields.io/npm/dm/thaw-tic-tac-toe-web-service.svg)](https://www.npmjs.com/package/thaw-tic-tac-toe-web-service)
[![license](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/tom-weatherhead/thaw-tic-tac-toe-web-service/blob/master/LICENSE)
[![Maintainability](https://api.codeclimate.com/v1/badges/bfe5aa22262cf1f83f33/maintainability)](https://codeclimate.com/github/tom-weatherhead/thaw-tic-tac-toe-web-service/maintainability)
[![Known Vulnerabilities](https://snyk.io/test/github/tom-weatherhead/thaw-tic-tac-toe-web-service/badge.svg?targetFile=package.json&package-lock.json)](https://snyk.io/test/github/tom-weatherhead/thaw-tic-tac-toe-web-service?targetFile=package.json&package-lock.json)## 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.
2) 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:
```json
{
"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