Je veux coder un jeu de société dont le nom est Okey et qui est surtout populaire en Turquie. http://en.wikipedia.org/wiki/Okey
Mais j'ai des problèmes avec l'IA.
Firslty permettez-moi d'expliquer le jeu ..
Le jeu est joué par 4 joueurs.
Dans ce jeu, il y a 106 tuiles, 2 d'entre elles sont de faux joker. Les 104 autres tuiles sont divisées en 4 couleurs généralement vertes, noires, bleues et rouges. Toutes les couleurs ont deux ensembles de tuiles. Un ensemble ise contient 13 tuiles numérotées séquentiellement de 1 à 13.
Chaque joueur commence 14 tuiles (une commence 15 et commence en premier) et lance l'une des tuiles les plus indésirables au joueur suivant. Le joueur suivant peut obtenir cette tuile ou obtenir une autre tuile de la pile au milieu de la table. Le jeu a joué dans le sens antihoraire ..
Le but de ce jeu est de trouver la séquence valide de 14 tuiles dès que possible. Le joueur peut aligner les tuiles par des numéros séquentiels de la même couleur jusqu'à 13. Par exemple Green 1, Green 2, Green 3. Il y a une exception ici, 1 peut être suivi de 13. Par exemple Red 12, Red 13 et Red 1 est un ensemble valide. Mais Red 13, Red 1 et Red 2 n'est pas valide.
Ou le joueur peut aligner les tuiles par couleurs dans le même nombre. Par exemple vert 1, noir 1, rouge 1, bleu 1.
Chaque ensemble doit être composé de 3 tuiles ou plus pour être valide et chacun de cet ensemble doit être nommé "Per". Moins de 3 tuiles n'est pas valable pour la finition. Un ensemble de finition valide peut ressembler à ceci. G: Vert, B: Bleu, R: Rouge, BL: Noir G1 | G2 | G3 B2 | R2 | BL2 R9 | R10 | R11 | R12 BL13 | R13 | G13
Dernière chose, au début du jeu, une tuile sélectionnée pour déterminer le joker (okey). Par exemple, si vous sélectionnez Bleu 3; Blue 4 sera joker (okey) et le joueur peut utiliser cette tuile à la place de n'importe quelle tuile dont le joueur a besoin pour gagner ou compléter un ensemble (par).
Bien sûr, ces règles sont des règles générales et résumées pour expliquer la question. Si vous pouvez lire l'anglais, vous pouvez consulter ce lien pour plus d'informations http://tr.wikipedia.org/wiki/Okey ou page traduite par Google Translate http://translate.google.com/translate?js=n&prev=_t&hl= en & ie = UTF-8 & layout = 2 & eotf = 1 & sl = tr & tl = en & u = http: //tr.wikipedia.org/wiki/Okey
Alors, quel algorithme d'IA que je peux utiliser? J'ai recherché la théorie minimax et l'élagage alpha beta. Mais ces théories concernent généralement 2 joueurs comme les échecs ou le tic-tac-toe.
La question d'origine est à stackoverflow: /programming/4419628/creating-a-board-game-ai
la source
Réponses:
Si vous échangez des tuiles contre des cartes, la description du jeu semble incroyablement similaire au jeu de cartes Gin Rummy. Vous pourrez peut-être trouver des ressources d'IA directes en recherchant cela.
Une option pour l'IA qui est indépendante du nombre de joueurs et peut être utilisée pour créer différentes personnalités de l'IA:
Vous pouvez ensuite contrôler la difficulté en ne sélectionnant pas toujours l'option la mieux notée. Comme plus le score est bas, plus la décision est mauvaise.
la source