Créer un site internet

 

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é.

 
Capture

 

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

Allumette     Allumette     Allumette     Allumette     Allumette     Allumette     Allumette     Allumette     Allumette     Allumette     Allumette     Allumette     Allumette     Allumette     Allumette     Allumette

 

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.

Capture2                     Capture3

 

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

2000px tic tac toe svg

 

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.

Capture 1                Capture2 1

 

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

1200px puissance4 01 svg

 

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.

Capture 2              Capture2 2

 

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é

Awale

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.

Capture 3

 

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 !

Capture2 3

 

Technologies et outils :

  • Unity 2020.1.16f1
  • C#

É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

 

 

 

 

×