1 poin oleh arcoding 2 jam lalu | Belum ada komentar. | Bagikan ke WhatsApp

Saya mencoba mengimplementasikan AI tic-tac-toe dengan UmmLang.
UmmLang adalah bahasa pemrograman esoterik yang hanya menyediakan variabel, input/output, percabangan kondisi, dan lompatan baris, dengan bentuk seperti ini:

[ eoeoeom-eoeoeo,,,,,,,, sigeoeoeo-k dongtaneo?jun. ]

Hampir tidak ada struktur kontrol umum seperti perulangan atau fungsi. Bahkan bilangan bulat pun harus direpresentasikan hanya dengan titik (.), koma (,), dan spasi, sehingga ini menjadi lingkungan yang cukup merepotkan untuk mengimplementasikan algoritma umum.

Pertama, saya mengimplementasikan tic-tac-toe 2×1 untuk memverifikasi representasi papan permainan dan cara implementasi AI.
Setiap sel dipetakan ke satu variabel, lalu sel kosong, X, dan O masing-masing direpresentasikan sebagai 0, 1, dan 2. Setelah itu, semua state yang mungkin didaftarkan dengan pernyataan Dongtan (IF) agar AI menentukan posisi yang akan dimainkan.
Dalam proses ini, saya juga membuat antarmuka keluaran papan permainan dan struktur pemrosesan input pengguna.

Setelah itu, saya memperluasnya menjadi tic-tac-toe 3×3.
Masalahnya, jumlah state permainan yang legal mencapai sekitar 4.520, sehingga menulis semua kasus secara manual tidak realistis.
Karena itu, saya menulis generator kode terpisah dengan Python.
Generator ini mengecualikan semua state permainan ketika jumlah O lebih banyak daripada X atau ketika permainan sudah berakhir, lalu menghitung langkah optimal AI tic-tac-toe (berbasis minimax) untuk setiap state.
Hasil perhitungan tersebut dikonversi otomatis ke bentuk pernyataan kondisi Dongtan milik UmmLang untuk menghasilkan file case.umm.

Akhirnya, ribuan cabang Dongtan yang dihasilkan disisipkan ke sumber utama untuk menyelesaikan logika AI.
Ketika koordinat yang dimasukkan pemain diterapkan ke variabel papan permainan, pernyataan kondisi yang dihasilkan mencari kasus yang cocok dengan state permainan saat ini dan menjalankan langkah AI.
Setelah itu, papan permainan dicetak kembali, lalu dengan sintaks jun dilakukan lompatan ke bagian input pengguna untuk membentuk game loop.
Dengan kata lain, saat runtime tidak ada pencarian atau perhitungan yang dilakukan; hanya pernyataan kondisi yang telah dibuat sebelumnya yang dieksekusi. Jadi, meskipun belum dioptimalkan, AI tic-tac-toe dapat diimplementasikan.

Di GitHub, saya juga meninggalkan cara untuk memainkannya langsung di situs Ryugod.

Belum ada komentar.

Belum ada komentar.