1.0.4 • Published 2 months ago

gameoflife.js v1.0.4

Weekly downloads
-
License
MIT
Repository
github
Last release
2 months ago

gameoflife.js

Installation

using yarn:

yarn add gameoflife.js

using npm:

npm i gameoflife.js

Usage

import { GameOfLife } from "gameoflife.js"

const initialCell = [
  {
    width: 1,
    height: 0,
  },
  {
    width: 2,
    height: 1,
  },
  {
    width: 0,
    height: 2,
  },
  {
    width: 1,
    height: 2,
  },
  {
    width: 2,
    height: 2,
  },
]
const game = new GameOfLife({ width: 5, height: 10, initialCell })

Show current cells :

Input

game.cells

Output:

[
  [0, 1, 0, 0, 0],
  [0, 0, 1, 0, 0],
  [1, 1, 1, 0, 0],
  [0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0],
]

Get next cells :

Input

game.next()

Output:

[
  [0, 0, 0, 0, 0],
  [1, 0, 1, 0, 0],
  [0, 1, 1, 0, 0],
  [0, 1, 0, 0, 0],
  [0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0],
]

Add cells :

input

game.add([{ width: 0, height: 0 }])

output

[
  [1 /* added */, 0, 0, 0, 0],
  [1, 0, 1, 0, 0],
  [0, 1, 1, 0, 0],
  [0, 1, 0, 0, 0],
  [0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0],
]

Remove cells :

input

game.remove([{ width: 0, height: 0 }])

output

[
  [0 /* removed */, 0, 0, 0, 0],
  [1, 0, 1, 0, 0],
  [0, 1, 1, 0, 0],
  [0, 1, 0, 0, 0],
  [0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0],
]

Toogle cells :

input

game.toogle([{ width: 0, height: 0 }])

output

[
  [1 /* become 1 */, 0, 0, 0, 0],
  [1, 0, 1, 0, 0],
  [0, 1, 1, 0, 0],
  [0, 1, 0, 0, 0],
  [0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0],
  [0, 0, 0, 0, 0],
]
1.0.4

2 months ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

3 years ago

1.0.0

3 years ago