Connect Four
C’est une application web pour jouer au jeu bien connu deConnect Four. Deux joueurs (A est rouge, B est jaune) remplissent à tour de rôle le plateau avec des pièces de monnaie, en essayant de connecterquatre de ses propres pièces, soit horizontalement, soit verticalement, soit en diagonale.
Ce projet a été développé par Christian Kollmann dans le cadre du cours « Software TechnologyProject », supervisé par Oswin Aichholzer, à l’Université de technologie de Graz.
Le serveur est écrit en Java 7, en utilisant le framework Spring. Le client est écrit enHTML et JavaScript, en utilisant jQuery. La compatibilité a été testée dans Chromium et MozillaFirefox fonctionnant sur Linux et Android. Néanmoins, l’application devrait être compatible avec tout navigateur commeMicrosoft Internet Explorer.
Caractéristiques
- L’un ou l’autre des joueurs (A et B) peut être contrôlé par un humain ou par l’ordinateur (IA)
- Choisissez le niveau de l’IA : « Perfect » fera toujours un coup optimal (qui peut ne pas être unique), « Just win » choisira aléatoirement un coup gagnant (s’il est disponible, et pas nécessairement optimal), « Random » choisira aléatoirement une colonne
- Infos sur les coups : Affiche optionnellement le nombre de demi-mouvements jusqu’à la fin de la partie pour les coups possibles
- Coups recommandés : Affiche le(s) coup(s) parfait(s) pour le joueur actuel (peut être plus d’un coup)
- Undo/Redo : Annule le(s) dernier(s) coup(s) effectué(s) par l’un ou l’autre des joueurs
- Save/Load : Sauvegarde le jeu (dans le stockage local, fourni par HTML5) pour reprendre le jeu plus tard
Basics
L’IA de ce jeu est basée sur une évaluation exhaustive de toutes les positions de jeu possibles jusqu’à 23 pièces,stockées dans une grande base de données. Les tableaux avec 24 pièces ou plus sont directement évalués sur le serveur. Pour chaque tableau possible, son statut (victoire du joueur actuel, victoire de l’adversaire, match nul) est connu, ainsi que le nombre minimum de demi-coups nécessaires pour forcer une victoire depuis ce tableau. Un nombre pair indique en combien de demi-mouvements supplémentaires la partie peut être gagnée en plaçant la pièce dans cette colonne (en supposant un jeu optimal de l’adversaire, sinon vous pouvez gagner plus rapidement). Un nombre impair indique le nombre maximum de demi-mouvements que vous pouvez retarder la victoire de l’adversaire (en supposant à nouveau un jeu de défense optimal de l’adversaire). Un ‘D’ indique une position où le joueur actuel peut forcer un match nul. Un nombre pair indique donc un coup gagnant, qui garantit la victoire du joueur actuel (s’il continue à jouer de manière optimale) dans au moins ce nombre de demi-mouvements. Un coup gagnant optimal est un coup qui garantit la plus courte séquence possible de demi-mouvements jusqu’à la victoire du joueur. Au total, la base de données exhaustive sous-jacente ne confirme pas seulement que le jeu de Puissance 4 est une victoire du premier joueur. Elle montre pour toute situation possible sur le plateau les informations complètes pour tous les coups possibles,fournissant ainsi des informations parfaites pour analyser l’ensemble du jeu.