Привет, мир Конвея


24

Часто говорят, что все программисты должны иметь возможность написать программу "hello world" на любом языке программирования после нескольких взглядов на этот язык (и быстрой сортировки после нескольких взглядов).

По мере того как игры Конвея жизни являются Тьюринг (так квалифицируется как язык программирования общего назначения) , проблема сама за себя:

Создайте «Hello World!» приложение, использующее только игру жизни Конвея! Единственная действительная запись - это начальное состояние для игры жизни Конвея, которая:

  • не содержит какой-либо узнаваемой фигуры, напоминающей текст "Hello World!"
  • будет содержать узнаваемую форму, напоминающую текст "Hello World!" в течение разумного количества циклов (он не должен работать более двух минут на хорошем ПК - это позволяет миллиарды циклов и должно быть достаточно)
  • область, где "Hello World!" текст появится должен быть пустым в исходном состоянии! (В противном случае проблема была бы слишком простой). Если никому не удастся это сделать, мы можем уменьшить это требование до «в основном пустого».

Подсчет очков:

Победитель будет основан на количестве голосов за примерно одну неделю после первого действительного представления.

Правила голосования:

  • более продуманный и красивый результат должен стоить больше
  • результат, который стабилен в течение многих циклов, должен стоить больше, чем тот, который исчезает, чтобы быть неузнаваемым в следующем цикле.
  • Решение, заключенное в вечный цикл или начинающееся с интересного паттерна, стоит больше всего, потому что оно доказывает разумное построение состояния, а не просто случайную пробу и ошибку с обратным моделированием.

Запись должна быть в формате, читаемом хотя бы одним из известных симуляторов или онлайн-симулятором, на который ссылается ответчик. Ссылки (на анимацию или симулятор, установленный в исходное состояние) также принимаются, даже поощряются. Если результат не виден в течение нескольких циклов, запись должна указывать, после какого цикла будет виден результат.


Редактировать:

Может быть некоторая небольшая терпимость в фразе, которая будет произведена. Это может быть " Hello, World!", " hello, world" " HELLO WORLD!" и т. Д.


в этой фразе не должно быть запятой?
ardnew

@ardnew: Какая фраза?
вс

фраза, которая будет сгенерирована:Hello, world!
ardnew

@ardnew: спасибо, я отредактировал приложение. Я намеренно оставил некоторую неясность, потому что в конечном итоге решают избиратели . Если вы считаете, что не нарушили одно из основных правил напрямую, и что избирателям понравится ваша интерпретация мелких деталей, не стесняйтесь делать это любым способом, каким пожелаете!
вс

1
Вы можете использовать мой симулятор (импортирует RLE и Plaintext). Это не хорошо для разработки, но, по крайней мере, он запускает произвольные большие шаблоны на приличной скорости. Я также могу загружать шаблоны и делать их связанными по запросу
скопируйте

Ответы:


50

Моя первая попытка это относительно простое решение. Он запускает пару планерных бочек. Каждая пара планеров превращается в блок, из которого затем формируется текст. Этот процесс занимает около 16000 поколений (вы можете установить пропуск кадра или использовать кнопку супершаг в моем симуляторе).

Прямая ссылка . Перемещайтесь правой кнопкой мыши, увеличивайте колесико мыши.

Ссылка на файл .rle (также работает с Golly)

Изображение рисунка 32: 1:

Изображение рисунка 32: 1


4
Если у вас есть браузер с поддержкой Canvas и вы не видите начальный шаблон, уменьшите масштаб с помощью колеса прокрутки. Мне понадобилось время, чтобы разобраться с этим.
Питер Тейлор

Превосходно! Я ожидал, что вы опубликуете решение этой проблемы после того, как увидели codegolf.stackexchange.com/a/5946/3527 и ваш веб-сайт.
Кристиан Лупаску

1
@ w0lf создание шаблона - это совсем другой вызов, чем симуляция. Но да, мне весело с этим
скопировать

2
Поздравляем! Странно, что никто не набрался смелости, чтобы представить другое решение. На самом деле, если бы не было опубликовано решение, я бы сделал что-то очень похожее (планеры сходятся в блоки формы), хотя гораздо меньше и менее детализированный. Могу я спросить, как ты это сделал? Сгенерировано с помощью программы или рассчитано вручную?
вс

1
@vsz Шаблон генерируется из небольшого скрипта Python. Я думаю, что одна неделя могла быть коротким сроком для некоторых людей (именно поэтому никто не пытался)
скопируйте
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.