Как прекратить игру "Жизнь" при зацикливании?

Как прекратить игру при зацикливании? Можно, конечно, с самой первой матрицей элементов, сравнивать каждую, и на моменте, когда все элементы совпадут (сделать какойнить счетчик), завершить. Но вот не знаю, могут ли быть такие случаи, когда самая первая "жизнь" не будет частью зацикливания.


Ответы (1 шт):

Автор решения: AlexGlebe

Хороший поиск циклов работает с двумя играми начиная от одной позиции. Первая игра со стандартной скоростью, вторая игра будет в два раза быстрее (два хода). При выполнении трёх ходов : один стандартный и два ускоренных сравниваются карты на равенство. Если они совпадают, значит полный цикл присутствует между картами со стандартной и быстрой скоростью.

Наглядно демонстрирую карты буквами :

xyzabcabc...

стандарт быстро

x       x  y
y       z  a
z       b  c
a       a  b
b       c  a
c       b  c

Всё c == c .

→ Ссылка