Défi de programmation Java: un simple jeu de tic-tac-toe

Votre mission, si vous décidez de l'accepter, est de créer un programme Java qui peut jouer à un jeu de Tic-Tac-Toe avec l'utilisateur.

Comme vous le savez sans doute, Tic-Tac-Toe est un jeu simple habituellement joué avec du papier et un crayon. D'abord, vous faire un simple 3 x 3 grille sur le papier. Puis, deux joueurs alternent tourne en marquant Xs et Os dans des espaces vides sur la grille. Le premier joueur qui fait trois de ses marques dans une position horizontale, verticale ou diagonale gagne rangée. Si tous les espaces dans la grille sont remplis avant que tout joueur marque trois dans une rangée, le jeu est un match nul.

Voici les règles et les instructions pour ce défi:

  1. L'ordinateur joue contre l'humain. L'humain se déplace d'abord et X. L'ordinateur est O.

  2. Le programme devrait commencer en affichant un message de bienvenue à court, puis devrait inciter le joueur pour son premier mouvement. Par example:

    Bienvenue au Tic-Tac-Toe. S'il vous plaît entrez votre premier coup:
  3. Pour désigner les places de la grille, utilisez les lettres A, B, et C pour les colonnes et les chiffres 1, 2, et 3 pour les lignes, comme ceci:

     A1 B1 B2 C1A2 C2A3 B3 C3

    Ainsi, pour placer un X dans le carré en haut à gauche, le joueur humain serait entrer le texte A1 lorsque le programme invite le joueur pour un déménagement.

    Après l'humain entre un déménagement, le programme devrait afficher l'état actuel du conseil d'administration sur la console.

  4. Utilisez X pour marquer les pièces de théâtre et O de l'homme pour marquer les pièces de l'ordinateur. Utilisez les caractères barre verticale (trouvés sur le clavier avec le caractère barre oblique inverse, juste au-dessus sur la touche Entrée) et des traits d'union pour dessiner la carte dans une grille simple.




    Par exemple, si l'utilisateur a entré A1 que son premier mouvement, le programme affiche les informations suivantes:

     X | | --- | --- | --- | | --- | --- | --- | |
  5. Après le déménagement de l'humain, le programme détermine son mouvement, annonce à l'utilisateur, affiche une carte mise à jour, puis invite le déménagement de l'utilisateur.

    Par exemple, vous pourriez voir ceci:

    Je vais jouer A2: X | O | --- | --- | --- | | --- | --- | --- | | S'il vous plaît entrez votre prochain déménagement:
  6. Le jeu continue jusqu'à ce qu'un joueur a marqué trois dans une rangée ou toutes les places ont été comblées sans vainqueur. Votre programme doit être en mesure de déterminer si l'un des joueurs a marqué trois dans une rangée et a remporté le match. (Ceci est la partie la plus difficile de ce défi de programmation.)

  7. Lorsque le jeu est terminé, le programme affiche un message indiquant le résultat de la partie: «Vous me battre" si le joueur humain gagne », je vous battre!" si le joueur gagne de l'ordinateur, ou «Il est un match nul!" si le match se termine par un match nul.

  8. Les joueurs humains et informatiques peuvent jouer que dans ces places qui ne sont pas déjà occupés par les deux joueurs.

  9. Le programme se termine lorsque le jeu est gagné par les deux joueurs ou le jeu est un match nul. Si vous voulez jouer à nouveau, vous devez exécuter à nouveau le programme.

Notez que vous êtes libre d'utiliser toute méthode que vous souhaitez afin de déterminer comment l'ordinateur doit faire ses mouvements. Je vous suggère d'avoir l'ordinateur joue toujours dans la première case vide. Ceci est évidemment pas la meilleure façon de jouer Tic-Tac-Toe, et vous aurez pas mal à battre chaque fois que vous jouez l'ordinateur. Mais le choix de cette stratégie de jeu simple permet de vous concentrer sur d'autres aspects de la programmation, comme la façon de représenter l'intérieur de la grille et de la façon de déterminer quand un joueur a gagné le jeu ou quand le jeu est terminé par un match nul.

(Dans "Programmation Java Défi: Ajout de baies au Programme de Tic-Tac-Toe simple" vous êtes invité à venir avec une meilleure stratégie pour le programme afin de déterminer ses pièces de théâtre.)

Voici un exemple de l'affichage de la console pour un jeu complet:

Bienvenue au Tic-Tac-Toe. S'il vous plaît entrez votre premier coup: A1X | | --- | --- | --- | | --- | --- | --- | | Je vais jouer à A2: X | O | --- | --- | --- | | --- | --- | --- | | S'il vous plaît entrez votre prochain déménagement: B1X | O | --- | --- | --- X | | --- | --- | --- | | Je vais jouer au A3: X | O | O --- | --- | --- X | | --- | --- | --- | | S'il vous plaît entrez votre prochain déménagement: C1X | O | O --- | --- | --- X | | --- | --- | --- X | | Vous me battre!

Voici quelques conseils pour vous aider à démarrer:

  • La meilleure façon de représenter la grille est avec un tableau. Pour l'instant, utilisez neuf variables, nommées A1, A2, A3, B1, B2, B3, C1, C2, et C3.

  • Si vous utilisez le int tapez pour les variables de la grille, vous pouvez alors utiliser 1 pour indiquer que un carré contient un X et 2 pour indiquer qu'un carré contient un O.

  • Huit lignes possibles peuvent conduire à une victoire. Un joueur gagne si l'une des combinaisons suivantes de places sont soit 1 (pour X) ou 2 (O):

    A1 - A2 - A3A1 - B1 - C1A1 - B2 - C3B1 - B2 - b3a2 - B2 - C2A3 - B2 - c1c1 - C2 - C3A3 - B3 - C3
  • Il ya deux façons de déterminer si le jeu est un match nul. La première est de vérifier tous les neuf carrés: Si aucun des carrés est vide et aucun joueur a gagné, le jeu est un match nul. La deuxième est de compter les coups: Si neuf initiatives ont été prises et aucun joueur a gagné, le jeu est un match nul.

Vous pouvez trouver une solution à ce défi de programmation sur la Téléchargements onglet du Java All-in-One For Dummies, 4ème page de produits d'édition.

Bon chance!


» » » » Défi de programmation Java: un simple jeu de tic-tac-toe