YouAgainstIA
L'Intelligence Artificielle pour les jeux à 2 joueurs
Dans le cadre de ma deuxième année de formation d’ingénieur à l’École Nationale Supérieure d’Informatique pour l’Industrie et l’Entreprise (ENSIIE), j’ai suivi des cours dédiés à l'intelligence Artificielle pour les jeux à deux joueurs.
A la suite de cela, j'ai décidé de développer YouAgainstIA, un mini-projet personnel réalisé sur Unity 3D qui permet d'affronter une IA sur des jeux comme le jeu de Nim, Tic-Tac, Puissance 4 ainsi que le jeu de l'Awalé.
|
|
 |
Une IA robuste, mais pas imbattable
Dans tous les jeux proposés par YouAgainstIA, l'Intelligence Artificielle est implémentée principalement avec l'algorithme minimax et l'élagage alpha-bêta. Mon principal défi technique a été de trouver pour chacun des jeux la fonction d'évaluation la plus optimale.
Jeu de Nim
|
 |
La règle du jeu est simple. On dispose d'un nombre d'allumettes compris entre 16 et 20. A tour de rôle, chaque joueur devra retirer 1,2 ou 3 allumettes. Le joueur qui prend la dernière allumette perd la partie.
|
 |
Dans ce type de jeu, le joueur qui commence est sûr à 100% de remporter la partie s'il joue de manière optimale. Le joueur "humain" commence à jouer puis le tour de l'IA. La fonction d'utilité pour le jeu de Nim est très simple : +1 pour une victoire et -1 pour une défaite.
Jeu du Tic Tac Toe
|
 |
On dispose d'une grille de jeu 3x3. Deux joueurs posent tour à tour un symbole sur la grille : rond, pour l’un, une croix, pour l’autre. Le but du jeu est d’obtenir un alignement (en ligne, colonne ou diagonale) de ses trois symboles.
|
 |
Le joueur "humain" commence à jouer (X) puis vient le tour de l'IA (O). Contrairement au jeu de Nim, l'arbre de jeu du Tic Tac Toe est beaucoup plus grand. L'élagage alpha-bêta avec profondeur limitée est nécessaire. La fonction d'utilité se présente de la manière suivante :
- alignement d'un X et deux cases vides : -1
- alignement de deux X et d'une case vide : -10
- alignement de trois X : -100
- alignement d'un O et deux cases vides : +1
- alignement de deux O et d'une case vide : +10
- alignement de trois O : +100
Jeu du Puissance 4
|
 |
On dispose d'une grille de 6 lignes et 7 colonnes. Chaque joueur joue à tour de rôle un jeton de couleur (jaune ou rouge) dans la colonne de son choix (le jeton se retrouve dans la première case disponible de bas en haut). Pour gagner la partie, il faut être le premier à aligner 4 jetons de sa couleur horizontalement, verticalement ou diagonalement.
|
 |
Le joueur "humain" commence à jouer (jaune) puis vient le tour de l'IA (rouge). Comme pour le Tic Tac Toe, l'arbre de jeu est très grand. L'élagage alpha-bêta avec profondeur limitée est nécessaire. La fonction d'utilité se présente de la manière suivante :
- alignement d'un jeton jaune et trois cases vides : -1
- alignement de deux jetons jaunes et de deux cases vides : -10
- alignement de trois jetons jaunes et d'une case vide : -1000
- alignement de quatre jetons jaune : -10000
- alignement d'un jeton rouge et trois cases vides : 1
- alignement de deux jetons rouges et de deux cases vides : 10
- alignement de trois jetons rouges et d'une case vide : 1000
- alignement de quatre jetons rouges : 10000
Lien utilisé : https://www.fil.univ-lille1.fr/~aubert/ap1/connect4.html
Jeu du Awalé
|
 |
Suite au projet de ce jeu réalisé en réalité augmentée ( Awale AR ), je me suis lancé dans la réalisation d'une IA avec les connaissances acquises durant mon semestre d'étude. J'ai commencé par refaire l'interface du plateau de jeu en 2D.
|
 |
Le joueur "humain" commence la partie (bleu) puis vient le tour de l'IA (rouge). Le temps d'action de l'IA peut prendre jusqu'à 2s en raison du temps de la fonction d'utilité. Là aussi, l'arbre de jeu est très grand et l'élagage alpha-bêta avec profondeur limitée est nécessaire. La fonction d'utilité reste assez basique, car elle ne fait que calculer la différence entre le score de l'IA et le score du joueur. Cependant, comme en témoigne l'image ci-dessous, je n'ai jamais réussi à gagner une seule partie contre l'IA !
|
 |
Technologies et outils :
Équipe et ressources :
Cette application a été créée intégralement en solo.
Durée du jeu :
De 1 à 5 minutes selon le jeu choisi.
Téléchargement :
Ce jeu est disponible sur :
Code source :
https://github.com/lucas3378/You-Against-IA
|