Masa Oyunu AI Oluşturma


9

Türkiye'de çok popüler olan ve Okey olan bir masa oyununu kodlamak istiyorum. http://en.wikipedia.org/wiki/Okey

Ama yapay zeka ile ilgili bazı problemlerim var.

Firslty oyunu açıklamama izin verin ..

Oyun 4 oyuncu tarafından oynanır.

Bu oyunda 106 fayans vardır, bunlardan 2'si sahte jokerdir. Diğer 104 kiremit genellikle yeşil, siyah, mavi ve kırmızı olmak üzere 4 renge ayrılmıştır. Tüm renklerde iki karo seti vardır. Bir küme, sırasıyla 1 ila 13 numaralı 13 döşemeyi içerir.

Her oyuncu 14 taş başlatır (biri 15 başlar ve önce başlar) ve en çok istenmeyen taşlardan birini bir sonraki oyuncuya atar. Bir sonraki oyuncu bu kutucuğu alabilir veya masanın ortasındaki desteden başka bir kutucuk alabilir. Oyun saat yönünün tersine oynandı ..

Bu oyunun amacı, mümkün olan en kısa sürede 14 karonun geçerli sırasını bulmaktır. Oyuncu taşları 13'e kadar aynı renkteki sıralı sayılarla hizalayabilir. Yeşil 1, Yeşil 2, Yeşil 3'ü inceleyin. Burada bir istisna var, 1 13'e kadar takip edilebilir. Örneğin Kırmızı 12, Kırmızı 13 ve Kırmızı 1 bir geçerli küme. Ancak Kırmızı 13, Kırmızı 1 ve Kırmızı 2 geçerli değildir.

Veya oyuncu taşları aynı sayıdaki renklere göre hizalayabilir. Yeşil 1, Siyah 1, Kırmızı 1, Mavi 1.

Her kümenin geçerli olması için 3 veya daha fazla kutucuk olması gerekir ve bu kümenin her biri "Başına" olarak adlandırılır. 3 karodan daha az kaplama için geçerli değildir. Geçerli bir bitiş seti böyle olabilir. G: Yeşil, B: Mavi, R: Kırmızı, BL: Siyah G1 | G2 | G3 B2 | R2 | BL2 R9 | R10 | R11 | R12 BL13 | R13 | G13

Son şey, oyuna başlarken joker (okey) belirlemek için seçilen bir kiremit. Örneğin Mavi 3'ü seçerseniz; Mavi 4 joker (okey) olacak ve oyuncu, bir seti kazanmak veya tamamlamak için ihtiyaç duyduğu herhangi bir karo yerine bu kutucuğu kullanabilir.

Elbette bu kurallar genel kurallardır ve soruyu açıklamak için özetlenmiştir. İngilizce okuyabiliyorsanız daha fazla bilgi için bu bağlantıyı kontrol edebilirsiniz http://tr.wikipedia.org/wiki/Okey veya Google Translate tarafından çevrilmiş sayfa http://translate.google.com/translate?js=n&prev=_t&hl= tr & ie = UTF-8 & düzen = 2 & eotf = 1 & sl = tr & tl = tr & u = http: //tr.wikipedia.org/wiki/Okey

Peki hangi AI algoritmasını kullanabilirim? Minimax teorisi ve alfa beta budama aradım. Ancak bu teoriler genellikle satranç veya tic-tac-toe gibi yaklaşık 2 oyuncu oyunudur.

Orijinal Soru stackoverflow'dadır: /programming/4419628/creating-a-board-game-ai


1
Birçok yapay zeka algoritması kullanabilirsiniz, böylece "hangisi" bir tasarım (veya muhtemelen mühendislik) dengesidir. Oyunu "çözebilen" mükemmel bir yapay zeka ister misiniz? Ya da kendini utandırmayacak kadar iyi oynayan, ancak dövülebilecek kadar zayıf (özellikle birkaç zorluk seviyesi istiyorsanız) bir "oyun" AI mı istiyorsunuz? Yoksa oyunu test edebilmeniz için mantıksız oynayan çıplak kemikli "aptal" bir AI mı istiyorsunuz? Birçok seçenek, doğal olarak doğru veya yanlış yok.
Ian Schreiber

İçinde çeşitli teknikler / algoritmalar kullanabilmenize rağmen, bu sorun için özel olarak geliştirilmiş bir algoritmaya ihtiyacınız olduğunu düşünürüm. Ai.stackexchange.com'da
Matthew Read

@Ian, AI'nin oyunun kendisini kabul edilebilir oynayabilmesini istiyorum. Daha sonra zorluk seviyeleri ekleyebilirim. Bu yüzden bir başlangıç ​​noktasına ihtiyacım var. @Matthew sorumu oraya ekleyeceğim. Hepinize teşekkür ederim.
bahadir arslan

Ah! Bu sormak için mükemmel bir yer olurdu rağmen ai.stackexchange.com kapatılmış gibi görünüyor ... üzgün.
bummzack

Minmax'ın iyi bilinen çok oyunculu versiyonları MaxN ve Paranoid
Aramadır

Yanıtlar:


3

Kartlar için fayans takas ederseniz, oyunun açıklaması kart oyunu Gin Rummy'ye inanılmaz derecede benziyor. Buna karşı arama yaparak bazı doğrudan AI kaynakları bulabilirsiniz.

AI için oyuncu sayısına agnostik olan ve farklı AI kişilikleri oluşturmak için kullanılabilen bir seçenek:

  1. Masa oyununu ideal olarak bazı arkadaşlarınızla oynayın, ancak tüm elleri kendiniz oynayabilirsiniz, ancak kullanışlı ve Excel açık bir bilgisayarla.
  2. Düşünce sürecinizin ne olduğunu konuşun. Bir karar verirken dikkate almanız gereken birkaç ayrı nokta olacaktır. "İstenmeyen kutucuk bana oynanabilir bir set veriyor mu?"
  3. Ardından, hangi döşemenin alınacağına ve hangi döşemenin atılacağına karar verirken göz önünde bulunduğunuz tüm öğelerin listesine sahip olduğunuzda, sizin için en önemli olana göre onlar için sayı ağırlıkları oluşturmaya başlar.
    1. Örnek: 3. döşemeyi bir dizide almanız, 4. döşemeyi mevcut bir dizide almanızdan üç kat daha önemli olabilir.
  4. Bir karar verirken baktığınız her şey için tüm bu ağırlıkları elde ettikten sonra, her eylem için bir puan hesaplamak için Excel'i kullanabilirsiniz. Böylece, her satırın bir eylem seçimini ve her sütunun bir belirleyici faktörü temsil ettiği bir çalışma sayfanız vardır. Eğer bu faktör bu eylem için doğruysa, ağırlığın çarpımını yaparsınız, eğer bu faktör yanlışsa sıfır puan alırsınız. Sonra tüm puanları toplarsınız ve en yüksek değere sahip olanı AI'nın yapmayı seçeceği şeydir.
  5. Oyunu Excel açıkken oynayın. Her turda puan sonucunun seçeceğiniz sonuçla eşleşip eşleşmediğini görebilirsiniz. Eğer ağırlığınızı düşünene göre ayarlayana kadar ayarlamazsa. Birkaç oyundan sonra AI oyunu aynı şekilde oynamalıdır. Farklı ağırlıklara sahip bir grup arkadaşınızla sürekli oynuyorsanız, çeşitli kişiliklere sahip AI'lara sahip olacaksınız.

Daha sonra, her zaman en yüksek değere sahip seçeneği seçerek zorluğu kontrol edebilirsiniz. Puan ne kadar düşükse karar o kadar kötü olur.


Gin Rummy için AI oluşturma hakkında bir makale. Bazı yararlı bilgiler kanıtlayabilir. aifactory.co.uk/newsletter/2007_02_imperfect_info.htm
Tim Holt

Buna en kısa zamanda bakacağım. Teşekkürler @Tim Holt ve @skerslake
Arslan

Ayrıca MahJongg stratejilerini de ararım. O kadar yakından ilgili değil ama yine de yakın.
Loren Pechtel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.