Правила, сформулированные Конвеем, из книги Мартина Гарднера:
Цитата:
Генетические законы Конуэя удивительно просты. Прежде чем мы их сформулируем, обратим внимание на то, что каждую клетку доски (которая, вообще говоря, считается бесконечной) окружают восемь соседних клеток: четыре имеют с ней общие стороны, а четыре другие - общие вершины. Правила игры (генетические законы) сводятся к следующему:
выживание. Каждая фишка, у которой имеются две или три соседние фишки, выживает и переходит в следующее поколение;
гибель. Каждая фишка, у которой оказывается больше трех соседей, погибает, т. е. снимается с доски, из-за перенаселенности. Каждая фишка, вокруг которой свободны все соседние клетки или же занята только одна клетка, погибает от одиночества;
рождение. Если число фишек, с которыми граничит какая-нибудь пустая клетка, в точности равно трем (не больше и не меньше), то на этой клетке происходит рождение нового "организма", т. е. следующим ходом на нее ставится одна фишка.
Важно понять, что гибель и рождение всех "организмов" происходят одновременно. Вместе взятые, они образуют одно поколение или, как мы будем говорить, один "ход" в эволюции начальной конфигурации. Ходы Конуэй рекомендует делать следующим образом:
начать с конфигурации, целиком состоящей из черных фишек;
определить, какие фишки должны погибнуть, и положить на каждую из обреченных фишек по одной черной фишке;
найти все свободные клетки, на которых должны произойти акты рождения, и на каждую из них поставить по одной фишке белого цвета;
выполнив все эти указания, еще раз внимательно проверить, не сделано ли каких-либо ошибок, затем снять с доски все погибшие фишки "(т. е. столбики из двух фишек), а всех новорожденных (белые фишки) заменить черными фишками.
Проделав все операции, вы получите первое поколение в эволюции первоначальной конфигурации. Аналогичным образом получаются и все последующие поколения.
выживание. Каждая фишка, у которой имеются две или три соседние фишки, выживает и переходит в следующее поколение;
гибель. Каждая фишка, у которой оказывается больше трех соседей, погибает, т. е. снимается с доски, из-за перенаселенности. Каждая фишка, вокруг которой свободны все соседние клетки или же занята только одна клетка, погибает от одиночества;
рождение. Если число фишек, с которыми граничит какая-нибудь пустая клетка, в точности равно трем (не больше и не меньше), то на этой клетке происходит рождение нового "организма", т. е. следующим ходом на нее ставится одна фишка.
Важно понять, что гибель и рождение всех "организмов" происходят одновременно. Вместе взятые, они образуют одно поколение или, как мы будем говорить, один "ход" в эволюции начальной конфигурации. Ходы Конуэй рекомендует делать следующим образом:
начать с конфигурации, целиком состоящей из черных фишек;
определить, какие фишки должны погибнуть, и положить на каждую из обреченных фишек по одной черной фишке;
найти все свободные клетки, на которых должны произойти акты рождения, и на каждую из них поставить по одной фишке белого цвета;
выполнив все эти указания, еще раз внимательно проверить, не сделано ли каких-либо ошибок, затем снять с доски все погибшие фишки "(т. е. столбики из двух фишек), а всех новорожденных (белые фишки) заменить черными фишками.
Проделав все операции, вы получите первое поколение в эволюции первоначальной конфигурации. Аналогичным образом получаются и все последующие поколения.
Подробнее о "Жизни" Конвея можно прочитать в замечательной книге Мартина Гарднера
"Математические досуги" ; .
И еще одна цитата из Гарднера:
Цитата:
Конуэй высказал гипотезу, согласно которой не существует ни одной начальной конфигурации, способной беспредельно расти. Иначе говоря, любая конфигурация, состоящая из конечного числа фишек, не может перейти в конфигурацию, у которой число фишек превосходило бы некий конечный верхний предел. Это, наверное, наиболее глубокая и самая сложная задача, возникающая в игре "Жизнь".
Эти слова, скорее всего, были написаны еще до изобретения Планерного ружья Госпера.
Статья о Жизни Конвея в Википедии
http://ru.wikipedia.org/wiki/Жизнь_(игра)
В данном примере используется тороидальное представление поверхности, наиболее характерное для многих реализаций.
массив M [10,10]
массив M1 [10,10]
переменная x
переменная y
переменная хл
переменная хп
переменная ув
переменная ун
переменная n
переменная count
спрятать черепаху
кисть 50
ручка 7
загрузи в M
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 1 0 0 0 0
0 0 0 0 1 1 0 0 0 0
0 0 0 1 1 1 0 0 0 0
0 0 0 1 1 1 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
конец загрузки
копировать M в M1
повторять пока 1 = 1 {
заменить в M1 1 на 7
точка# M1, 150, 50
повторить для y от 1 до 10 {
если y - 1 < 1 то ув = 10 иначе ув = y - 1
если y + 1 > 10 то ун = 1 иначе ун = y + 1
повторить для x от 1 до 10 {
если x - 1< 1 то хл = 10 иначе хл = x - 1
если x + 1 > 10 то хп = 1 иначе хп = x + 1
n = M[y,хл] + M[ув,хл] + M[ув,x] + M[ун,хл] + M[ун,x] + M[ун,хп] + M[y,хп] + M[ув,хп]
если n > 3 то M1[y,x] = 0
если n < 2 то M1[y,x] = 0
если n = 2 то M1[y,x] = M[y,x]
если n = 3 то M1[y,x] = 1
}
}
копировать M1 в M
count = count + 1
пиши count
}
В качестве начальной конфигурации взята эмблема CNews Forum 2011
Эмблема "живет" 11 поколений