This application is an example exercise which takes advantage of using AngularJS, Yeoman, Grunt, Bower, Karma, Jasmine and other JS libraries.
It demonstrates the techniques by completing an exercise. See below for the full exercise details.
Live example: http://projects.ryanalberts.com/GameOfLife/
- Generic installation instructions.
- Mac DMG here
- Windows download from here. (You will also need 7 Zip to unzip the node archive)
(and don't forget to add
node.exe
to your executable path)
- Install yeoman:
npm install -g yo
Install dependencies:
$ npm install
$ bower install
Server - Fire up the server (it will compile templates, scss, js, tests as first task):
$ grunt build
$ grunt server
- To start the server type:
grunt server
Write some code that evolves generations through the "game of life".
The input will be a game board of cells, either alive (1) or dead (0).
The code should take this board and create a new board for the next generation based on the following rules:
- Any live cell with fewer than two live neighbours dies (under-population)
- Any live cell with two or three live neighbours lives on to the next generation (survival)
- Any live cell with more than three live neighbours dies (overcrowding)
- Any dead cell with exactly three live neighbours becomes a live cell (reproduction)
As an example, this game board as input:
0 1 0 0 0 1 0 0 1 1 1 1 0 0 1 0 1 0 0 0 1 0 0 0 1
Will have a subsequent generation of:
0 0 0 0 0 1 0 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0