Creazione di un gioco da tavolo AI


9

Voglio codificare un gioco da tavolo che si chiama Okey e per lo più popolare in Turchia. http://en.wikipedia.org/wiki/Okey

Ma ho dei problemi con l'IA.

Firslty mi lascia spiegare il gioco ..

Il gioco è giocato da 4 giocatori.

In questo gioco ci sono 106 tessere, 2 delle quali sono jolly falsi. Altre 104 tessere sono divise in 4 colori generalmente verde, nero, blu e rosso. Tutti i colori hanno due set di tessere. Un'isola set contiene 13 tessere numerate in sequenza da 1 a 13.

Ogni giocatore inizia 14 tessere (una è l'inizio 15 e inizia per prima) e lancia una delle tessere più indesiderate al giocatore successivo. Il giocatore successivo può ottenere questa tessera o può ottenere un'altra tessera dallo stack nel mezzo del tavolo. Il gioco si è svolto in senso antiorario ..

Lo scopo di questo gioco è trovare la sequenza valida di 14 tessere il prima possibile. Il giocatore può allineare le tessere con numeri sequenziali nello stesso colore fino a 13. Per esempio Verde 1, Verde 2, Verde 3. Qui c'è un'eccezione, 1 può essere seguito a 13. Ad esempio Rosso 12, Rosso 13 e Rosso 1 è un set valido. Ma Red 13, Red 1 e Red 2 non sono validi.

Oppure il giocatore può allineare le tessere in base ai colori con lo stesso numero. Per esempio Verde 1, Nero 1, Rosso 1, Blu 1.

Ogni set deve essere 3 o più tessere per essere valido e ognuno di questi set è chiamato "Per". Meno di 3 tessere non sono valide per la finitura. Un set di finitura valido può essere così. G: Verde, B: Blu, R: Rosso, BL: Nero G1 | G2 | G3 B2 | R2 | BL2 R9 | R10 | R11 | R12 BL13 | R13 | G13

L'ultima cosa, quando si avvia il gioco, una tessera selezionata per determinare il jolly (okey). Ad esempio se si seleziona Blue 3; Blue 4 sarà jolly (okey) e il giocatore può usare questa tessera invece di qualsiasi tessera di cui il giocatore ha bisogno per vincere o completare un set (per).

Naturalmente queste regole sono regole generali e riassunte per spiegare la domanda. Se riesci a leggere l'inglese puoi consultare questo link per ulteriori informazioni http://tr.wikipedia.org/wiki/Okey o pagina tradotta da Google Translate http://translate.google.com/translate?js=n&prev=_t&hl= it & ie = UTF-8 & layout = 2 & EOTF = 1 & sl = tr & tl = it & u = http: //tr.wikipedia.org/wiki/Okey

Quindi quale algoritmo AI posso usare? Ho cercato la teoria minimax e la potatura alfa beta. Ma queste teorie riguardano generalmente 2 giocatori come scacchi o tic-tac-toe.

La domanda originale è su StackOverflow: /programming/4419628/creating-a-board-game-ai


1
Puoi usare molti algoritmi AI, quindi "quale" è un compromesso di progettazione (o possibilmente ingegneria). Vuoi un'intelligenza artificiale "perfetta" in grado di "risolvere" il gioco (ovvero giocare in modo ottimale)? Oppure vuoi un'intelligenza artificiale "da gioco" che gioca abbastanza bene da non mettersi in imbarazzo, ma abbastanza debole da essere battibile (specialmente se vuoi diversi livelli di difficoltà)? Oppure vuoi solo un'intelligenza artificiale "stupida" che gioca senza logica in modo da poter testare il gioco? Molte scelte, nessuna intrinsecamente giusta o sbagliata.
Ian Schreiber,

Penserei che avresti bisogno di un algoritmo sviluppato appositamente per questo problema, anche se potresti essere in grado di utilizzare varie tecniche / algoritmi al suo interno. Potresti ottenere una buona risposta su ai.stackexchange.com
Matteo Leggi il

@Ian, voglio che l'IA possa giocare il gioco stesso accettabile. Potrebbe essere più tardi posso aggiungere livelli di difficoltà. Quindi ho bisogno di un punto di partenza. @Matthew aggiungerò la mia domanda lì. Grazie a tutti.
bahadir arslan,

Ahia! Sembra che ai.stackexchange.com fosse chiuso, anche se sarebbe stato il posto perfetto per chiedere ... triste.
Bummzack,

Le ben note versioni multiplayer di minmax sono MaxN e Paranoid Search
Druzil

Risposte:


3

Se si scambiano tessere con carte, la descrizione del gioco sembra incredibilmente simile al gioco di carte Gin Rummy. Potresti essere in grado di trovare alcune risorse AI dirette cercando in quella direzione.

Un'opzione per l'IA che è indipendente dal numero di giocatori e che può essere utilizzata per creare diverse personalità dell'IA:

  1. Gioca al gioco da tavolo, idealmente con alcuni amici, anche se puoi giocare da solo tutte le mani, ma con un computer a portata di mano e Excel aperto.
  2. Discutere caricare qual è il processo di pensiero. Ci saranno una serie di punti discreti che prenderai in considerazione quando prenderai una decisione. Cose come "la tessera indesiderata mi dà un set giocabile", o "avvicinami a un set" o "aggiungi a un set giocabile esistente".
  3. Quindi una volta che hai l'elenco di tutti gli elementi che consideri quando prendi una decisione su quale tessera raccogliere e quale tessera scartare, inizia a creare pesi numerici per loro in base a ciò che è più importante per te.
    1. Esempio: potrebbe essere tre volte più importante per te ottenere la terza tessera in una sequenza come lo è per ottenere la quarta tessera in una sequenza esistente.
  4. Una volta che hai tutti questi pesi per tutte le cose che guardi quando prendi una decisione, puoi usare Excel per calcolare un punteggio per ogni azione. Quindi hai un foglio di lavoro in cui ogni riga rappresenta una scelta di azione e ogni colonna rappresenta un fattore decisivo. Se quel fattore è vero per quell'azione, lo moltiplichi per il peso, se quel fattore è falso, ottieni un punteggio pari a zero. Quindi sommi tutti i punteggi e quello con il valore più alto è ciò che l'IA sceglierà di fare.
  5. Gioca con Excel aperto. Ad ogni turno vedi se il risultato del punteggio corrisponde al risultato che sceglieresti. Se non regola i pesi in base al tuo pensiero fino a quando non lo fa. Dopo diversi giochi l'IA dovrebbe giocare allo stesso modo in cui lo fai. Se hai giocato in modo coerente con un gruppo di amici che hanno pesi diversi, avrai AI con personalità diverse.

È quindi possibile controllare la difficoltà non sempre selezionando l'opzione con il punteggio più alto. Poiché più basso è il punteggio, peggiore è la decisione.


Ecco un articolo sulla creazione di AI per Gin Rummy. Potrebbe dimostrare alcune informazioni utili. aifactory.co.uk/newsletter/2007_02_imperfect_info.htm
Tim Holt

Lo guarderò al più presto. Grazie @ Tim Holt e @skerslake
bahadir arslan il

Vorrei anche cercare le strategie di MahJongg. Non è così strettamente correlato ma è ancora vicino.
Loren Pechtel,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.