thaw-reversi-engine.ts
Version:
A Node.js Reversi (Othello) game engine with alpha-beta pruning and a heuristic, packaged for npm.
64 lines (50 loc) • 2.42 kB
Markdown
# thaw-reversi-engine.ts
A Node.js Reversi (Othello) game engine with alpha-beta pruning and a heuristic, packaged for npm.
[](https://travis-ci.org/tom-weatherhead/thaw-reversi-engine.ts)
[](https://www.npmjs.com/package/thaw-reversi-engine.ts)
[](https://www.npmjs.com/package/thaw-reversi-engine.ts)
[](https://snyk.io/test/github/tom-weatherhead/thaw-reversi-engine.ts?targetFile=package.json&package-lock.json)
[](https://codeclimate.com/github/tom-weatherhead/thaw-reversi-engine.ts/maintainability)
[](https://codeclimate.com/github/tom-weatherhead/othello-angular-electron/test_coverage)
[](https://github.com/facebook/jest)
[](https://github.com/prettier/prettier)
[](https://github.com/tom-weatherhead/thaw-reversi-engine.ts/blob/master/LICENSE)
### Git Installation Instructions
```
git clone https://github.com/tom-weatherhead/thaw-reversi-engine.ts.git
cd thaw-reversi-engine.ts
npm run all
```
### npm Installation Instructions
```
npm install [--save] thaw-reversi-engine.ts
```
### Sample Usage of the npm Package
```js
let engine = require('thaw-reversi-engine.ts');
let boardString = engine.createInitialBoard();
let player = 'X';
let maxPly = 5;
try {
let result = engine.findBestMove(boardString, player, maxPly);
console.log(result);
} catch (error) {
console.error('engine.findBestMove() threw an exception:', error);
}
```
Output: E.g.
```js
{
bestRow: 4,
bestColumn: 2,
bestScore: 3,
bestMoves: [
{ row: 2, column: 4 },
{ row: 3, column: 5 },
{ row: 4, column: 2 },
{ row: 5, column: 3 }
]
}
```
## License
[MIT](https://choosealicense.com/licenses/mit/)