Евгений Павлов. Проект "Жизнь" — различия между версиями
(→Результаты) |
(→Стандартный алгоритм игры "Жизнь") |
||
(не показано 12 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
== Описание проекта == | == Описание проекта == | ||
− | Проект направлен на разработку методов моделирования эволюционирующих систем на основе игры "Жизнь".... | + | Проект направлен на разработку методов моделирования эволюционирующих систем на основе [http://ru.wikipedia.org/wiki/%D0%96%D0%B8%D0%B7%D0%BD%D1%8C_%28%D0%B8%D0%B3%D1%80%D0%B0%29 игры "Жизнь"].... |
== Результаты == | == Результаты == | ||
− | + | === Стандартный алгоритм игры "Жизнь" === | |
− | [[Медиа: | + | [[Медиа:Life1.rar| Скачать rar файл]] |
− | Описание алгоритма: | + | ;Описание алгоритма: |
Место действия этой игры — «вселенная» — это размеченная на клетки поверхность. Каждая клетка на этой поверхности может находиться в двух состояниях: быть живой или быть мёртвой. Клетка имеет восемь соседей. Распределение живых клеток в начале игры называется первым поколением. Каждое следующее поколение рассчитывается на основе предыдущего по таким правилам: | Место действия этой игры — «вселенная» — это размеченная на клетки поверхность. Каждая клетка на этой поверхности может находиться в двух состояниях: быть живой или быть мёртвой. Клетка имеет восемь соседей. Распределение живых клеток в начале игры называется первым поколением. Каждое следующее поколение рассчитывается на основе предыдущего по таким правилам: | ||
− | + | # пустая (мёртвая) клетка, рядом с которой ровно три живые клетки, оживает; | |
− | + | # если у живой клетки есть две или три живые соседки, то эта клетка продолжает жить; в противном случае (если соседей меньше двух или больше трёх) клетка умирает (от «одиночества» или от «перенаселённости»). | |
− | |||
Игрок не принимает прямого участия в игре, а лишь расставляет начальную конфигурацию «живых» клеток, которые затем взаимодействуют согласно правилам уже без его участия. | Игрок не принимает прямого участия в игре, а лишь расставляет начальную конфигурацию «живых» клеток, которые затем взаимодействуют согласно правилам уже без его участия. | ||
Эти простые правила приводят к огромному разнообразию форм, которые могут возникнуть в игре. | Эти простые правила приводят к огромному разнообразию форм, которые могут возникнуть в игре. | ||
+ | |||
+ | Простейший алгоритм последовательно просматривает все ячейки решетки и для каждой ячейки подсчитывает соседей, определяя судьбу каждой клетки (не изменится, умрет, родится). Такой простейший алгоритм использует два двумерных массива — один для текущего поколения, второй — для следующего. Более сложный, но и более быстрый алгоритм составляет списки клеток для просмотра в последующем поколении; клетки, которые не могут измениться, в списки не вносятся. Например, если какая-либо клетка и ни одна из ее соседей не поменялись на предыдущем ходу, то эта клетка не поменяется и на текущем ходу. | ||
− | |||
− | + | [[Category: Студенческие проекты]] |
Текущая версия на 17:14, 22 января 2012
Описание проекта[править]
Проект направлен на разработку методов моделирования эволюционирующих систем на основе игры "Жизнь"....
Результаты[править]
Стандартный алгоритм игры "Жизнь"[править]
- Описание алгоритма
Место действия этой игры — «вселенная» — это размеченная на клетки поверхность. Каждая клетка на этой поверхности может находиться в двух состояниях: быть живой или быть мёртвой. Клетка имеет восемь соседей. Распределение живых клеток в начале игры называется первым поколением. Каждое следующее поколение рассчитывается на основе предыдущего по таким правилам:
- пустая (мёртвая) клетка, рядом с которой ровно три живые клетки, оживает;
- если у живой клетки есть две или три живые соседки, то эта клетка продолжает жить; в противном случае (если соседей меньше двух или больше трёх) клетка умирает (от «одиночества» или от «перенаселённости»).
Игрок не принимает прямого участия в игре, а лишь расставляет начальную конфигурацию «живых» клеток, которые затем взаимодействуют согласно правилам уже без его участия. Эти простые правила приводят к огромному разнообразию форм, которые могут возникнуть в игре.
Простейший алгоритм последовательно просматривает все ячейки решетки и для каждой ячейки подсчитывает соседей, определяя судьбу каждой клетки (не изменится, умрет, родится). Такой простейший алгоритм использует два двумерных массива — один для текущего поколения, второй — для следующего. Более сложный, но и более быстрый алгоритм составляет списки клеток для просмотра в последующем поколении; клетки, которые не могут измениться, в списки не вносятся. Например, если какая-либо клетка и ни одна из ее соседей не поменялись на предыдущем ходу, то эта клетка не поменяется и на текущем ходу.