[Из песочницы] И снова игра «Жизнь»
Тема игры «Жизнь», не раз поднималась на хабре. Описывались различные модификации игры, я хочу представить еще одну. Модификация игры довольно тривиальна, но дает больше возможности в наблюдении, чем оригинал.В классических правилах придуманных Джоном Конвеем, каждая клетка игрового поля, может быть только в двух состояниях: либо клетка пуста, либо заполнена фишкой.Подобно эволюции в природе, где развитие шло от одноклеточных к многоклеточным, логично представить развитие игры «Жизнь», где в клетке может находиться больше одной фишки.Таким образом, можно представить игровое поле в виде двумерного массива целых положительных чисел.
Итак, помимо стандартных условий зарождения жизни и ее гибели, у нас будут условия «роста» и «деградации»:
пустая клетка, или клетка со значением 0, получает значение 1, при условии, если ее окружают 3 клетки со значением больше 0; клетка со значением больше 0, будет «расти», то есть получит +1, при условии, если она имеет 2–3 соседа со значением больше 0; клетка со значением больше 0, примет значение 0, если имеет 1, 4–5 соседей имеющих значение выше 0; клетка со значением выше 0, будет «деградировать», то есть ее значение уменьшиться на 1 (-1), при условии, если все соседние клетки имеют 0, или 6–8 соседей имеют значение больше 0. Помимо этого есть смысл определить предел роста клетки. Так же условие, которое определяет, что происходит с клеткой по достижении максимума.Интерпретация правил в настройках приложения:
Эти правила, конечно, можно варьировать и получать результаты.[embedded content]
Как мы видим, поведение клеток с новыми правилами стало еще более сложным и интересным для наблюдений.
Реализация