11.520 generasi per hitungan jam / 10.016 x 6.796 kotak / 244.596 hitungan pop
Ini dia ... Menyenangkan.
Nah, desainnya tentu tidak optimal. Baik dari sudut pandang kotak pembatas (angka 7-segmen itu besar ), maupun dari jumlah populasi awal (ada beberapa hal yang tidak berguna, dan beberapa hal yang pasti bisa dibuat lebih sederhana), dan kecepatan eksekusi - yah ... saya Saya tidak yakin.
Tapi, hei, ini indah. Melihat:
Menjalankannya!
Dapatkan desain dari intisari ini . Salin seluruh file teks ke clipboard.
Baru : ini adalah versi dengan indikator AM dan PM untuk yang menuntut
Buka simulator hidup JavaScript Conway online . Klik impor , tempel teks desain. Anda harus melihat desainnya. Kemudian, buka pengaturan dan atur langkah pembuatan ke 512, atau sesuatu di sekitar garis itu, atau Anda harus menunggu selamanya untuk melihat pembaruan tampilan jam.
Klik jalankan , tunggu sebentar dan kagum!
Tautan langsung ke versi dalam browser.
Perhatikan bahwa satu-satunya algoritma yang membuat desain besar ini dapat digunakan adalah hashlife. Tetapi dengan ini, Anda dapat mencapai seluruh jam dalam hitungan detik. Dengan algoritma lain, bahkan tidak praktis untuk melihat jamnya berubah.
Bagaimana itu bekerja
Ini menggunakan teknologi p30. Hanya hal-hal dasar, pesawat layang dan pesawat ruang angkasa ringan. Pada dasarnya, desainnya top-down:
- Di bagian paling atas, ada jam. Ini adalah jam periode 11520. Perhatikan bahwa Anda memerlukan sekitar 10.000 generasi untuk memastikan tampilan diperbarui dengan tepat, tetapi desainnya harus tetap stabil dengan jam dengan periode yang lebih kecil (sekitar 5.000 atau lebih - jam harus kelipatan 60).
- Lalu, ada tahap distribusi jam. Clock glider disalin dalam pohon seimbang, jadi pada akhirnya, ada 32 glider yang tiba pada saat yang sama persis dengan tahap penghitung.
- Tahap penghitung dibuat menggunakan kait RS untuk setiap negara bagian, dan untuk setiap digit (kami menghitung dalam desimal). Jadi ada 10 negara bagian untuk digit kanan menit, 6 negara bagian untuk digit kiri minuts, dan 12 negara bagian untuk jam (kedua digit jam digabung di sini). Untuk masing-masing kelompok ini, penghitung berperilaku seperti register geser.
- Setelah tahap penghitungan, ada tabel pencarian. Mereka mengkonversi pulsa negara untuk menampilkan segmen ON / OFF tindakan.
- Lalu, tampilan itu sendiri. Segmen dibuat dengan beberapa string LWSS. Setiap segmen memiliki kaitnya sendiri untuk mempertahankan negaranya. Saya bisa membuat logika-ATAU sederhana dari status digit untuk mengetahui apakah segmen harus AKTIF atau MATI, dan singkirkan kait ini, tetapi akan ada gangguan untuk segmen yang tidak berubah, ketika digitnya berubah (karena keterlambatan sinyal). Dan akan ada aliran panjang glider yang datang dari tabel pencarian ke segmen digit. Jadi itu tidak akan terlihat bagus. Dan itu perlu. Iya.
Lagi pula, sebenarnya tidak ada yang luar biasa dalam desain ini. Tidak ada reaksi luar biasa yang telah ditemukan dalam proses ini, dan tidak ada kombinasi yang benar-benar pintar yang tidak pernah dipikirkan sebelumnya. Hanya bit diambil di sana-sini dan disatukan (dan saya bahkan tidak yakin saya melakukannya dengan cara yang "benar" - saya benar-benar benar-benar baru dalam hal ini). Namun, itu membutuhkan banyak kesabaran. Membuat semua peluncur itu muncul pada waktu yang tepat di posisi yang tepat adalah menggaruk-garuk kepala.
Kemungkinan pengoptimalan:
- Alih-alih menyalin dan mendistribusikan jam root yang sama ke sel n counter, saya bisa saja menempatkan blok jam yang sama n kali (satu kali untuk setiap sel counter). Ini sebenarnya akan jauh lebih sederhana. Tapi kemudian saya tidak akan dapat menyesuaikannya dengan mudah dengan mengubah jam pada satu titik ... Dan saya memiliki latar belakang elektronik, dan di sirkuit nyata, itu akan sangat salah.
- Setiap segmen memiliki kait RS sendiri. Ini membutuhkan tabel pencarian untuk menghasilkan pulsa R dan S. Jika kami memiliki kait yang hanya akan beralih statusnya dari pulsa input umum, kami bisa membuat tabel pencarian setengah besar. Ada kait untuk titik PM, tetapi itu sangat besar, dan saya tidak dapat menemukan sesuatu yang lebih praktis.
- Buat tampilan lebih kecil. Tapi itu tidak akan terlihat bagus. Dan itu perlu. Iya.