Книга: Выразительный JavaScript
Игра «Жизнь» Конвея
Игра «Жизнь» Конвея
Это простая симуляция жизни на прямоугольной решётке, каждый элемент которой живой или нет. Каждое поколение (шаг игры) применяются следующие правила:
— каждая живая клетка, количество соседей которой меньше двух или больше трёх, погибает — каждая живая клетка, у которой от двух до трёх соседей, живёт до следующего хода — каждая мёртвая клетка, у которой есть ровно три соседа, оживает
Соседи клетки – это все соседние с ней клетки по горизонтали, вертикали и диагонали, всего 8 штук.
Обратите внимание, что правила применяются ко всей решётке одновременно, а не к каждой из клеток по очереди. То есть, подсчёт количества соседей происходит в один момент перед следующим шагом, и изменения, происходящие на соседних клетках, не влияют на новое состояние клетки.
Реализуйте игру, используя любые подходящие структуры. Используйте Math.random
для создания случайных начальных популяций. Выводите поле как решётку из галочек с кнопкой «перейти на следующий шаг». Когда пользователь включает или выключает галочки, эти изменения нужно учитывать при подсчёте следующего поколения.
<div></div>
<button>Следующее поколение</button>
<script>
// Ваш код.
</script>
- Жизнь как игра
- Почему необходима миграция
- Сущность процесса миграции
- Миграция между различными версиями InterBase
- Карта миграции
- Прямая миграция
- Сохранение информации о пользователях при миграции
- Особый процесс, или обратная миграция
- Миграция баз данных на Yaffil и обратно
- 3. Связи и миграция ключей
- Глава 14. Почему потребительский опыт играет важную роль в выстраивании клиентских взаимоотношений
- Генри Форд. Моя жизнь, мои достижения