Jeux de réflexion#

Pour chacun de ces projets, il faut permettre à un joueur de jouer contre l’ordinateur. La qualité de l’affichage est secondaire et l’accent doit être mis avant tout sur les stratégies utilisées par l’ordinateur. Le projet ne peut être validé que si :

  • Il est possible à un joueur de jouer contre l’ordinateur.

  • Il est possible de choisir parmi au moins deux stratégies ou deux niveaux de difficulté (il peut s’agir de la même stratégie avec différents paramètres).

  • Il doit être possible de faire jouer l’ordinateur contre lui-même afin de permettre l’optimisation des paramètres de la stratégies de jeux ou le calcul de statistiques sur un grand nombre de parties.

Le plan suggéré est le suivant :

  1. Implémentation des règles du jeu et d’un affichage (graphique ou texte). L’encadrant pourra aider si cet affichage n’est pas terminé avant la mi-parcours.

  2. Conception de deux stratégies

  3. Opposition de ces deux stratégies, sélection de la meilleure.

  4. Facultatif : si les deux stratégies sont conçues de la même façon mais avec des paramètres différents, on pourra penser à un moyen de déterminer les meilleurs paramètres pour cette famille de stratégies.

Le modèle classique pour concevoir une stratégie consiste à utiliser une fonction d’évaluation qui donne un score à chaque coup possible. On utilise ensuite un algorithme minimax (voir aussi Using Artificial Intelligence to solve the 2048 Game (JAVA code)) pour construire différents niveaux de difficulté. On pourra par exemple vérifier qu’une stratégie utilisant la même fonction d’évaluation qu’une autre mais avec un niveau de difficulté ou de profondeur plus élevée est meilleure. Avant de commencer la partie graphique, je suggère la lecture de cet article : Frameworks for games in Python.

La rolls des intelligence artificielle s’appelle AlphaZero, ce qu’explore l’article suivant : Introduction to Monte Carlo Tree Search: The Game-Changing Algorithm behind DeepMind’s AlphaGo.

Awalé#

Quelques liens :

Quelques images regroupées par d’anciens élèves : image_awale.zip pour ceux qui veulent réaliser une interface graphique.

Echecs#

Quelques liens :

Echecs 1D (2021)#

Une version simplifiée des échecs pour les enfants : 1DChess. Le jeu se déroule sur un ruban.

Gomoku#

Quelques liens :

Le Gomoku peut se jouer sur des grilles de tailles diverses. Il est aussi simple de la dessiner que d’utiliser des images.

Go#

Le Go est un jeu de réflexion qui se joue à deux. Si on admet que les ordinateurs sont devenus quasiment imbattable par un humain aux échecs, le jeu de Go résiste encore. Implémenter une intelligence artificielle semble encore une gageure dans le cadre d’un projet informatique. L’article Teaching Deep Convolutional Neural Networks to Play Go, Christopher Clark, Amos Storkey propose une solution à base de machine learning.

Othello#

Quelques liens :

Quelques images regroupées par d’anciens élèves : image_othello.zip pour ceux qui veulent réaliser une interface graphique.

Pai Sho (2016)#

Je n’ai pas très bien compris si ce jeu avait été créé par les auteurs de la série animée Avatar ou si ce jeu existait depuis la nuit des temps. C’est un jeu de réflexion qui se joue à deux.

Pokémon (2016)#

Il y a presque chaque année un projet qui s’articule autour de ce jeu. Je laisse ceux qui s’y essayent définir leur projet qui tôt ou tard fait intervenir des statistiques sur la pokémon. Quelques jeux de données à ce sujet :

Puissance 4#

Quelques liens :

Récemment, il a été prouvé qu’il existe une stratégie gagnante pour le joueur qui commence quelque soit son adversaire : A Knowledge-based Approach of Connect-Four (autre accès). Quelques images regroupées par d’anciens élèves : image_puissance_4.zip pour ceux qui veulent réaliser une interface graphique.

Tic Tac Toe 9x9 (2016)#

Le principe du tic tac toe consiste à aligner trois croix ou trois cercles dans un carré 3x3. Le jeu est connu et à moins d’une erreur d’inattention, la partie se termine par un nul.

Le tic-tac-toe 9x9 est inspiré de ce jeu mais se compose de 9 carrés 3x3 disposés en carré. Chaque joueur joue chacun son tour et il faut aligner trois croix ou trois cercles dans un carré. On ajoute une règle qui rend le jeu plus intéressant : lorsqu’on décide de jour dans un carré, on pose un pion dans une des neuf cases du petit carré. Cette case détermine le carré dans lequel l’adversaire doit jouer. Ainsi chaque ne détermine pas le grand carré dans lequel il joue sauf au premier tour.

Deux questions :

  1. Démontrer que l’on peut toujours jouer.

  2. Imaginer une intelligence artificielle pour ce jeu.