11 апреля этого года я заморочился над реализацией игры «Жизнь», придуманной британским математиком Джоном Х. Конвеем. На следующий день моя новостная лента в Фейсбуке сообщила, что в тот же день, 11 апреля, Конвей нас покинул. Коронавирус не щадит никого, особенно тех, кому за восемьдесят. Вы знаете, я надеюсь, что это простое совпадение.
Автора «Жизни» больше нет. Но «Жизнь» продолжается. И с одной из реализаций вы можете ознакомиться
вот по этой ссылке.
Прежде всего. Это MVP (минимальный жизнеспособный продукт), который я буду дорабатывать. Кроме того, стиль заточен под использование на смартфонах с портретной ориентацией. При игре лучше использовать zoom: приблизили фрагмент экрана, заселили одну или несколько ячеек, отдалили и так далее.
Принцип игры очень простой. Сперва игрок задаёт изначальное состояние игрового поля. Для этого нужно просто нажать на ту или иную клетку. Серая клетка - мёртвая, при нажатии она оживает и чернеет. Чёрная клетка - понятно, живая. При нажатии она умирает и сереет.
Потом игрок запускает эволюцию. Либо пошагово (Шаг эволюции), либо в автоматическом режиме (Автомат). В последнем случае эволюция продолжается, пока все клетки не умирают. Вполне возможно, что в этом режиме игра впадёт в бесконечный цикл - если интересно, можете погуглить про блоки, осцилляторы, ружья и прочие интересные вещи.
Эволюция осуществляется по следующим правилам:
У каждой клетки (если она расположена не с краю и не в углу) есть восемь соседей.
Если клетка живая и к моменту шага эволюции у неё есть два или три соседа, она остаётся жить.
Если у живой клетки нет соседей или только один сосед, то она умирает от одиночества. Если соседей четыре или больше, она умирает от перенаселения.
Если у мёртвой клетки есть ровно три соседа, не больше и не меньше, то в ней зарождается жизнь.
И так далее.