tictactoejs
DefinitelyTyped icon, indicating that this package has TypeScript declarations provided by the separate @types/tictactoejs package

1.0.3 • Public • Published

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/

Package Sidebar

Install

npm i tictactoejs

Weekly Downloads

24

Version

1.0.3

License

MIT

Last publish

Collaborators

  • xprycker