Привіт Світ Конвей


24

Часто кажуть, що всі програмісти повинні мати можливість написати програму "привіт світ" будь-якою мовою програмування після декількох поглядів на цю мову (І швидко ще кілька поглядів).

Оскільки Гра життя Конвея є Тюрінгом повною (тому вона кваліфікується як мова програмування загального призначення) , проблема сама собою пояснює:

Створіть "Привіт, світ!" додаток, що використовує лише Гра Життя Conway! Єдиний вірний запис - це початковий стан для гри Життя Конвея, який:

  • не містить впізнаваної форми, що нагадує текст "Hello World!"
  • буде містити впізнавану форму, що нагадує текст "Hello World!" протягом розумної кількості циклів (на хорошому ПК він не повинен працювати більше пари хвилин - це дає можливість мільярдів циклів і повинно вистачити)
  • область, де "Привіт, світ!" З'явиться, що текст повинен бути порожнім у початковому стані! (Інакше проблема виявиться занадто простою) Якщо нікому не вдається це зробити, ми можемо зменшити цю вимогу до "в основному порожнього"

Оцінка:

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

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

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

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


Редагувати:

У формулюваній фразі може бути незначна толерантність. Це можуть бути " Hello, World!", hello, world"" HELLO WORLD!"і т.д.


чи не повинно бути десь у цій фразі кома?
ardnew

@ardnew: Яка фраза?
vsz

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

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

1
Ви можете використовувати мій тренажер (імпортує RLE та Plaintext). Це не добре для розвитку, але, принаймні, він працює на довільних великих моделях на гідній швидкості. Я також можу завантажувати шаблони та робити їх пов’язаними, якщо вимагається
скопіюйте

Відповіді:


50

Моя перша спроба цього, порівняно простого рішення. Воно розпалює пару планер-бочок. Кожна пара планер перетворюється на блок, який потім утворює текст. Цей процес займає близько 16000 поколінь (ви можете встановити пропуск кадру або скористатися кнопкою суперстеп у моєму тренажері).

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

Посилання на .rle файл (також працює з Golly)

Зображення візерунка 32: 1:

Зображення візерунка 32: 1


4
Якщо у вас є підтримуючий веб-переглядач і не бачите початкового шаблону, зменшіть масштаб за допомогою колеса прокрутки. Взяв мене на деякий час.
Пітер Тейлор

Відмінно! Я очікував, що ви опублікуєте рішення цього завдання після того, як побачив codegolf.stackexchange.com/a/5946/3527 та ваш веб-сайт.
Крістіан Лупаску

1
@ w0lf створення візерунка - це зовсім інший вид завдання, ніж моделювання. Але так, мені це весело
скопіюйте

2
Вітаємо! Дивно, що ніхто не брав сміливості подати інше рішення. Насправді, якби не було розміщено рішення, я зробив би щось дуже схоже (планери, що сходяться до блоків), хоча набагато менші та менш деталізовані. Чи можу я запитати, як ти це зробив? Створено за допомогою програми чи обчислило позиції вручну?
vsz

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