GithubHelp home page GithubHelp logo

barryvanveen / gameoflife Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 84 KB

๐ŸŽฒ Conway's Game of Life Javascript plugin

License: MIT License

JavaScript 100.00%
conway game gameoflife canvas es6 es2015

gameoflife's Introduction

Game of Life

A Javascript implementation of Conway's Game of Life.

v1.1.0

  • Implemented with ES6 Javascript and HTML5 element.
  • No dependencies, except for canvas support.
  • It's possible to run multiple instances on the same page.
  • Set an arbitrary state using the setState() method.

Installation

  1. bower install --save-dev gameoflife, npm install --save-dev gameoflife-es6 or download /dist/gameoflife.min.js.
  2. Add a canvas-element to your html with an ID of your choice.
  3. Include the following Javascript in your html file, just before closing the body tag:
   <script src="src/gameoflife.js"></script>
   <script type="text/javascript">
       var myGameOfLife = new GameOfLife();
   </script>
  1. Add some buttons to control the game. See our example page and check out the Usage section below.

If you are using ES6 you can also import the GameOfLife class from /src/gameoflife.js

Usage

Initialise a new instance using var myGame = new GameOfLife();. Override default parameters using var myCustomGame = new GameOfLife({canvas_id: "myCustomID", num_cols: 123}).

Click on cells in the grid to change their state. You can also set the state with the setState() method. Once your finished providing the initial state, call the start() method.

###setState(cells)

Provide an array of cells. Each cell is an object consisting of the column and row, eg. {col: 1, row: 2}. The state of each cell is changed but no further checks are made.

Example of adding a Blinker pattern to an empty state:

MyGame.setState([
    {col: 1, row: 0},
    {col: 1, row: 1},
    {col: 1, row: 2}
]);

start()

Starts iterating of states of the game. The game stops automatically if the game ends up in dead state, ie. no changes are made by further iterations.

step()

Compute the next state of the population. If the game is currently running it is stopped after this iteration.

stop()

Stop the game from iterating any further.

reset()

Reset to an empty state. If the game is currently running it is stopped.

Configuration

Below is a list of options with the default values.

  • canvas_id (String, "gameoflife_canvas") ID that identifies the canvas element.
  • num_cols (Int, 80) Number of columns in the grid.
  • num_rows (Int, 40) Number of rows in the grid.
  • cell_size (Int, 10) Size of each cell, in pixels.
  • color_lines (String, "#cccccc") Color of the grid lines.
  • color_cell_dead (String, "#ffffff") Color of dead cells.
  • color_cell_alive (String, "#57A0DB") Color of live cells.
  • update_interval (Int, 50) Update interval in milliseconds.

Examples

Take a look at the example page.

Licence

This software is freely distributable under the terms of the MIT license.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.