# tictactoejs

> provide a library like chess.js but for tic tac toe.. you can make your own GUI

Latest version **1.0.3** (published 2016-05-06) · MIT license · 0 weekly downloads

## Install

```sh
npm install tictactoejs
pnpm add tictactoejs
yarn add tictactoejs
bun add tictactoejs
```

## Health

**Score 23/100 (F)** — status: abandoned.

Positive: has types package; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.3 |
| Published | 2016-05-06 |
| First published | 2016-05-05 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | separate (@types/tictactoejs) |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | ryan hs |
| Maintainers | xprycker |
| Keywords | tic, tac, toe, move, generation, tic-tac-toe |

## Links

- npm: https://www.npmjs.com/package/tictactoejs
- Repository: https://github.com/ryanhs/TicTacToeJS
- Homepage: https://github.com/ryanhs/TicTacToeJS#readme
- Issues: https://github.com/ryanhs/TicTacToeJS/issues
- npm.io page: https://npm.io/package/tictactoejs

## Alternatives

- [gamedig](https://npm.io/package/gamedig.md) — 29.3K weekly downloads
- [join-monster](https://npm.io/package/join-monster.md) — 12.8K weekly downloads
- [masked](https://npm.io/package/masked.md) — 5.5K weekly downloads
- [@comunica/actor-query-process-explain-logical](https://npm.io/package/@comunica/actor-query-process-explain-logical.md) — 4.7K weekly downloads
- [@veracity/vui](https://npm.io/package/@veracity/vui.md) — 4.6K weekly downloads

## Recent versions

- 1.0.3 (latest) — 2016-05-06
- 1.0.2 — 2016-05-05
- 1.0.1 — 2016-05-05
- 1.0.0 — 2016-05-05

## README

# TicTacToeJS
provide a library like chess.js but for tic tac toe.. you can make your own GUI

#### installation

npm command line:
	```
	npm install tictactoejs
	```

bower command line:
	```
	bower install tictactoejs
	```


#### usage example as NPM module
```
var TicTacToe = require('tictactoejs');
var game = new TicTacToe.TicTacToe();

	game.turn(); // first move will be X
	game.move(2, 2));
	
	game.turn(); // will be O
	game.move(2, 1));
	
	console.log(game.ascii()); // check board
```

#### usage example in web / bower
```
<script type="text/javascript" src="bower_components/tictactoejs/TicTacToe.min.js"></script>
<script type="text/javascript">
var game = new TicTacToe();

	game.turn(); // first move will be X
	game.move(2, 2));
	
	game.turn(); // will be O
	game.move(2, 1));
	console.log(game.ascii()); // check board
</script>
```


#### a bit of documentation
```
	var game = new TicTacToe(boardSize);  // default 3
	
	game.turn();		// check whos turn X or O
	
	/*
	 * default move
	 * move with Cartesian coordinate system, but array still in normal style :-)
	 * 
	 * usually board game like chess using cartesian coordinate, but x in alphabet
	 * since tic tac toe have no formal notation, lets use this
	 * 
	 * Y
	 * 3   1,3 | 2,3 | 3,3
	 *     ---------------
	 * 2   1,2 | 2,2 | 3,2
	 *     ---------------
	 * 1   1,1 | 2,1 | 3,1
	 *
	 *      1     2     3	X	
	 * */
	game.move(x, y);
	
	
	game.ascii();		// print table in ascii mode
	game.ascii2();		// print table in ascii mode, just different style
	
	
	game.game_over();	// check if game is over true or false
	game.isDraw();		// check if game is draw true or false
	
	/*
	 * if game draw,  return 'draw'
	 * if game X win, return 'X'
	 * if game O win, return 'O'
	 * if game still in progress, return 'in progress'
	 */
	game.status();
	
	game.legalMoves(); // return an array of objects that x,y still available
	
	
	/*
	 * AI moves, just random :-p
	 * */
	game.randomMove();
```





#### inspiration
actually i made this project because i need to make a 3D game for my finalterm in ITB (GPU subject)
and i made tic tac toe game with three.js,
and this library inspired by chess.js (separating GUI and the game)


#### license
MIT


#### example / demo
[https://ryanhs.github.io/TicTacToeJS/](https://ryanhs.github.io/TicTacToeJS/)

---
_Source: https://npm.io/package/tictactoejs · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
