Projet réalisé par Rami KHEDAIR et Adrien ROHO. Ce README donne des informations sur comment lancer le jeu, comment nous l'avons implémenté etc...
Différentes informations pour savoir comment jouer au jeu et comment choisir les IA.
Lancer game.bat, si vous avez swipl dans votre variable PATH.
Vous pourrez ensuite utiliser la requête init. pour démarrer le jeu.
Sinon, swipl ./main.pl fera l'affaire.
Il est possible de modifier le code pour utiliser nos différentes IA dans le jeu. Les IA disponibles
human, pas vraiment une IA, permet à quelqu'un de jouer dans la consolerandom, IA aléatoire implémentée au tout débutminmax, (Base générée par IA puis repris par nous) tentative d'algo avec alpha bêta. Ne fonctionne pas à cause de la fonction qui calcule un score pour chaque coup, qui renvoie toujours 0.A*, (Base générée par IA puis repris par nous). Implémentation d'un algorithme A* avec attribution d'un score pour chaque coup
Informations techniques liées à notre implémentation.
Nous sommes partis, comme la majorité des groupes, sur la base de Morpion que nous avions implémenté en cours. Nous représentons notre plateau comme étant une liste unique, en colonne:
0, 6, 12, ...
1, 7, 13, ...
2, 8, 14, ...
3, 9, 15, ...
. . .
. . .
. . .
L'ensemble du jeu a été réalisé par nous même, à l'exception du prédicat d'affichage du jeu que nous avons généré par IA. Notre version n'a pas été mise à jour pour fonctionner avec le système de tournoi qui a été implémenté durant le projet.
Chacune de nos IA (min max, a*) s'exécute de cette manière:
- Placement si cette IA joue en premier: L'IA jouera au centre si elle démarre la partie
- Vérification d'un coup gagnant: S'il existe un coup qui fait gagner immédiatement, alors elle le joue
- Vérification d'un coup perdant: Si l'adversaire peut jouer un coup qui le fera gagner, alors l'IA va le bloquer.
- Algorithme de choix du meilleur coup, qui dépend de l'IA
Le code est séparé en plusieurs fichiers.
display.plcontient la logique d'affichage du jeu.game.plcontient la logique de jeu.main.plorchestrateur des différents fichiers. Il contient la boucle de jeu et permet de choisir l'IA à jouer.shared.plcontient des prédicats qui sont communs à plusieurs IA ou utilisés par le jeu par exemple.<ia>.plcontiennent le code de chacune des méthodes de jeu implémentées. Ces méthodes sont présentées dans