Vidéo: Programmation de jeux multijoueur en réseau : Je me lance un défi 2024
Votre mission, si vous décidez de l'accepter, est de créer un programme Java capable de jouer à un jeu de Tic-Tac-Toe avec l'utilisateur.
Comme vous le savez probablement, Tic-Tac-Toe est un jeu simple généralement joué avec du papier et un crayon. D'abord, vous faites une simple grille de 3 x 3 sur le papier. Ensuite, deux joueurs alternent les tours en marquant X et Os dans les espaces vides de la grille. Le premier joueur qui fait trois de ses marques dans une rangée horizontale, verticale ou diagonale gagne. Si tous les espaces de la grille sont remplis avant qu'un joueur n'en marque trois d'affilée, le jeu est un match nul.
Voici les règles et les instructions pour ce défi:
-
L'ordinateur joue contre l'humain. L'humain se déplace d'abord et est X. L'ordinateur est O.
-
Le programme devrait commencer par afficher un court message de bienvenue, puis devrait inviter le joueur à effectuer son premier mouvement. Par exemple:
Bienvenue sur Tic-Tac-Toe. Veuillez entrer votre premier coup:
-
Pour désigner les carrés de la grille, utilisez les lettres A, B et C pour les colonnes et les chiffres 1, 2 et 3 pour les rangées, comme ceci:
A1 B1 C1 A2 B2 C2 A3 B3 C3
Ainsi, pour placer un X dans le carré en haut à gauche, le joueur humain entrerait le texte A1 quand le programme invitait le joueur à bouge toi.
Une fois que l'humain a effectué un mouvement, le programme devrait afficher l'état actuel de la carte sur la console.
-
Utilisez X pour marquer les lectures de l'humain et O pour marquer les lectures de l'ordinateur. Utilisez les caractères de barre verticale (trouvés sur le clavier avec le caractère barre oblique inverse, juste au-dessus de la touche Entrée) et les traits d'union pour dessiner le tableau dans une grille simple.
Par exemple, si l'utilisateur a entré A1 comme premier mouvement, le programme affichera ce qui suit:
X | | --- | --- | --- | | --- | --- | --- | |
-
Après le déplacement de l'humain, le programme détermine son déplacement, l'annonce à l'utilisateur, affiche un tableau mis à jour, puis invite le joueur à se déplacer.
Par exemple, vous pourriez voir ceci:
Je jouerai A2: X | O | --- | --- | --- | | --- | --- | --- | | Veuillez entrer votre prochain coup:
-
Le jeu continue jusqu'à ce qu'un joueur ait marqué trois fois de suite ou que tous les carrés aient été remplis sans gagnant. Votre programme doit être capable de déterminer si un joueur a marqué trois points de suite et a gagné la partie. (Ceci est la partie la plus difficile de ce défi de programmation.)
-
Quand le jeu est terminé, le programme affiche un message indiquant le résultat du jeu: "Vous me battez! "Si le joueur humain gagne," je vous ai battu! "Si le joueur de l'ordinateur gagne, ou" C'est un tirage au sort! "Si le jeu se termine par un match nul.
-
Les joueurs humains et informatiques ne peuvent jouer que dans les cases qui ne sont pas déjà occupées par l'un ou l'autre joueur.
-
Le programme se termine lorsque le jeu est gagné par l'un ou l'autre joueur ou le jeu est un match nul. Si vous voulez rejouer, vous devez réexécuter le programme.
Notez que vous êtes libre d'utiliser n'importe quelle méthode pour déterminer comment l'ordinateur doit effectuer ses déplacements. Je vous suggère d'avoir toujours l'ordinateur dans le premier carré vide. Ce n'est évidemment pas la meilleure façon de jouer à Tic-Tac-Toe, et vous n'aurez aucun mal à battre l'ordinateur à chaque fois que vous jouerez. Mais choisir cette stratégie de jeu simple vous permet de vous concentrer sur d'autres aspects de la programmation, comme comment représenter en interne la grille et comment déterminer quand un joueur a gagné la partie ou quand le jeu s'est terminé par un match nul.
(Dans "Java Programming Challenge: Ajout de tableaux au programme Simple Tic-Tac-Toe", il vous est demandé de trouver une meilleure stratégie pour le programme afin de déterminer ses jeux.)
Voici un exemple de l'affichage de la console pour un jeu complet:
Bienvenue sur Tic-Tac-Toe. Veuillez entrer votre premier coup: A1 X | | --- | --- | --- | | --- | --- | --- | | Je vais jouer à A2: X | O | --- | --- | --- | | --- | --- | --- | | Veuillez entrer votre prochain mouvement: B1 X | O | --- | --- | --- X | | --- | --- | --- | | Je vais jouer à A3: X | O | O --- | --- | --- X | | --- | --- | --- | | Veuillez entrer votre prochain mouvement: C 1 X | O | O --- | --- | --- X | | --- | --- | --- X | | Tu me bats!
Voici quelques conseils pour vous aider à démarrer:
-
La meilleure façon de représenter la grille est d'utiliser un tableau. Pour l'instant, utilisez neuf variables, appelées A1, A2, A3, B1, B2, B3, C1, C2 et C3.
-
Si vous utilisez le type int pour les variables de la grille, vous pouvez utiliser 1 pour indiquer qu'un carré contient un X et 2 pour indiquer qu'un carré contient un O.
-
Huit rangées possibles peuvent mener à un gain. Un joueur gagne si l'une des combinaisons de cases suivantes est 1 (pour X) ou 2 (pour O):
A1 - A2 - A3 A1 - B1 - C1 A1 - B2 - C3 B1 - B2 - B3 A2 - B2 - C2 A3 - B2 - C1 C1 - C2 - C3 A3 - B3 - C3
-
Il y a deux façons de déterminer si le jeu est un match nul. La première consiste à vérifier tous les neuf carrés: Si aucun des carrés n'est vide et qu'aucun joueur n'a gagné, le jeu est un match nul. La deuxième consiste à compter les coups: Si neuf coups ont été faits et qu'aucun joueur n'a gagné, le match est nul.
Vous pouvez trouver une solution à ce problème de programmation dans l'onglet Téléchargements de la page du produit Java Tout-en-un pour les nuls, 4e édition.
Bonne chance!