Anda diberikan sebagai input gambar skala abu-abu. Tugas Anda adalah menemukan pola statis atau pengulangan di Game of Life Conway yang menyerupai gambar input sedekat mungkin.
Output Anda dapat berupa gambar diam atau animasi looping dalam beberapa format yang dapat dikonversi ke gif. Dimensi gambar output harus sama dengan input, dan hanya boleh mengandung piksel hitam dan putih.
Jika output adalah animasi, setiap frame harus dihasilkan dari yang sebelumnya sesuai dengan aturan Game of Life, dengan satu sel per piksel. Animasi harus berulang, dengan frame pertama dihasilkan dari frame terakhir dengan aturan yang sama.
Jika output adalah gambar diam, menerapkan aturan game-of-life untuk itu harus menghasilkan gambar yang sama. Ini berarti bahwa tidak ada sel 'hidup' dapat memiliki lebih dari tiga atau kurang dari dua tetangga 'hidup', dan tidak ada sel 'mati' mungkin memiliki tiga tetangga 'hidup'. (Perhatikan bahwa ini pada dasarnya sama dengan animasi seperti dijelaskan di atas, tetapi hanya dengan satu bingkai.)
Aturan dan klarifikasi tambahan:
Anda (atau program Anda) dapat memilih apakah sel 'hidup' direpresentasikan sebagai putih dan 'mati' sebagai hitam, atau sebaliknya. Yaitu, Anda dapat membuat hard-code ini atau program Anda dapat memilihnya berdasarkan gambar input. (Tapi itu harus sama untuk setiap frame animasi.)
Kondisi batas harus berkala, artinya sel di kolom paling kanan memiliki tetangga di kolom paling kiri, dll.
Untuk animasi, kecepatan bingkai terserah Anda (atau program Anda); Saya membayangkan frame rate cepat akan bekerja dengan baik untuk perkiraan piksel abu-abu.
Silakan kirim setidaknya dua hasil yang tertanam dalam jawaban Anda. Jika Anda dapat memposting hasil dari semua gambar input di bawah ini, lebih disukai.
Dapat diterima untuk memperkecil gambar uji jika ini diperlukan untuk mencapai gif dengan ukuran file yang cukup kecil. Jika Anda ingin menautkan ke file yang lebih besar juga, itu tidak masalah. Jika Anda ingin pamer, silakan cari beberapa file sumber beresolusi tinggi.
Cobalah untuk menghindari memiliki terlalu banyak parameter yang dapat dikontrol dalam kode Anda - yang terbaik adalah jika input program Anda hanyalah gambar. Pengecualiannya adalah jika Anda ingin memiliki parameter untuk mengontrol jumlah frame animasi, karena itu akan mempengaruhi ukuran file.
Anda dapat menggunakan program eksternal untuk mengubah format file input dan output, dan / atau mengkompilasi frame output menjadi animasi jika Anda mau. (Ini bukan tantangan penanganan format file.)
Ini adalah kontes popularitas , jadi jawaban dengan suara terbanyak menang.
Berikut ini adalah pilihan gambar uji, sebagian besar diambil dari pertanyaan lain di situs ini. (Mungkin saya akan menambahkan gambar input "bonus" tambahan nanti.)
Hanya untuk memulai, inilah upaya referensi yang sangat bodoh di Python 2, yang memanfaatkan fakta bahwa blok empat kotak adalah struktur yang stabil dalam Game of Life. Itu hanya mengubah gambar input dengan faktor 4, kemudian menggambar blok jika pixel yang sesuai lebih gelap dari 0,5.
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)
Berikut adalah beberapa output dari kode contoh. Saya yakin hasil yang jauh lebih baik dimungkinkan.