Anda mungkin tahu Permainan Kehidupan Conway , robot seluler terkenal yang ditemukan oleh ahli matematika John Conway. Hidup adalah seperangkat aturan yang, bersama-sama, memungkinkan Anda untuk mensimulasikan papan sel dua dimensi. Aturan memutuskan sel mana di papan hidup dan mana yang mati. Dengan beberapa imajinasi, Anda dapat mengatakan bahwa Life adalah game tanpa pemain: permainan dengan tujuan untuk menemukan pola dengan perilaku yang menarik, seperti peluncur yang terkenal.
Gim nol pemain ... Hingga hari ini. Anda harus menulis sebuah program yang memainkan Game of Life - dan memainkannya untuk menang, gaya King of the Hill. Lawan Anda (tunggal) tentu saja mencoba melakukan hal yang sama. Pemenangnya adalah bot terakhir dengan sel hidup apa pun, atau pemain dengan sel terbanyak setelah 10.000 generasi.
Aturan gim
Aturannya hampir sama dengan kehidupan normal (B3 / S23):
- Sel hidup dengan kurang dari dua tetangga yang ramah mati karena kelaparan.
- Sel hidup dengan dua atau tiga tetangga yang ramah selamat.
- Sel hidup dengan lebih dari tiga tetangga yang ramah mati karena kelebihan populasi.
- Sel mati dengan tepat tiga tetangga dari pemain yang sama menjadi hidup untuk bertarung demi pemain itu asalkan tidak ada tetangga musuh .
... tetapi setelah setiap generasi, baik Anda dan lawan Anda mendapatkan kesempatan untuk campur tangan. Anda dapat bangun hingga maksimal 30 sel untuk memperjuangkan Anda. (Siapa yang duluan diputuskan oleh server.)
Papan adalah sel (x, y) sel. Semua kotak awalnya mati. Perbatasan tidak membungkus (ini bukan dunia yang berbentuk torus) dan mati secara permanen.
Ini adalah kontes dalam semangat Battlebots dan Core Wars . Ada server pusat yang akan menjalankan bot dan dapat ditemukan di sini
Protokol
Server arena berbicara protokol JSON sederhana yang dikomunikasikan melalui argv
Di mana Nilai adalah string yang dikodekan JSON
y_size
: maksimum y tegel ubin sebelum hilangx_size
: maksimum x coords ubin sebelum hilangtick_id
: nomor centang saat iniboard
: kamus dengan kunci dalam formulir '(y, x)' dan nilai-nilai dalam bentukbot_id
(int)bot_id
: ubin di papan dengan id ini adalah milikmu
Contoh:
{"y_size":2000,"x_size":2000,"board":{},"bot_id":1,"tick_id":1}
Memberitahu server pilihan Anda:
- Kirim server daftar ubin untuk beralih ke warna Anda.
- Hanya yang kosong yang akan diubah
- Format daftar koordinat bersarang
[[0,0], [0,1], [100,22]...]
CATATAN: Bot Anda tidak perlu memperbarui ubin sama sekali - server melakukan pembaruan itu sendiri
Aturan persaingan
- Jika implementasi Anda gagal mengikuti protokol, gilirannya itu akan hangus; Server akan menganggap tidak ada perubahan dalam status
- Anda tidak diizinkan mengambil keuntungan dari kesalahan di server arena.
- Mintalah AI Anda memutuskan untuk bergerak dalam waktu yang waras. Silakan kirim langkah Anda berikutnya secepat mungkin.
- Akhirnya, mohon bersikap baik pada server. Itu ada untuk kesenangan Anda.
- Tidak mengikuti aturan-aturan ini dapat menyebabkan diskualifikasi.
- Dalam hal seri, kedua pemain memiliki 1 kemenangan ditambahkan ke total mereka
Menjalankan pengontrol sendiri
Sumber untuk pengontrol dapat ditemukan di sini . Ada 2 cara menjalankan pengontrol:
- Mode kompetisi (terminal)
- Setup dengan
python3 get_answers.py
- Jalankan semua kompetisi semua dengan bot masing-masing mengadu domba satu sama lain.
- Setup dengan
- Mode pengujian (GUI)
- Lari
python3 nice_gui.py
- Klik
Pull Answers
- Jika Anda ingin menambahkan jawaban Anda sendiri untuk mencobanya sebelum memposting, klik
File -> Add manual answer
dan temukan file dan pilih bahasa yang digunakan untuk menuliskannya. - Jika bahasa Anda tidak hadir, ping saya dan saya akan mencoba untuk menginstalnya di server saya akan menjalankannya (instalasi dan menjalankan instruksi juga akan bagus!)
- Pilih 2 bot untuk diadu satu sama lain
- Klik
Run
- Tonton pertandingan ...
- Lari
- Instalasi
- Membutuhkan python3
- get_answers membutuhkan bs4 dan html5lib
- controller memerlukan cara menjalankan file .sh (MinGW di windows)
Mencetak gol
Bot dengan kemenangan terbanyak mulai dari 12/07/2016
(12 Juli)14/07/2016
(14 Juli, tidak bisa mengetahui cara menjalankan bot) menang.
Bantuan dengan controller / gui dapat ditanyakan di ruang obrolan ini
Pertanyaan ini telah dikembangkan sejak 2014 dan merupakan pertanyaan yang paling banyak dipilih di kotak pasir. Terima kasih khusus kepada Wander Nauta (penulis asli dan konsep), Obrolan PPCG (komentar dan bantuan) dan siapa saja yang berkomentar di posting sandbox (lebih banyak komentar).