Conway's Hello World

24

Hal ini sering mengatakan, bahwa semua programmer harus bisa menulis sebuah program "hello world" dalam bahasa pemrograman setelah beberapa lirikan pada bahasa yang (Dan quicksort setelah beberapa lirikan lebih).

Karena Game of Conway's Life Turing telah selesai (sehingga memenuhi syarat sebagai bahasa pemrograman untuk tujuan umum) , masalahnya sudah jelas:

Buat "Hello World!" aplikasi hanya menggunakan Game of Conway! Satu-satunya entri yang valid adalah keadaan awal untuk Conway's Game of Life, yang:

  • tidak mengandung bentuk yang dapat dikenali yang menyerupai teks "Hello World!"
  • akan berisi bentuk yang dapat dikenali menyerupai teks "Hello World!" dalam jumlah siklus yang wajar (seharusnya tidak berjalan lebih dari beberapa menit pada PC yang baik - ini memungkinkan miliaran siklus dan harus cukup)
  • area di mana "Hello World!" teks akan muncul harus kosong dalam keadaan awal! (Kalau tidak, masalahnya akan terlalu mudah) Jika tidak ada yang berhasil melakukannya, kami mungkin mengurangi persyaratan ini menjadi "kebanyakan kosong"

Mencetak:

Pemenang akan didasarkan pada jumlah upvotes dalam waktu sekitar satu minggu setelah pengiriman pertama yang valid.

Pedoman untuk memilih:

  • output yang lebih rumit dan indah harus lebih bernilai
  • output yang stabil pada banyak siklus harus bernilai lebih dari satu yang memudar menjadi tidak dapat dikenali pada siklus berikutnya.
  • solusi dikunci ke dalam siklus abadi, atau mulai dari pola yang menarik adalah yang paling berharga, karena membuktikan desain cerdas negara, dan bukan hanya trial and error acak dengan simulasi terbalik.

Entri harus dalam format yang dapat dibaca oleh setidaknya satu dari simulator terkenal atau simulator online yang terhubung dengan penjawab. Tautan (ke animasi atau simulator yang disetel ke kondisi awal) juga diterima, bahkan dianjurkan. Jika output tidak terlihat dalam beberapa siklus, entri harus menentukan setelah siklus mana hasilnya akan terlihat.


Edit:

Mungkin ada sedikit toleransi dalam kalimat yang akan dihasilkan. Itu bisa " Hello, World!", " hello, world" " HELLO WORLD!" dll.

vsz
sumber
bukankah seharusnya ada koma di suatu tempat dalam kalimat itu?
ardnew
@ardnew: Frasa mana?
vsz
frasa yang akan dihasilkan:Hello, world!
ardnew
@ardnew: terima kasih, saya mengedit lampiran. Saya sengaja meninggalkan sedikit ketidakjelasan, karena pada akhirnya para pemilih memutuskan . Jika Anda berpikir bahwa Anda tidak secara langsung melanggar salah satu aturan utama, dan bahwa pemilih akan menyukai interpretasi Anda terhadap detail kecil, jangan ragu untuk melakukannya dengan cara apa pun yang Anda inginkan!
vsz
1
Anda dapat menggunakan simulator saya (mengimpor RLE dan Plaintext). Ini tidak baik untuk dikembangkan, tetapi setidaknya menjalankan pola besar yang sewenang-wenang dengan kecepatan yang layak. Saya juga dapat mengunggah pola dan membuatnya ditautkan jika diminta
salin

Jawaban:

50

Upaya pertama saya untuk ini, solusi yang relatif sederhana. Ini menembakkan beberapa barel glider. Setiap pasang glider berubah menjadi blok, yang kemudian membentuk teks. Proses ini memakan waktu sekitar 16.000 generasi (Anda dapat mengatur lompatan bingkai atau menggunakan tombol superstep di simulator saya).

Tautan Langsung . Bergerak dengan mouse kanan, zoom dengan roda mouse.

Tautan ke file .rle (juga berfungsi dengan Golly)

Gambar dari pola 32: 1:

Gambar dari pola 32: 1

salinan
sumber
4
Jika Anda memiliki browser pendukung kanvas dan tidak melihat pola awal, perkecil dengan roda gulir. Butuh waktu beberapa saat untuk menyelesaikannya.
Peter Taylor
Luar biasa! Saya mengharapkan Anda untuk mengirim solusi untuk tantangan ini setelah saya melihat codegolf.stackexchange.com/a/5946/3527 dan situs web Anda.
Cristian Lupascu
1
@ w0lf membuat pola adalah jenis tantangan yang sangat berbeda dari simulasi. Tapi ya, saya bersenang-senang dengan ini
salin
2
Selamat! Aneh, bahwa tak seorang pun berani mengajukan solusi lain. Sebenarnya, jika tidak ada solusi yang diposting, saya akan melakukan sesuatu yang sangat mirip (glider menyatu untuk membentuk blok), walaupun jauh lebih kecil dan kurang detail. Bolehkah saya bertanya bagaimana Anda melakukannya? Dihasilkan dengan program, atau menghitung posisi secara manual?
vsz
1
@ vsz Pola dihasilkan dari skrip python kecil. Saya pikir satu minggu mungkin merupakan tenggat waktu singkat untuk beberapa orang (itu sebabnya tidak ada orang lain yang mencoba)
salin