Tulis program dalam bahasa pilihan Anda yang memainkan permainan tic-tac-toe di papan 3 * 3 melawan pemain manusia. Namun, setiap langkah harus merupakan program yang berbeda , dihasilkan dari iterasi sebelumnya.
Bagaimana dan dalam bentuk apa Anda mengevaluasi input manusia, terserah Anda, tetapi harus dibaca dari input standar. Demikian pula, Anda bebas untuk memilih metode bagaimana Anda akan menentukan pemain mana yang mulai (misalnya, Anda bertanya terlebih dahulu, atau Anda mengizinkan manusia untuk memasukkan langkah yang tidak valid untuk memberi sinyal bahwa komputer mulai, atau ide lain).
Memvalidasi gerakan tidak perlu, Anda dapat menganggap lawan manusia yang bermain cukup.
Pada dasarnya, Anda memiliki program yang sesuai dengan keadaan dewan. Status dicetak dengan cara apa pun yang dapat dikenali, tetapi setidaknya tingkat rincian berikut diharapkan:
X..
00X
x..
Setelah pemain manusia memasuki gerakannya, program Anda harus membuat iterasi berikutnya sebagai file sumber dalam bahasa yang sama (baik untuk output standar atau ke file) dan berakhir. Anda tidak diperbolehkan menyimpan informasi di tempat lain di luar file sumber itu. (tidak perlu bagi program Anda untuk membangun dan menjalankan program yang dihasilkan, itu bisa dilakukan oleh pengguna - namun, itu tidak dilarang). Ketika program yang dihasilkan dibangun dan dijalankan, ia akan berperilaku sama, menampilkan status, menunggu input pengguna, dll.
Di akhir permainan, Anda harus mencetak hasilnya (apakah Anda menang atau seri) dengan cara apa pun yang dapat diidentifikasikan secara jelas.
Dengan permainan yang sempurna maksud saya program tidak boleh kalah, dan jika ada kemungkinan untuk memaksakan kemenangan, itu harus menang.
Kode terpendek menang , pemenang dipilih setidaknya 10 hari setelah entri pertama yang valid.
Anda mendapatkan pengurangan skor 10% jika program Anda dapat menangani bangunan dan meluncurkan iterasi berikutnya. (Saya tahu, kemungkinan besar itu tidak sepadan) Tentu saja, program itu sendiri harus dihentikan pada saat iterasi berikutnya menerima perpindahan dari pengguna.
Jika Anda menggunakan beberapa trik aneh yang tidak biasa, silakan kirim penjelasan singkat dengan kode Anda.