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

: Utilisation de l'équation du cercle standard - dummies

: Utilisation de l'équation du cercle standard - dummies

Si vous avez une question SAT Examen de mathématiques qui vous donne l'équation d'un cercle, vous aurez probablement besoin de convertir cette équation à l'équation du cercle standard. Les questions pratiques suivantes vous donnent l'équation d'un cercle et vous demandent de trouver son rayon et son centre. Questions d'entraînement Questions 1 et ...

SAT Pratique Mathématiques Questions: Séquences arithmétiques et géométriques - mannequins

SAT Pratique Mathématiques Questions: Séquences arithmétiques et géométriques - mannequins

Mathématiques implique parfois de reconnaître des schémas et de voir où ces modèles mènent. Le SAT vous demande parfois de jouer au mathématicien avec deux types de motifs: arithmétique et géométrique. Le mot mathématique pour le motif, en passant, est la séquence. Découvrez cette séquence arithmétique: 2, 5, 8, 11, 14 ... Notez que chaque nombre est ...

SAT Exercice de maths-FOIL Operations - mannequins

SAT Exercice de maths-FOIL Operations - mannequins

L'examen de mathématiques SAT vous posera quelques questions Vous devez savoir comment exécuter une opération FOIL, où vous multipliez un polynôme dans l'ordre: Premier, Extérieur, Intérieur et Dernier. Les questions de pratique suivantes vous demandent de trouver le produit de deux binômes et la valeur d'une variable en utilisant ...

Le choix des éditeurs

Prier le Rosaire et méditer sur les Mystères - mannequins

Prier le Rosaire et méditer sur les Mystères - mannequins

Selon la pieuse tradition catholique, au 13ème siècle Marie, la Mère de Dieu, est apparue à saint Dominique de Guzman, lui a donné un chapelet et a demandé qu'au lieu de prier les Psaumes sur des perles ou des noeuds, les fidèles prient l'Ave Maria, Notre Père et la Gloire soit. Quinze décennies ont constitué l'origine dominicaine ...

Dix choses à savoir sur le pape Benoît XVI - Paroisse

Dix choses à savoir sur le pape Benoît XVI - Paroisse

Le pape Benoît XVI a été élu en 2007 par le Collège des Cardinaux, et il a démissionné en 2012. Les controverses faisaient partie de son mandat. Il était le 265e pape de l'histoire de l'Église catholique romaine et le premier à démissionner en près de 600 ans.

La Réforme et l'Église Catholique - mannequins

La Réforme et l'Église Catholique - mannequins

Au Moyen Âge, la philosophie grecque (incarnée par Platon et Aristote ) a été utilisé pour aider à développer un chrétien, qui est devenu partenaire de la théologie sacrée. La langue latine était connue et utilisée - principalement dans des contextes religieux et juridiques. Les arts libéraux et les sciences religieuses ont été les principaux piliers de l'éducation universitaire et de la chrétienté ...

Le choix des éditeurs

Comment fonctionne BPaaS dans le monde réel du Cloud Computing - les nuls

Comment fonctionne BPaaS dans le monde réel du Cloud Computing - les nuls

Si vous avez décidé de utiliser BPaaS (Business Process as a Service) dans un modèle de cloud hybride en tant que plate-forme de prestation de services, vous devez comprendre comment combiner des services en fonction des processus que vous souhaitez exécuter. Comme le montre la figure suivante, un service de processus métier peut être lié à divers ...

Développer un environnement Cloud hybride sécurisé - des mannequins

Développer un environnement Cloud hybride sécurisé - des mannequins

Une approche réfléchie de la sécurité peut réussir à atténuer de nombreux risques de sécurité dans un environnement de cloud hybride. Pour développer un environnement hybride sécurisé, vous devez évaluer l'état actuel de votre stratégie de sécurité ainsi que la stratégie de sécurité proposée par votre fournisseur de cloud. Évaluer votre état actuel de sécurité Dans un environnement hybride, la sécurité ...

Gestion des charges de travail dans un modèle de cloud hybride - mannequins

Gestion des charges de travail dans un modèle de cloud hybride - mannequins

Modèle de nuage. La gestion, dans ce contexte, fait référence à la manière dont les ressources sont affectées pour traiter les charges de travail. Les affectations peuvent être basées sur la disponibilité des ressources, les priorités métier ou la planification d'événements. Dans l'ère de l'informatique mainframe unifiée, la gestion de la charge de travail était assez simple. Quand une tâche ...