Евгений Павлов. Проект "Жизнь" — различия между версиями

Материал из Department of Theoretical and Applied Mechanics
Перейти к: навигация, поиск
(Результаты)
(Стандартный алгоритм игры "Жизнь")
 
(не показано 7 промежуточных версий 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 игры "Жизнь"]....
  
 
== Результаты ==
 
== Результаты ==
* Стандартный алгоритм игры "Жизнь"
+
=== Стандартный алгоритм игры "Жизнь" ===
[[Медиа:Life.rar| Скачать exe файл]]
+
[[Медиа:Life1.rar| Скачать rar файл]]
  
Описание алгоритма:
+
;Описание алгоритма:
  
 
Место действия этой игры — «вселенная» — это размеченная на клетки поверхность. Каждая клетка на этой поверхности может находиться в двух состояниях: быть живой или быть мёртвой. Клетка имеет восемь соседей. Распределение живых клеток в начале игры называется первым поколением. Каждое следующее поколение рассчитывается на основе предыдущего по таким правилам:
 
Место действия этой игры — «вселенная» — это размеченная на клетки поверхность. Каждая клетка на этой поверхности может находиться в двух состояниях: быть живой или быть мёртвой. Клетка имеет восемь соседей. Распределение живых клеток в начале игры называется первым поколением. Каждое следующее поколение рассчитывается на основе предыдущего по таким правилам:
  
1) пустая (мёртвая) клетка, рядом с которой ровно три живые клетки, оживает;
+
# пустая (мёртвая) клетка, рядом с которой ровно три живые клетки, оживает;
 
+
# если у живой клетки есть две или три живые соседки, то эта клетка продолжает жить; в противном случае (если соседей меньше двух или больше трёх) клетка умирает (от «одиночества» или от «перенаселённости»).
2) если у живой клетки есть две или три живые соседки, то эта клетка продолжает жить; в противном случае (если соседей меньше двух или больше трёх) клетка умирает (от «одиночества» или от «перенаселённости»).
 
  
 
Игрок не принимает прямого участия в игре, а лишь расставляет начальную конфигурацию «живых» клеток, которые затем взаимодействуют согласно правилам уже без его участия.
 
Игрок не принимает прямого участия в игре, а лишь расставляет начальную конфигурацию «живых» клеток, которые затем взаимодействуют согласно правилам уже без его участия.
Строка 21: Строка 20:
  
  
* Два типа частиц
 
[[Медиа:Vyrus.rar| Скачать exe файл]]
 
 
в разработке
 
  
Описание алгоритма:
+
[[Category: Студенческие проекты]]

Текущая версия на 17:14, 22 января 2012

Описание проекта[править]

Проект направлен на разработку методов моделирования эволюционирующих систем на основе игры "Жизнь"....

Результаты[править]

Стандартный алгоритм игры "Жизнь"[править]

Скачать rar файл

Описание алгоритма

Место действия этой игры — «вселенная» — это размеченная на клетки поверхность. Каждая клетка на этой поверхности может находиться в двух состояниях: быть живой или быть мёртвой. Клетка имеет восемь соседей. Распределение живых клеток в начале игры называется первым поколением. Каждое следующее поколение рассчитывается на основе предыдущего по таким правилам:

  1. пустая (мёртвая) клетка, рядом с которой ровно три живые клетки, оживает;
  2. если у живой клетки есть две или три живые соседки, то эта клетка продолжает жить; в противном случае (если соседей меньше двух или больше трёх) клетка умирает (от «одиночества» или от «перенаселённости»).

Игрок не принимает прямого участия в игре, а лишь расставляет начальную конфигурацию «живых» клеток, которые затем взаимодействуют согласно правилам уже без его участия. Эти простые правила приводят к огромному разнообразию форм, которые могут возникнуть в игре.

Простейший алгоритм последовательно просматривает все ячейки решетки и для каждой ячейки подсчитывает соседей, определяя судьбу каждой клетки (не изменится, умрет, родится). Такой простейший алгоритм использует два двумерных массива — один для текущего поколения, второй — для следующего. Более сложный, но и более быстрый алгоритм составляет списки клеток для просмотра в последующем поколении; клетки, которые не могут измениться, в списки не вносятся. Например, если какая-либо клетка и ни одна из ее соседей не поменялись на предыдущем ходу, то эта клетка не поменяется и на текущем ходу.