Vidéo: POO TP Java n°3 : interface graphique 2024
Dans Java Programming Challenge: Un simple jeu de Tic-Tac-Toe, vous avez été mis au défi d'écrire un programme basé sur la console qui joue au jeu simple de Tic-Tac-Toe. Le défi de programmation Java ici consiste à utiliser Swing pour ajouter une interface utilisateur graphique (GUI) au programme. L'interface graphique devrait ressembler à celle montrée ici.
Le jeu est simple. Le joueur humain joue d'abord en cliquant sur l'un des carrés. Le carré cliqué par l'humain affiche un grand X. Après les jeux humains, le programme détermine si l'humain a gagné ou forcé un match nul. Si c'est le cas, un message s'affiche, le tableau est réinitialisé et une nouvelle partie commence. Sinon, l'ordinateur choisit un mouvement et marque son carré avec un grand O.
Le programme détermine ensuite si l'ordinateur a gagné la partie. Si c'est le cas, le programme affiche un message, réinitialise le tableau et commence une nouvelle partie. Sinon, le joueur humain joue à nouveau. Cela continue jusqu'à ce qu'un joueur gagne ou que tous les carrés soient remplis.
Votre programme doit utiliser la même classe TicTacToeBoard que vous avez créée pour Java Programming Challenge: Ajouter une classe au programme Simple Tic-Tac-Toe. En d'autres termes, il doit implémenter exactement les mêmes méthodes. Pour votre commodité, ces méthodes sont répétées dans le tableau suivant.
Constructeur | Description |
---|---|
TicTacToeBoard | Crée un nouveau TicTacToeBoard avec tous les carrés vides. |
Méthode | Description |
void reset () | Réinitialise l'état de chaque carré à vider. |
void playAt (Chaîne carrée, int joueur) | Marque le carré spécifié (A1, A2, A3, B1, B2, B3, C1, C2 ou C3) pour le joueur spécifié (1 pour X, 2 pour O). Lance IllegalArgumentException si square n'est pas une des valeurs autorisées, le joueur n'est pas 1 ou 2, ou le carré spécifié n'est pas vide. |
int isGameOver () | Détermine si la partie est terminée. Renvoie 0 si la partie n'est pas terminée, 1 si X a gagné la partie, 2 si O a gagné la partie, et 3 si la partie est nulle. Les conditions de fin de jeu sont les suivantes:
1: Si une ligne, une colonne ou une diagonale contient tous les X. 2: Si une ligne, une colonne ou une diagonale contient tous les O. 3: S'il n'y a pas de cases vides et que ni X ni O n'ont gagné. |
int getNextMove () | Retourne un entier représentant le coup suivant pour l'adversaire de l'ordinateur. Cette méthode devrait faire un effort rudimentaire pour sélectionner un bon coup, selon la stratégie suivante:
* Si le centre (carré B2) est vide, jouez le carré central. * Si le centre n'est pas vide mais que l'un des quatre coins (carrés A1, A3, C1 ou C3) est vide, jouez un des coins (peu importe lequel). * Si le centre n'est pas vide et qu'aucun coin n'est vide, lisez l'un des bords (carrés A2, B1, B3 ou C2). |
String toString () | Renvoie une chaîne représentant l'état actuel du tableau. La chaîne inclut des caractères de nouvelle ligne pour afficher les lignes ainsi que des lignes de séparation sur des lignes de console séparées, comme dans cet exemple:
O | | O - | - | - | X | - | - | - | X | |
Vous trouverez la solution à ce problème dans l'onglet Téléchargements de la page du produit Java Tout-en-un pour les nuls, 4e édition.
Bonne chance!