Conway'in Merhaba Dünyası


24

Sık sık, tüm programcıların bu dile bir kaç bakış açısından sonra herhangi bir programlama dilinde bir "merhaba dünyası" programı yazabilmesi gerektiği söylenir (ve birkaç bakıştan sonra hızlı bir şekilde).

As conway'in hayat oyunu tam Turing edilir (bir genel amaçlı programlama dili olarak nitelendirir böylece) , problem kendini açıklıyor:

Bir "Merhaba Dünya!" Sadece Conway's Life Game kullanarak uygulama! Tek geçerli giriş, Conway'in Yaşam Oyunu için bir başlangıç ​​halidir ;

  • "Merhaba Dünya!" metnine benzeyen tanınabilir bir şekil içermiyor
  • "Merhaba Dünya!" metnine benzeyen tanınabilir bir şekil içerecektir makul sayıda döngü içerisinde (iyi bir PC'de birkaç dakikadan fazla çalışmamalı - bu milyarlarca çevrime izin verir ve yeterli olmalıdır)
  • "Merhaba Dünya!" Metin görünecektir ilk durumda boş olmalıdır ! (Aksi taktirde sorun çok kolay olurdu) Eğer kimse bunu başaramazsa, bu gereksinimi "çoğunlukla boş" hale getirebiliriz

puanlama:

Kazanan, ilk geçerli sunumdan yaklaşık bir hafta sonra yapılan oy sayısına dayanacak.

Oy kullanma rehberi:

  • daha ayrıntılı ve güzel çıktı daha değerli olmalı
  • Birçok döngüde kararlı olan çıktılar, bir sonraki döngüde tanınmayacak kadar yavaşlayan bir değerden daha değerli olmalıdır.
  • Kalıcı bir döngüye kilitlenmiş veya ilginç bir düzenden başlayarak çözüme ulaşmak en önemlisidir, çünkü devletin akıllı tasarımını kanıtlar, ters simülasyonla rastgele deneme ve yanılma değil.

Giriş, kayda değer simülatörlerden en az biri veya yanıtlayıcının bağlandığı çevrimiçi bir simülatör tarafından okunabilen bir formatta olmalıdır . Bağlantılar (başlangıç ​​durumuna ayarlanmış bir animasyona veya bir simülatöre) da kabul edilir, hatta teşvik edilir. Çıktı birkaç döngü içinde görünmüyorsa, giriş hangi dönüşten sonra sonucun görüneceğini belirtmelidir.


Düzenle:

Oluşturulacak ifadede hafif bir tolerans olabilir. " Hello, World!", " hello, world" " HELLO WORLD!" Vb. Olabilir .


Bu cümlenin bir yerinde virgül olmamalı mı?
ardnew

@ardnew: Hangi cümle?
vsz

üretilecek ifade:Hello, world!
ardnew

@ardnew: teşekkürler, bir zeyilname düzenledim. Sonunda seçmenler karar verdiği için kasten hafif bir belirsizlik bıraktım . Ana kurallardan birini doğrudan ihlal etmediğinizi ve seçmenlerin küçük ayrıntıları yorumlamanızı seveceğini düşünüyorsanız, istediğiniz şekilde yapmaktan çekinmeyin!
vsz

1
Simülatörümü kullanabilirsiniz (RLE ve Plaintext'i içe aktarır). Gelişmesi için iyi değil, ama en azından iyi hızda keyfi büyük kalıpları çalıştırır. Ayrıca desenler yükleyebilir ve istenirse bunları bağlanabilir hale getirebilirim
kopyalayın

Yanıtlar:


50

Buna ilk denemem, nispeten basit bir çözüm. Birkaç planör varil ateşler. Her planör çifti, daha sonra metni oluşturan bir bloğa dönüşür. Bu işlem yaklaşık 16000 nesil sürer (simülatörümde üst üste basma düğmesini kullanarak bir çerçeve atlama ayarlayabilir veya kullanabilirsiniz).

Doğrudan Bağlantı . Sağ fare ile hareket ettirin, fare tekerleği ile yakınlaştırın.

.Rle dosyasına bağlantı (ayrıca Golly ile de çalışır)

Desenin görüntüsü 32: 1:

Desenin görüntüsü 32: 1


4
Tuvali destekleyen bir tarayıcınız varsa ve başlangıç ​​desenini göremiyorsanız, kaydırma tekerleğini uzaklaştırın. Bunu çözmek biraz zaman aldı.
Peter Taylor

Mükemmel! Codegolf.stackexchange.com/a/5946/3527 adresini ve web sitenizi gördükten sonra sizden bu zorluğa bir çözüm göndermenizi bekliyordum .
Cristian Lupascu

1
Bir örüntü oluşturmak, simülasyondan çok farklı bir meydan okumadır. Ama evet, bununla eğleniyorum
copy

2
Tebrikler! Garip, kimse başka bir çözüm sunma cesaretini aldı. Aslında, eğer herhangi bir çözüm olmasaydı, çok daha küçük ve daha az detaylı olmasına rağmen, çok benzer bir şey yapardım (bloklara yaklaşıyorlardı). Nasıl yaptığını sorabilir miyim? Bir programla oluşturulmuş mu yoksa pozisyonları manuel olarak mı hesapladınız?
vsz

1
@vsz Desen, küçük bir python komut dosyasından oluşturulur. Bence bir hafta bazı insanlar için kısa bir süre geçmiş olabilir (bu yüzden başka kimsenin denememesinin nedeni)
kopya
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.