Tic-tac-toe, with a multiplayer twist
JavaScript HTML CSS
Switch branches/tags
Nothing to show
Clone or download



tic-tac-tic-tac-toe is a new twist on the age old game of tic-tac-toe. Powered by Firebase and AngularFire, tic-tac-tic-tac-toe allows thousands of people to collaboratively and simultaneously play a multi-level variant of tic-tac-toe.

Join the fun at https://tic-tac-tic-tac-toe.firebaseapp.com!

How To Play

Login with either your GitHub or Twitter account to join that team. You and your teammates will each individually suggest your team's next move. The most popular square will be your team's collective move!

Your goal is to win the big tic-tac-toe board by getting three in a row - either across, down, or diagonally - or getting a majority of the squares in a full grid. In order to earn one of the nine squares in the big board, you must win the smaller tic-tac-toe board contained within it.

Your opponent's previous move determines in which board(s) you are allowed to play. For example, if your opponent chose the top right square of the center board, you would then have to choose an open square in the top right board.

If your opponent's previous move would force you to play in a board which has already been won, you can select any open square on the whole board.



If you'd like to fork this repo and / or contribute back to it, you'll need to run the following commands to get your environment set up:

$ git clone https://github.com/jwngr/tic-tac-tic-tac-toe.git
$ cd tic-tac-tic-tac-toe  # go to the tic-tac-tic-tac-toe directory
$ npm install -g gulp     # globally install gulp task runner
$ npm install -g bower    # globally install Bower package manager
$ npm install             # install local npm build dependencies
$ bower install           # install local JavaScript dependencies
$ gulp                    # populate the /dist/ directory

gulp watch will watch for changes in the /src/ directory and lint, concatenate, and minify the source files when a change occurs. The output files are written to the /dist/ directory.

bower install will create a bower_components/ directory within the /src/client/ directory.