Membuat A Board Game AI

9

Saya ingin membuat kode permainan papan yang namanya Okey dan sebagian besar populer di Turki. http://en.wikipedia.org/wiki/Okey

Tetapi saya punya beberapa masalah tentang AI.

Firslty izinkan saya menjelaskan permainan ..

Game ini dimainkan oleh 4 pemain.

Dalam game ini ada 106 ubin, 2 di antaranya adalah joker palsu. 104 ubin lainnya dibagi 4 warna umumnya hijau, hitam, biru dan merah. Semua warna memiliki dua set ubin. Seperangkat ise berisi 13 ubin yang diberi nomor secara berurutan 1 hingga 13.

Setiap pemain mulai 14 ubin (satu mulai 15 dan mulai pertama) dan melemparkan salah satu ubin yang paling tidak diinginkan pemain berikutnya. Pemain berikutnya bisa mendapatkan ubin ini atau bisa mendapatkan ubin lain dari tumpukan di tengah meja. Game ini dimainkan dengan berlawanan arah jarum jam ..

Tujuan permainan ini adalah menemukan urutan 14 ubin yang valid sesegera mungkin. Pemain dapat menyelaraskan ubin dengan nomor urut dalam warna yang sama hingga 13. Untuk memeriksa Hijau 1, Hijau 2, Hijau 3. Ada pengecualian di sini, 1 dapat diikuti hingga 13. Misalnya Merah 12, Merah 13 dan Merah 1 adalah set yang valid. Tetapi Merah 13, Merah 1 dan Merah 2 tidak valid.

Atau pemain dapat menyelaraskan ubin dengan warna di nomor yang sama. Untuk memeriksa Hijau 1, Hitam 1, Merah 1, Biru 1.

Setiap set harus 3 atau lebih ubin agar valid dan masing-masing set ini dinamai "Per". Kurang dari 3 ubin tidak valid untuk selesai. Set selesai yang valid bisa seperti ini. G: Hijau, B: Biru, R: Merah, BL: Hitam G1 | G2 | G3 B2 | R2 | BL2 R9 | R10 | R11 | R12 BL13 | R13 | G13

Hal terakhir, saat memulai permainan ubin dipilih untuk menentukan joker (okey). Misalnya jika Anda memilih Biru 3; Biru 4 akan menjadi joker (oke) dan pemain dapat menggunakan ubin ini alih-alih ubin yang dibutuhkan pemain untuk menang atau menyelesaikan satu set (per).

Tentu saja aturan ini adalah aturan umum dan dirangkum untuk menjelaskan pertanyaan. Jika Anda dapat membaca bahasa Inggris, Anda dapat memeriksa tautan ini untuk informasi lebih lanjut http://tr.wikipedia.org/wiki/Okey atau laman yang diterjemahkan oleh Google Translate http://translate.google.com/translate?js=n&prev=_t&hl= id & ie = UTF-8 & tata letak = 2 & eotf = 1 & sl = tr & tl = en & u = http: //tr.wikipedia.org/wiki/Okey

Jadi algoritma AI mana yang bisa saya gunakan? Saya mencari teori minimax dan pemangkasan alpha beta. Namun teori-teori ini umumnya tentang 2 pemain game seperti catur atau tic-tac-toe.

Pertanyaan Asli ada di stackoverflow: /programming/4419628/creating-a-board-game-ai

arsir bahadir
sumber
1
Anda dapat menggunakan banyak algoritma AI, jadi "yang mana" adalah tradeoff desain (atau mungkin rekayasa). Apakah Anda menginginkan AI "sempurna" yang dapat "menyelesaikan" permainan (yaitu bermain secara optimal)? Atau apakah Anda menginginkan "permainan" AI yang bermain cukup baik untuk tidak mempermalukan dirinya sendiri, tetapi cukup lemah sehingga dapat dikalahkan (terutama jika Anda menginginkan beberapa tingkat kesulitan)? Atau apakah Anda hanya ingin AI "bodoh" tanpa tulang yang bermain tanpa logika sehingga Anda dapat menguji permainan? Banyak pilihan, tidak ada yang secara inheren benar atau salah.
Ian Schreiber
Saya pikir Anda akan membutuhkan algoritma yang dikembangkan khusus untuk masalah ini, meskipun Anda mungkin dapat menggunakan berbagai teknik / algoritma di dalamnya. Anda mungkin mendapatkan jawaban yang bagus di ai.stackexchange.com
Matthew Read
@Ian, saya ingin AI bisa bermain game itu sendiri dapat diterima. Mungkin nanti saya bisa menambahkan tingkat kesulitan. Jadi saya butuh titik awal. @ Matius saya akan menambahkan pertanyaan saya di sana. Terima kasih semua.
bahadir arslan
Aduh! Sepertinya ai.stackexchange.com ditutup, meskipun itu akan menjadi tempat yang tepat untuk bertanya ... sedih.
bummzack
Versi multipemain minemax yang terkenal adalah MaxN dan Paranoid Search
Druzil

Jawaban:

3

Jika Anda menukar ubin dengan kartu, deskripsi permainan terdengar sangat mirip dengan permainan kartu Gin Rummy. Anda mungkin dapat menemukan beberapa sumber daya AI langsung dengan mencarinya.

Satu opsi untuk AI yang agnostik dengan jumlah pemain dan dapat digunakan untuk membuat kepribadian AI yang berbeda:

  1. Mainkan permainan papan, idealnya dengan beberapa teman, meskipun Anda dapat memainkan semua tangan sendiri, tetapi dengan komputer dan Excel terbuka.
  2. Bicara keluar isi apa proses pemikiran Anda. Akan ada sejumlah poin diskrit yang Anda pertimbangkan saat membuat keputusan. Hal-hal seperti "apakah ubin yang tidak diinginkan memberi saya set yang dapat diputar", atau "buat saya selangkah lebih dekat ke set", atau "tambahkan ke set yang dapat dimainkan yang ada".
  3. Kemudian setelah Anda memiliki daftar semua item yang Anda pertimbangkan ketika membuat keputusan ubin apa yang akan diambil dan ubin apa yang harus dibuang mulai membuat bobot angka untuk mereka berdasarkan pada apa yang paling penting bagi Anda.
    1. Contoh: Mungkin tiga kali lebih penting bagi Anda untuk mendapatkan ubin ke-3 secara berurutan dibandingkan dengan mendapatkan ubin ke-4 dalam urutan yang ada.
  4. Setelah Anda memiliki semua bobot ini untuk semua hal yang Anda lihat saat membuat keputusan, Anda dapat menggunakan Excel untuk menghitung skor untuk setiap tindakan. Jadi, Anda memiliki lembar kerja di mana setiap baris mewakili pilihan tindakan dan setiap kolom mewakili faktor penentu. Jika faktor itu benar untuk tindakan itu Anda mengalikannya dengan berat, jika faktor itu salah, Anda skor nol. Kemudian Anda menjumlahkan semua skor dan skor dengan nilai tertinggi adalah apa yang AI akan lakukan.
  5. Mainkan game dengan Excel terbuka. Setiap belokan melihat apakah hasil skor cocok dengan hasil yang Anda pilih. Jika itu tidak menyesuaikan bobot berdasarkan pemikiran Anda sampai itu terjadi. Setelah beberapa permainan, AI harus memainkan permainan dengan cara yang sama seperti yang Anda lakukan. Jika Anda telah bermain secara konsisten dengan sekelompok teman yang semuanya memiliki bobot berbeda maka Anda akan memiliki AI dengan berbagai kepribadian.

Anda kemudian dapat mengontrol kesulitan dengan tidak selalu memilih opsi nilai tertinggi. Karena semakin rendah skor semakin buruk keputusannya.

wkerslake
sumber
Berikut ini adalah artikel tentang membuat AI untuk Gin Rummy. Ini mungkin membuktikan beberapa wawasan yang bermanfaat. aifactory.co.uk/newsletter/2007_02_imperfect_info.htm
Tim Holt
Saya akan melihat ini sesegera mungkin. Terima kasih @Tim Holt dan @skerslake
bahadir arslan
Saya juga akan mencari-cari strategi MahJongg. Ini tidak begitu erat hubungannya tetapi masih dekat.
Loren Pechtel