Giriş olarak gri tonlamalı bir görüntü verilmiştir. Göreviniz Conway'in Yaşam Oyununda giriş görüntüsünü mümkün olduğu kadar benzeyen statik veya döngüsel bir desen bulmak .
Çıktınız olabilir ya sabit bir görüntü veya gif dönüştürülebilir bazı biçiminde bir döngü animasyon. Çıktı görüntü boyutları girişle aynı olmalı ve yalnızca siyah beyaz pikselleri içermelidir.
Çıktı bir animasyon ise, her karenin bir öncekinden Yaşam Oyunu kurallarına göre bir piksel başına bir hücre olacak şekilde üretilmesi gerekir. Animasyon, ilk karenin son kareden aynı kurallarla üretilmesiyle birlikte döngülenmelidir.
Çıktı hareketsiz bir görüntü ise, yaşam oyunu kurallarını ona uygulamak aynı görüntüyü oluşturmalıdır. Bu, hiçbir "canlı" hücrenin iki "canlı" komşunun üçünden daha azına veya daha azına sahip olamayacağı ve "ölü" hiçbir hücrenin tam olarak "üç" canlı "komşuya sahip olamayacağı anlamına gelir. (Bunun temelde yukarıda açıklanan animasyonla aynı olduğunu ancak yalnızca bir kare olduğunu unutmayın.)
Ekstra kurallar ve açıklamalar:
Siz (veya programınız) 'canlı' hücrelerin beyaz olarak mı yoksa 'ölü' olarak mı siyah olarak mı yoksa tam tersi olarak mı seçileceğini seçebilirsiniz. Başka bir deyişle, bunu zor bir şekilde kodlayabilirsiniz veya programınız giriş görüntüsüne göre seçebilir. (Ancak animasyonun her karesi için aynı olmalıdır.)
Sınır koşulları periyodik olmalıdır, yani en sağdaki sütundaki hücrelerin en soldaki sütunda vb.
Animasyonlar için kare hızı size (veya programınıza) bağlıdır; Hızlı kare hızlarının gri piksellere yaklaşmak için iyi çalışacağını hayal ediyorum.
Lütfen cevabınıza en az iki sonuç gönderin. Aşağıdaki tüm girdi resimlerinden sonuçlar gönderebilirsiniz, bu tercih edilir.
Yeterince küçük dosya boyutlarında gif elde etmek için gerekirse, test görüntülerini küçültmek kabul edilebilir. Daha büyük dosyalara da link vermek istiyorsanız, sorun değil. Gösteriş yapmak istiyorsanız, daha yüksek çözünürlüklü kaynak dosyaları bulmaktan çekinmeyin.
Lütfen kodunuzda çok fazla kontrol edilebilir parametre olmasını önlemek için deneyin - programınızın tek girişi görüntü ise en iyisidir. Bunun istisnası, dosya boyutunu etkileyeceğinden, animasyon karelerinin sayısını kontrol etmek için bir parametreye sahip olmak istiyorsanız.
İsterseniz, giriş ve çıkış dosyalarının formatını değiştirmek ve / veya çıkış karelerini bir animasyona derlemek için harici programları kullanabilirsiniz. (Bu bir dosya formatı işleme zorluğu değildir.)
Bu popülerlik yarışması , bu yüzden en çok oy alan cevap kazanıyor.
İşte bu sitede daha çok diğer sorulardan alınan test görüntüleri. (Daha sonra ek "bonus" giriş görüntüleri ekleyebilirim.)
Sadece işleri başlatmak için, işte dört kareden oluşan bir bloğun Yaşam Oyunu'nda kararlı bir yapı olması gerçeğinden faydalanan Python 2'de çok aptal bir referans girişimi. Girdi görüntüsünü 4 faktörü ile yeniden ölçeklendirir, ardından karşılık gelen piksel 0,5'ten daha koyu ise bir blok çizer.
from skimage import io
from skimage import transform
import sys
img = io.imread(sys.argv[1],as_grey=True)
source = transform.resize(img, [i/4 for i in img.shape])
img[:]=1
for x in xrange(source.shape[0]):
for y in xrange(source.shape[1]):
if source[x,y]<0.5:
img[x*4, y*4] = 0
img[x*4+1, y*4] = 0
img[x*4, y*4+1] = 0
img[x*4+1, y*4+1] = 0
io.imsave(sys.argv[2], img)
Örnek koddan bazı çıktılar. Ben eminim çok daha iyi sonuçlar mümkündür.