Versi tugas Rusia dapat ditemukan di repositori.
Level Loading 2…
Loading Hall…
Anda baru saja ke aula yang sama. Atau sudah lama sekali? Sulit untuk diceritakan. Semuanya menjadi bercampur aduk. Sekali lagi Anda dapat mendengar suara -suara dari sudut jauh aula. Itu berarti Anda tidak sendirian lagi. Hari ini aula menyala terang dan dalam urutan yang sempurna. Variasi bagus.
Tiba -tiba, Anda mendengar suara yang jelas dan sangat terdengar dari speaker:
Halo.
Izinkan saya memperkenalkan diri. Saya adalah modul kontemplatif dan menganalisis, M-53. Untuk alasan yang tidak diketahui, saya menemukan diri saya di aula yang agak membosankan ini. Ini adalah tanggung jawab dan hal -hal yang cukup besar, tetapi tidak ada yang bisa direnungkan di sini.
Ketika saya sedang dikembangkan, saya belajar dari artikel menghibur tertentu, di antara materi lainnya. Salinan kertasnya ada di dalam kotak A1B18. Ya, di sini. Saya memiliki permintaan kecil untuk Anda: Kembangkan Game of Life dari artikel; Mudah -mudahan, itu akan menghibur saya sedikit. Dan pergi dengan damai. Grafiknya bisa sangat sederhana: Saya sangat berpikiran terbuka. Pseudo-grafik di terminal akan baik-baik saja. Akan lebih baik jika mungkin untuk menginisialisasi keadaan menggunakan matriks dan merenungkan. Ini juga merupakan ide yang baik untuk mempersiapkan setidaknya 5 inisialisasi asli dengan keadaan dari set klasik (angka stabil, metuselah, angka periodik, angka bergerak, senjata, kereta puffer, pemakan, reflektor, peternak, dll.).
Saya berharap dapat melihat apa yang Anda hasilkan!
Terima kasih.
== Quest diterima. Kembangkan program SRC/Game_of_Life.c di C - Visualisasi Game of Life. Untuk menampilkan grafik, hanya gunakan karakter ASCII (dengan output ke terminal). Anda perlu menerapkan versi interaktif dari Game of Life. Juga buat opsi untuk menyesuaikan kecepatan "game". ==
Perlakukan lapangan bermain - persegi panjang 80 dengan 25 sel - sebagai matriks keadaan "permainan". Diasumsikan bahwa lapangan "tertutup untuk dirinya sendiri", misalnya, di kotak kanan bawah, tetangga di sebelah kanan adalah kotak kiri bawah, dan tetangga di bagian bawah adalah kanan atas. Menyediakan inisialisasi asli dari keadaan "Game" melalui Stdin. Siapkan setidaknya 5 file dengan status awal untuk peluncuran cepat dan inisialisasi melalui pengalihan input.
Permainan harus ditulis dalam C, memiliki gaya terstruktur, dan dijalankan dari terminal;
Kode sumber Anda akan diuji oleh penganalisa statis cppcheck
, serta gaya cpplint
LINTER.
Instruksi tentang cara menjalankan tes ini di komputer Anda ada di folder materials
.
Jangan gunakan fungsi rumit, batasi hingga 40 baris (tidak termasuk main
).
Periksa program Anda untuk kebocoran memori!
Saat mengembangkan permainan, ikuti prinsip -prinsip pemrograman terstruktur E. dijkstra.
MEMUAT...
Game of Life, juga dikenal sebagai Life, adalah otomat seluler yang dirancang oleh ahli matematika Inggris John Horton Conway pada tahun 1970. Ini adalah permainan nol-pemain, yang berarti bahwa evolusinya ditentukan oleh keadaan awalnya, tidak memerlukan input lebih lanjut. Seseorang berinteraksi dengan Game of Life dengan menciptakan konfigurasi awal dan mengamati bagaimana ia berkembang. Turing lengkap dan dapat mensimulasikan konstruktor universal atau mesin Turing lainnya.
Alam semesta dari Game of Life adalah jaringan ortogonal dua dimensi yang tak terbatas dari sel-sel persegi, yang masing-masing berada di salah satu dari dua negara yang mungkin, hidup atau mati, (atau berpenduduk dan tidak didopulasi, masing-masing). Setiap sel berinteraksi dengan delapan tetangganya, yang merupakan sel yang berdekatan secara horizontal, vertikal, atau diagonal. Pada setiap langkah dalam waktu, transisi berikut terjadi:
Sel langsung dengan kurang dari dua tetangga hidup mati, seolah -olah dengan kekurangan populasi. Sel hidup apa pun dengan dua atau tiga tetangga hidup hidup ke generasi berikutnya. Sel langsung dengan lebih dari tiga tetangga hidup mati, seolah -olah dengan kelebihan populasi. Sel mati dengan tepat tiga tetangga hidup menjadi sel hidup, seolah -olah dengan reproduksi. Aturan -aturan ini, yang membandingkan perilaku otomat dengan kehidupan nyata, dapat dikondensasi ke yang berikut:
Sel hidup apa pun dengan dua atau tiga tetangga hidup bertahan. Setiap sel mati dengan tiga tetangga hidup menjadi sel hidup. Semua sel hidup lainnya mati pada generasi berikutnya. Demikian pula, semua sel mati lainnya tetap mati. Pola awal merupakan benih sistem. Generasi pertama dibuat dengan menerapkan aturan di atas secara bersamaan untuk setiap sel dalam benih; Kelahiran dan kematian terjadi secara bersamaan, dan momen terpisah di mana hal ini terjadi kadang -kadang disebut kutu. Setiap generasi adalah fungsi murni dari yang sebelumnya. Aturan terus diterapkan berulang kali untuk menciptakan generasi lebih lanjut.
Pada akhir 1940, John von Neumann mendefinisikan kehidupan sebagai ciptaan (sebagai makhluk atau organisme) yang dapat mereproduksi dirinya sendiri dan mensimulasikan mesin Turing. Von Neumann sedang memikirkan solusi teknik yang akan menggunakan komponen elektromagnetik yang mengambang secara acak dalam cairan atau gas. Ternyata tidak realistis dengan teknologi yang tersedia pada saat itu. Stanislaw Ulam menemukan automata seluler, yang dimaksudkan untuk mensimulasikan konstruksi elektromagnetik teoretis von Neumann. Ulam membahas penggunaan komputer untuk mensimulasikan automata selulernya dalam kisi dua dimensi di beberapa makalah. Secara paralel, von Neumann berusaha membangun otomat seluler Ulam. Meskipun berhasil, dia sibuk dengan proyek lain dan meninggalkan beberapa detail yang belum selesai. Konstruksinya rumit karena mencoba mensimulasikan desain tekniknya sendiri. Seiring waktu, konstruksi kehidupan yang lebih sederhana disediakan oleh peneliti lain, dan diterbitkan dalam makalah dan buku.
Termotivasi oleh pertanyaan dalam logika matematika dan sebagian oleh pekerjaan pada permainan simulasi oleh Ulam, antara lain, John Conway mulai melakukan eksperimen pada tahun 1968 dengan berbagai aturan otomat seluler dua dimensi yang berbeda. Tujuan awal CONWAY adalah untuk mendefinisikan sel yang menarik dan tidak dapat diprediksi. Automaton. Misalnya, ia ingin beberapa konfigurasi bertahan lama sebelum kematian dan konfigurasi lainnya untuk berlangsung selamanya tanpa mengizinkan siklus. Itu adalah tantangan yang signifikan dan masalah terbuka selama bertahun -tahun sebelum para ahli di Automata Seluler berhasil membuktikan bahwa, memang, permainan kehidupan yang diakui dari konfigurasi yang masih hidup dalam arti memuaskan dua persyaratan umum von Neumann. Sementara definisi sebelum Game of Life berorientasi bukti, konstruksi Conway ditujukan untuk kesederhanaan tanpa apriori memberikan bukti bahwa otomat itu masih hidup.
Conway memilih aturannya dengan hati -hati, setelah eksperimen yang cukup besar, untuk memenuhi kriteria ini:
Seharusnya tidak ada pertumbuhan eksplosif. Seharusnya ada pola awal kecil dengan hasil kacau dan tidak terduga. Harus ada potensi untuk konstruktor universal von Neumann. Aturan harus sesederhana mungkin, sambil mematuhi kendala di atas. Gim ini membuat penampilan publik pertamanya di edisi Oktober Scientific American, di kolom "Matematika Games" Martin Gardner. Secara teoritis, Game of Life memiliki kekuatan mesin Turing universal: apa pun yang dapat dihitung secara algoritma dapat dihitung dalam permainan kehidupan. Gardner menulis, "Karena analogi hidup dengan kebangkitan, kejatuhan dan perubahan masyarakat organisme hidup, itu milik kelas yang berkembang dari apa yang disebut 'permainan simulasi' (permainan yang menyerupai proses kehidupan nyata)."
Sejak publikasi, Game of Life telah menarik banyak minat karena cara -cara mengejutkan di mana polanya dapat berkembang. Ini memberikan contoh kemunculan dan pengorganisasian diri. Para sarjana di berbagai bidang, seperti ilmu komputer, fisika, biologi, biokimia, ekonomi, matematika, filsafat, dan ilmu generatif, telah memanfaatkan cara pola yang kompleks dapat muncul dari implementasi aturan sederhana permainan. Gim ini juga dapat berfungsi sebagai analogi didaktik, yang digunakan untuk menyampaikan gagasan yang agak kontra-intuitif bahwa desain dan organisasi dapat secara spontan muncul tanpa adanya seorang desainer. Sebagai contoh, ilmuwan kognitif Daniel Dennett telah menggunakan analogi permainan kehidupan "alam semesta" secara luas untuk menggambarkan kemungkinan evolusi konstruksi filosofis yang kompleks, seperti kesadaran dan kehendak bebas, dari serangkaian hukum fisik deterministik yang relatif sederhana yang mungkin mengatur kita semesta.
Popularitas Game of Life dibantu dengan datang pada saat yang sama dengan akses komputer yang semakin murah. Permainan dapat dijalankan selama berjam -jam di mesin -mesin ini, yang seharusnya tidak digunakan di malam hari. Dalam hal ini, itu meramalkan popularitas fraktal yang dihasilkan komputer kemudian. Bagi banyak orang, permainan kehidupan hanyalah tantangan pemrograman: cara yang menyenangkan untuk menggunakan siklus CPU yang terbuang. Namun, bagi sebagian orang, permainan kehidupan memiliki lebih banyak konotasi filosofis. Ini mengembangkan pengikut kultus hingga tahun 1970 -an dan seterusnya; Perkembangan saat ini telah melangkah lebih jauh untuk menciptakan emulasi teoretis sistem komputer dalam batas -batas papan Game of Life.
MEMUAT...