Accueil Finances personnelles Défi de programmation java: Ajouter une classe au programme Simple Tic-Tac-Toe

Défi de programmation java: Ajouter une classe au programme Simple Tic-Tac-Toe

Vidéo: Coding Challenge #3: The Snake Game 2025

Vidéo: Coding Challenge #3: The Snake Game 2025
Anonim

Dans ce défi, vous améliorez votre jeu Tic-Tac-Toe en ajoutant une classe de programmation Java, ce qui permet au programme de faire un effort rudimentaire vers la stratégie se déplace.

Dans Java Programming Challenge: Un jeu simple de Tic-Tac-Toe, vous êtes mis au défi d'écrire un programme pour jouer au jeu simple de Tic-Tac-Toe. Dans ce défi, vous modifiez le code source de votre solution précédente pour aider l'ordinateur à élaborer des stratégies.

Bien que les règles du jeu soient très simples, créer un programme informatique capable de jouer au jeu peut être complexe. Un certain nombre de détails potentiellement compliqués doivent être incorporés dans le programme. Plus précisément:

  • Le programme doit avoir un moyen de représenter en interne le statut de chacun des neuf carrés qui composent le tableau Tic-Tac-Toe.

  • Le programme doit fournir un moyen d'enregistrer un coup pour chaque joueur, et doit s'assurer que chaque coup est valide (par exemple, un joueur n'est pas autorisé à jouer dans un carré déjà occupé par un X ou un O.

  • Le programme doit pouvoir déterminer si l'un des deux joueurs a gagné en regardant les huit combinaisons possibles de trois en une: Les trois lignes, les trois colonnes et les deux diagonales.

  • Le programme doit également être capable de déterminer quand le jeu est un match nul, c'est-à-dire quand les neuf cases ont été jouées et qu'aucun des deux joueurs n'a gagné.

En même temps, le programme doit gérer les détails de l'interaction avec l'utilisateur en demandant à l'utilisateur d'entrer dans son mouvement, d'annoncer le jeu de l'ordinateur, d'afficher une représentation mise à jour du tableau après chaque jeu et de déclarer un gagnant ou d'annoncer un tirage lorsque le jeu est terminé.

Dans ce défi, on vous demande de séparer ces deux éléments du programme Tic-Tac-Toe: la partie du Le programme qui gère l'état et la progression du jeu et la partie du programme qui gère l'interaction avec l'utilisateur. Vous allez le faire en créant une classe nommée TicTacToeBoard qui fournit des méthodes qui peuvent être appelées pour jouer à un jeu complet. Ensuite, vous êtes invité à écrire un programme qui utilise la classe TicTacToeBoard pour permettre à un adversaire humain de jouer à un jeu de Tic-Tac-Toe contre l'ordinateur.

Du point de vue de l'utilisateur, ce programme fonctionnera de manière identique au programme créé pour résoudre le défi du jeu Tic-Tac-Toe, avec une différence: Pour cette version du jeu, le programme fait un effort rudimentaire pour déterminer les mouvements de l'ordinateur.L'ordinateur ne joue pas parfaitement, il est donc toujours facile à battre. Mais il fait un effort au-delà de simplement jouer dans le premier carré vide qu'il voit.

Le tableau suivant répertorie les méthodes que la classe TicTacToeBoard doit implémenter. Rappelez-vous, vous devrez en créer deux. fichiers Java pour résoudre ce problème. Le premier, TicTacToeBoard. java, implémente la classe TicTacToeBoard. Le second, nommé simplement TicTacToe. java, est le programme que l'utilisateur exécutera pour jouer à un jeu de Tic-Tac-Toe contre l'ordinateur.

Le TicTacToeBoard Class
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.
int getSquare (String square) Renvoie l'état du carré spécifié par square, qui doit être l'une des chaînes A1, A2, A3, B1, B2, B3, C1, C2 ou C3. Renvoie 0 si le carré est vide, 1 s'il contient un X et 2 s'il contient un O. Lève IllegalArgumentException si le carré n'est pas l'une des valeurs autorisées.
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 Os.

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 distinctes, comme dans cet exemple:

O | | O

- | - | -

| X |

- | - | -

| X |

Si vous êtes perplexe, vous pouvez trouver la solution dans l'onglet Téléchargements de la page du produit Java Tout-en-un pour les nuls, 4e édition.

Bonne chance!

Défi de programmation java: Ajouter une classe au programme Simple Tic-Tac-Toe

Le choix des éditeurs

Comment envoyer une vidéo et des photos avec Flip Video - Dummies

Comment envoyer une vidéo et des photos avec Flip Video - Dummies

Après avoir pris photos et vidéos d'événements dans votre vie avec votre caméra Flip Video, vous pouvez les envoyer par e-mail à vos amis et aux membres de votre famille. Le partage de films et d'images que vous capturez et créez en envoyant un message e-mail vous permet de toucher et de toucher quelqu'un avec vos créations, même si vous êtes à proximité ...

Comment enregistrer le son séparément pour votre film numérique - Les mannequins

Comment enregistrer le son séparément pour votre film numérique - Les mannequins

Ont parfois besoin d'un réalisateur enregistrer le son en utilisant un appareil séparé de l'appareil photo, enregistrer le son séparément, puis synchroniser le son sur la vidéo plus tard, lors de l'édition. Habituellement, la raison en est d'augmenter la qualité du son enregistré car de nombreuses caméras n'enregistrent pas le son aussi bien que ...

Comment enregistrer une vidéo avec un caméscope Flip - Les nuls

Comment enregistrer une vidéo avec un caméscope Flip - Les nuls

Enregistrant des vidéos avec votre caméra Flip est comme facile comme 1-2-3 (et 4). Avant d'enregistrer une vidéo, vérifiez les indicateurs d'état de votre Flip pour vous assurer que votre caméra est complètement chargée et qu'elle a suffisamment de temps d'enregistrement pour capturer la vidéo que vous voulez filmer. Pour vérifier le niveau de charge de la batterie de votre Flip (ou ...

Le choix des éditeurs

Mot Raccourcis des symboles 2016 - des mannequins

Mot Raccourcis des symboles 2016 - des mannequins

Dans Word 2016 vous pouvez insérer des symboles communs en utilisant ces raccourcis clavier. Utilisez ces raccourcis clavier au lieu de la commande Insérer → Symbole pour insérer des symboles typographiques communs. Symbole Raccourci Tableau de bord Alt + Ctrl + signe moins En tableau Ctrl + signe moins Copyright Alt + Ctrl + C Marque déposée Alt + Ctrl + R Marque Alt + Ctrl + T Ellipsis Alt + Ctrl + période

Mot Raccourcis des symboles 2016 - mannequins

Mot Raccourcis des symboles 2016 - mannequins

En fonction de la manière dont vous choisissez d'utiliser Word 2016, vous risquez de devoir faire face pour un symbole spécial. Avec ces raccourcis clavier, vous pouvez insérer des symboles communs dans Word 2016. Utilisez ces raccourcis clavier au lieu de la commande Insérer → Symbole pour insérer des symboles typographiques communs. Symbole Raccourci Tableau de bord Alt + Ctrl + signe moins En tiret ...

Mot Trucs et astuces pour les tables 2013 - mannequins

Mot Trucs et astuces pour les tables 2013 - mannequins

Dans Word 2013, le texte se déverse dans un tableau sur une cellule base de la cellule. Vous pouvez taper un mot, une phrase ou même un paragraphe. Tout ce texte reste dans la cellule, bien que la cellule change de taille pour accueillir de plus grandes quantités de texte. Vous pouvez mettre en forme la cellule d'une table comme n'importe quel paragraphe de Word, en ajoutant même des marges ...

Le choix des éditeurs

Sexe For Dummies Cheat Sheet - les nuls

Sexe For Dummies Cheat Sheet - les nuls

Que vous vous considériez comme un Don Juan, une Lady Chatterly, ou un novice sexuel , tout le monde peut tirer le meilleur parti du sexe avec un peu plus de connaissances. Vous devriez savoir que les préliminaires sont quelque chose que vous devriez prendre en considération avec chaque interaction que vous et votre partenaire avez, ainsi que la façon de garder les choses ...

Mots et significations liés à la ménopause - mannequins

Mots et significations liés à la ménopause - mannequins

Bien que ce soit loin d'être une liste complète des termes que vous pourriez entendre être utilisé lorsque la ménopause est discutée, les cinq termes essentiels suivants devraient vous aider à comprendre les bases. HRT (hormonothérapie substitutive): Un traitement pour compléter les hormones que vous perdez pendant la ménopause - généralement une combinaison d'œstrogènes, ...

Symptômes qui indiquent que la ménopause est proche - mannequins

Symptômes qui indiquent que la ménopause est proche - mannequins

La plupart des femmes commencent à éprouver des symptômes de ménopause déséquilibrés, alors qu'ils ont encore des règles. Si vous ressentez un ou plusieurs des symptômes suivants, consultez votre médecin - vous pouvez être en train d'aborder le changement. Peau sèche ou cheveux Pensée floue (difficulté à se concentrer) Flutters du cœur (battements de cœur rapides) ...