Ваша задача - создать симулятор Game of Life, представляющий собой цифровые часы, который удовлетворяет следующим свойствам:
Часы отображают часы и минуты в десятичной системе (например
12:00
,3:59
,7:24
) с другим государством для каждого из 1,440 минут в день - либо часы будут идти от 0 до 23 или от 1 до 12 с индикатором PM.Шаблон является периодическим, и состояние зацикливается без какого-либо внешнего взаимодействия.
Минуты обновляются через равные промежутки времени - от одной смены минуты до следующего уходит одинаковое количество поколений.
Анонимный наблюдатель с первого взгляда может сказать, что на дисплее должны быть цифровые часы. В частности, это влечет за собой:
Цифры видны и четко различимы. Вы должны быть в состоянии с уверенностью сказать с первого взгляда, какое время отображается.
Цифры обновятся на месте. Каждый новый номер появляется в том же месте, что и предыдущий номер, и ограничивающие рамки цифр практически не перемещаются. (В частности, цифра не содержит 10 разных цифр в разных местах, которые открываются при каждом изменении цифр.)
Цифры появляются рядом друг с другом, без чрезмерного пространства между ними.
Ваша программа будет оцениваться по порядку следующим образом (с более низкими критериями, действующими как нарушители связей для более высоких критериев):
Размер ограничивающего прямоугольника - выигрывает прямоугольный прямоугольник с наименьшей площадью, который полностью содержит данное решение.
Самое быстрое исполнение - наименьшее количество поколений выигрывает за минуту.
Начальное количество живых клеток - побеждает меньшее количество.
Первый пост - предыдущий пост побеждает.
источник
Ответы:
11 520 поколений за такт / 10 016 x 6 796 коробок / 24 4596 поп-карт
Вот, пожалуйста ... Было весело.
Ну, дизайн, конечно, не оптимальный. Ни с точки зрения ограничивающего прямоугольника (эти 7-сегментные цифры огромны ), ни из начального подсчета населения (есть некоторые бесполезные вещи, и некоторые вещи, которые, безусловно, можно было бы упростить), и скорость выполнения - ну ... Я Я не уверен.
Но, эй, это красиво. Смотреть:
Запустить его!
Получить дизайн из этой сути . Скопируйте весь текст файла в буфер обмена.
Новое : вот версия с индикаторами AM и PM для требовательных.
Перейти на онлайн-симулятор жизни Конвея JavaScript . Нажмите импорт , вставьте текст дизайна. Вы должны увидеть дизайн. Затем перейдите к настройкам и установите шаг генерации на 512, или что-то около этих строк, или вам придется ждать вечно, чтобы увидеть обновление часов.
Нажмите Run , подождите немного и удивитесь!
Прямая ссылка на версию в браузере.
Обратите внимание, что единственный алгоритм, который делает этот огромный дизайн пригодным для использования, - это hashlife. Но с этим, вы можете добиться полного обхода часов за считанные секунды. При использовании других алгоритмов практически невозможно даже увидеть, как меняется час.
Как это устроено
Он использует технологию P30. Просто базовые вещи, планеры и легкие космические корабли. В основном, дизайн идет сверху вниз:
Во всяком случае, в этом дизайне нет ничего необычного. Там нет удивительных реакций, которые были обнаружены в этом процессе, и нет действительно умных комбинаций, о которых никто не думал раньше. Просто биты, взятые здесь и там и собранные вместе (и я даже не уверен, что сделал это «правильно» - я был совершенно новичком в этом). Однако это потребовало большого терпения. Заставить все эти планеры подняться в нужное время в нужном положении было поцарапать голову.
Возможные оптимизации:
источник