Реализация игры «Life 1970» на javascript'е с использованием TDD

Есть прекрасная игра/алгоритм «Conway's Game of Life» [wiki] — это набор правил для клеточного автомата который определяет жизнь колонии. Алгоритм был придуман английским математиком в далеком 1970 году.
Игровое поле — квадратная сетка неограниченного размера.
Каждая клетка может иметь два значения Живая или Мертвая
Игрок задает начальное положение клеток на поле и потом наблюдает как они эволюционируют.
Правил эволюции всего 4 и звучат они так:
  1. Живая клетка у которой меньше двух соседей умерает от одиночества.
  2. Живая клетка у которой 2 или 3 соседа живет до следующего хода.
  3. Живая клетка у которой больше 3 соседей умирает от перенаселения.
  4. Мертвая клетка у которой ровно 3 живых соседа становаится живой (рождается).

Соседними считаются клетки по вертикали, горизонтали и диагонали. Т.е. у одной клетки может быть восемь соседей.

Эти простые правила позволяют реализовать машину Тьюринга и даже простые колонии (наборы живых клеток) могут обладать очень интересными свойствами.



Я решил реализовать алгоритм на джаваскрипте с ипользованием TDD и рассказать об этом.
Играть дальше

© Habrahabr.ru