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 2024

Vidéo: Coding Challenge #3: The Snake Game 2024
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

Résolution des conflits de ressources humaines avec Microsoft Office Project 2007 - dummies

Résolution des conflits de ressources humaines avec Microsoft Office Project 2007 - dummies

Lorsqu'un membre de l'équipe de projet est suropposée dans votre projet Microsoft Office Project 2007, vous pouvez prendre des mesures pour corriger le problème en utilisant les suggestions suivantes. Gardez à l'esprit que les circonstances de votre projet déterminent si une solution particulière est réalisable. Par exemple, vous pouvez ajouter des ressources uniquement si votre budget le permet ...

Comment enregistrer plusieurs lignes de base dans Project 2013 - mannequins

Comment enregistrer plusieurs lignes de base dans Project 2013 - mannequins

Le concept de lignes de base multiples semble presque contraire définition d'une ligne de base. Après tout, le but d'une base de référence est de mettre l'enjeu proverbial dans le sable et de mesurer les progrès contre elle. Vous pouvez conserver plusieurs lignes de base dans Project 2013 à plusieurs fins. Considérez ces raisons: Vous avez un plan de base pour ...

Comment enregistrer une référence dans Project 2013 - mannequins

Comment enregistrer une référence dans Project 2013 - mannequins

Vous pouvez enregistrer une référence à tout moment en ouvrant la boîte de dialogue Définir la ligne de base dans Project 2013. Un paramètre - qui contrôle la manière dont le projet regroupe les données dans les tâches récapitulatives lorsque vous définissez une ligne de base pour une partie des tâches - nécessite une explication. Après avoir enregistré une base de données la première fois dans Project 2013, ...

Le choix des éditeurs

Comment classer les modèles d'analyse prédictive - mannequins

Comment classer les modèles d'analyse prédictive - mannequins

Vous avez plusieurs façons de classer les modèles utilisés pour l'analyse prédictive. En général, vous pouvez les trier en fonction des problèmes métier qu'ils résolvent et des principales fonctions métier qu'ils servent (ventes, publicité, ressources humaines ou gestion des risques, par exemple). L'implémentation mathématique utilisée dans le modèle (comme les statistiques, l'exploration de données et la machine ...

Comment appliquer n'importe quelle grappe de colonies dans l'analyse prédictive - les nuls

Comment appliquer n'importe quelle grappe de colonies dans l'analyse prédictive - les nuls

Un exemple naturel de groupe auto-organisateur vous pouvez appliquer dans le comportement d'analyse prédictive est une colonie de fourmis à la recherche de nourriture. Les fourmis optimisent collectivement leur trajectoire de manière à prendre toujours le chemin le plus court possible vers une cible alimentaire. Même si vous essayez de déranger une colonie de fourmis et de les empêcher de ...

Comment choisir un algorithme pour un modèle d'analyse prédictive - mannequins

Comment choisir un algorithme pour un modèle d'analyse prédictive - mannequins

Diverses statistiques, data-mining et des algorithmes d'apprentissage automatique sont disponibles pour votre modèle d'analyse prédictive. Vous êtes dans une meilleure position pour sélectionner un algorithme après avoir défini les objectifs de votre modèle et sélectionné les données sur lesquelles vous allez travailler. Certains de ces algorithmes ont été développés pour résoudre des problèmes métier spécifiques, améliorer des algorithmes existants ou fournir ...

Le choix des éditeurs

Excel Tableaux de bord et rapports: La fonction VLOOKUP - les nuls

Excel Tableaux de bord et rapports: La fonction VLOOKUP - les nuls

Ne vous feront rien tout bien si vous ne pouvez pas gérer efficacement vos modèles de données. La fonction VLOOKUP est le roi de toutes les fonctions de recherche dans Excel. Le but de VLOOKUP est de trouver une valeur spécifique à partir d'une colonne de données où la valeur de ligne la plus à gauche correspond à un critère donné. Prenez ...

Excel Outils d'analyse de données - dummies

Excel Outils d'analyse de données - dummies

L'outil d'analyse d'excel est un complément utile qui fournit un ensemble complet d'outils d'analyse statistique . Voici quelques outils dans le ToolPak. Outil Analyse Anova: Facteur unique Analyse de variance pour deux échantillons ou plus Anova: Facteur double avec réplication Analyse de la variance avec deux variables indépendantes et observations multiples ...

Excelent Touches de raccourci d'entrée de données - mannequins

Excelent Touches de raccourci d'entrée de données - mannequins

Lorsque vous travaillez dans Excel et saisissez des données dans une cellule, il est essentiel pour compléter l'entrée soit en cliquant sur une autre cellule avec le pointeur de la souris ou en utilisant l'une des touches de raccourci pratiques montrées ici pour déplacer le curseur de la cellule: Appuyez sur les touches To Arrow (& uarr;, & darr; move ...