Skip to content

ralberts/GameOfLife

Repository files navigation

Game of Life Application

Overview

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/

Prerequisites

Git

  • A good place to learn about setting up git is here
  • Git home (download, documentation)

Node.js

Yeoman

  • Install yeoman: npm install -g yo

Getting Started

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

Running the application

  • To start the server type: grunt server

Exercise

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:

  1. Any live cell with fewer than two live neighbours dies (under-population)
  2. Any live cell with two or three live neighbours lives on to the next generation (survival)
  3. Any live cell with more than three live neighbours dies (overcrowding)
  4. 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

Releases

No releases published

Packages

No packages published