Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > Алгоритм игры "Жизнь"


Автор: Tulsky 16.1.2006, 21:27
Никто не поделится?

Автор: SoWa 16.1.2006, 21:30
Как? Поделимся.
Если вокруг пустой клетки есть три живых, в ней зародится жизнь. Если вокруг живой клетки 3 или более живых, то жизнь в ней умрет.
Вот и весь алгоритм Дж. Х. Конвея.

Реализация тоже простая. Я писал на Дельфи. Если надо, скину на мыло.

Автор: poor_yorik 17.1.2006, 17:26
Добавлю, что надо как бы заводить две матрицы a и b. В одной из них хранится уже сделанный ход, а в другой мы генерируем новых ход, по правилам, которые дал SoWa. Потом a:=b и выводим а на экран.
smile

Автор: SoWa 17.1.2006, 17:48
Да. А иначе путаница будет smile

Автор: Vendigo 17.1.2006, 22:29
Игра ЖИЗНЬ была разработана известным математиком Дж. Конвеем в 1970 г. и является одной из иллюстраций теории клеточных автоматов, разработанной фон Нейманом
Действие игры происходит на некой плоскости, разделенной на клетки. Каждая клетка окружена 8 такими же клетками. Каждая клетка может находиться в двух состояниях - живом или мертвом, т. е. пустом. На состояние любой клетки оказывают влияние состояние соседних клеток. Во времени эти состояния изменяются дискретно в соответствии с некоторыми правилами или ГЕНЕТИЧЕСКИМИ ЗАКОНАМИ КОНВЕЯ, состоящими из 2 пунктов:

1)ВЫЖИВАНИЕ ИЛИ ГИБЕЛЬ. Если живая клетка имеет менее 2 или более 3 соседей в окрестности из 8 клеток, то в следующем поколении она умирает (здесь простая аналогия с реальной жизнью - недостаток питания или перенаселенность), в противном случае она выживает;
2) РОЖДЕНИЕ. В пустой клетке появляется живая клетка, если у исходной клетки ровно 3 соседа (3 родителя!).

Гибель и рождение всех организмов происходит одновременно.

Автор: Helicopterr 16.2.2006, 03:03
Интересно, а почему рождение происходит когда соседа ровно три, в генетике есть что-то подобное? и почему окресность из восьми? Какой размерности доска? Кто выигрывает?

Автор: Helicopterr 17.2.2006, 17:00
Спасибо, я нашел ответы на эти вопросы. Не более 3-х и не менее 2-х соседей это, похоже, всего лишь условие Конвея и ничего интересного в этой игре не наблюдается. Она больше понравится любителям фракталов. Чем-то похожа, но гораздо более увлекательна старинная игра Уэй чи или же Го. Кстати я читал о том, что достойной программы по Го еще не создано, так как не могут придумать алгоритм. Кому интересно, могу прислать статьи.

Автор: SoWa 17.2.2006, 21:18
Инетресно. Шли на мыло.
Кстати, нормальная игра жизнь подразумевает установку правил рождения и смерти.
Добавлено @ 21:19
Доска бесконечна(в идее). Ограничена лишь экраном. Можно самому размер ставить.

Автор: Helicopterr 18.2.2006, 22:32
SoWa
держи

Автор: Alx 19.2.2006, 22:01
и мне!)
и всем! smile

Автор: Mayk 19.2.2006, 22:10
Цитата(Helicopterr @ 17.2.2006, 21:00 Найти цитируемый пост)
ничего интересного в этой игре не наблюдается.

однако. ты сколько паттернов смотрел?
Добавлено @ 22:12
Цитата(Alx @ 20.2.2006, 02:01 Найти цитируемый пост)
и мне!)
и всем!

+1

Автор: Helicopterr 19.2.2006, 23:30
Цитата(Mayk @ 19.2.2006, 22:10)
однако. ты сколько паттернов смотрел?


Нет я имею ввиду что это вроде как и не игра... не могу подобрать слово... Сейчас читаю лекции по нейронным сетям, так что может ещё и увлекусь smile
Цитата(Alx @ 20.2.2006, 02:01 Найти цитируемый пост)
и мне!)
и всем!

Хм. Ну пока справляюсь smile

__________________
Я чё то не подумал, надо бало расширение архива изменить или паролем защитить. Проверьте на всякий случай. В архиве "Go Game (Helicopterr from Vingrad).zip" (414 кб) не должно быть ничего кроме:

1) Game.pdf
2) Обновление MutiGo до 4.2.1.htm + папка с рисунками
3) readme.txt


Автор: Alx 20.2.2006, 16:13
хех) игра эта - обыкновенные точки) только торозит жутко.
где-то недавно кто-то сделал эту игру, только играть гораздо интереснее и работает она намного быстрее smile

Автор: Coocky 20.2.2006, 16:45
А как внешне она выглядит? Надо какие-то ходы делать?

Автор: Alx 20.2.2006, 16:54
ну ты в точки играл?)
там клеточки, в них ставишь свою точку, потом компьютер, поочереди, задача - обвести чужую точку/точки своими) когда место кончится, выиграл тот, кто больше точек завоевал smile

Автор: Coocky 20.2.2006, 17:01
Цитата(Alx @ 20.2.2006, 16:54 Найти цитируемый пост)
ну ты в точки играл?)

А как же! smile
Теперь понятно...

Автор: SoWa 20.2.2006, 19:02
Poseidon делал точки.

Автор: Helicopterr 26.2.2006, 16:22
Когда студенты берут листик в клеточку и играют в точки, то это не Го.
По классическим (китайским) правилам этой игры она ведется на доске 19*19 до тех пор пока доска полностью не заставится камнями. Каждый твой камень на доске - это очко. Больше ничего не учитывается.
Японские правила были разработаны чтобы уменьшить продолжительность игры. Согласно им игра заканчивается когда оба противника скажут "пас". Очки приносят:
- снятые камни противника
- захваченые пункты территории
- пленные камни противника
Считается что в 90% случаев исход игры по японским правилам такой же как и по китайским. Поэтому большинство программ настроены на эти правила. Хотя некоторые из них в конце игры предоставляют право подсчета очков игроку, так как даже алгоритм подсчета представляет проблему. У японцев бывает, что они долго разбираются после партии кто же выйграл smile Но традиционно это проходит как дружеская беседа.

Автор: bk99 1.3.2006, 20:34
играемся, кому интересно:
http://www.visti.net/skl/applet3/life.html

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)