Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Алгоритмы > Алгоритм игры "Жизнь" |
Автор: 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 и выводим а на экран.![]() |
Автор: SoWa 17.1.2006, 17:48 |
Да. А иначе путаница будет ![]() |
Автор: 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 |
и мне!) и всем! ![]() |
Автор: Mayk 19.2.2006, 22:10 |
однако. ты сколько паттернов смотрел? Добавлено @ 22:12 +1 |
Автор: Helicopterr 19.2.2006, 23:30 | ||
Нет я имею ввиду что это вроде как и не игра... не могу подобрать слово... Сейчас читаю лекции по нейронным сетям, так что может ещё и увлекусь ![]() Хм. Ну пока справляюсь ![]() __________________ Я чё то не подумал, надо бало расширение архива изменить или паролем защитить. Проверьте на всякий случай. В архиве "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 |
хех) игра эта - обыкновенные точки) только торозит жутко. где-то недавно кто-то сделал эту игру, только играть гораздо интереснее и работает она намного быстрее ![]() |
Автор: Coocky 20.2.2006, 16:45 |
А как внешне она выглядит? Надо какие-то ходы делать? |
Автор: Alx 20.2.2006, 16:54 |
ну ты в точки играл?) там клеточки, в них ставишь свою точку, потом компьютер, поочереди, задача - обвести чужую точку/точки своими) когда место кончится, выиграл тот, кто больше точек завоевал ![]() |
Автор: Coocky 20.2.2006, 17:01 |
А как же! ![]() Теперь понятно... |
Автор: SoWa 20.2.2006, 19:02 |
Poseidon делал точки. |
Автор: Helicopterr 26.2.2006, 16:22 |
Когда студенты берут листик в клеточку и играют в точки, то это не Го. По классическим (китайским) правилам этой игры она ведется на доске 19*19 до тех пор пока доска полностью не заставится камнями. Каждый твой камень на доске - это очко. Больше ничего не учитывается. Японские правила были разработаны чтобы уменьшить продолжительность игры. Согласно им игра заканчивается когда оба противника скажут "пас". Очки приносят: - снятые камни противника - захваченые пункты территории - пленные камни противника Считается что в 90% случаев исход игры по японским правилам такой же как и по китайским. Поэтому большинство программ настроены на эти правила. Хотя некоторые из них в конце игры предоставляют право подсчета очков игроку, так как даже алгоритм подсчета представляет проблему. У японцев бывает, что они долго разбираются после партии кто же выйграл ![]() |
Автор: bk99 1.3.2006, 20:34 |
играемся, кому интересно: http://www.visti.net/skl/applet3/life.html |