Parcours
/
MIPS Assembly
MIPS Assembly
/
Exercices
/
État du morpion
État du morpion

État du morpion

Moyen

Instructions

Dans cet exercice, tu vas implémenter un programme qui détermine l'état d'une partie de tic-tac-toe. (Tu connais peut-être aussi ce jeu sous le nom de « morpion ».)

Le jeu se joue sur une grille de 3×3. Les joueurs placent à tour de rôle des X et des O sur la grille. La partie se termine quand un joueur a gagné en alignant trois de ses marques sur une ligne, une colonne ou une diagonale de la grille, ou quand la grille est entièrement remplie.

Dans cet exercice, on suppose que c'est X qui commence.

À toi de déterminer dans quel état se trouve une partie donnée.

Il y a 3 états possibles pour une partie :

  • La partie est ongoing.
  • La partie s'est terminée par un draw.
  • La partie s'est terminée par un win.

Si le plateau donné est invalide, lève une erreur appropriée.

Un plateau est invalide s'il remplit les conditions suivantes :

  • Le plateau donné ne peut pas être obtenu en jouant les coups dans le bon ordre (rappelle-toi que c'est X qui commence).
  • La partie a continué alors qu'elle était déjà terminée.

Exemples

Partie en cours

   |   |
 X |   |
___|___|___
   |   |
   | X | O
___|___|___
   |   |
 O | X |
   |   |

Match nul

   |   |
 X | O | X
___|___|___
   |   |
 X | X | O
___|___|___
   |   |
 O | X | O
   |   |

Victoire

   |   |
 X | X | X
___|___|___
   |   |
   | O | O
___|___|___
   |   |
   |   |
   |   |

Invalide

Ordre des coups incorrect
   |   |
 O | O | X
___|___|___
   |   |
   |   |
___|___|___
   |   |
   |   |
   |   |
Partie poursuivie après une victoire
   |   |
 X | X | X
___|___|___
   |   |
 O | O | O
___|___|___
   |   |
   |   |
   |   |

Format du plateau

Le plateau est représenté par une string terminée par un caractère nul, avec un caractère de saut de ligne à la fin de chaque ligne.

Voici un exemple : "X \n XO\nOX \n"

Registres

Registre Utilisation Type Description
$a0 entrée adresse string d'entrée terminée par un caractère nul
$v0 sortie entier état de la partie (1 = ongoing, 2 = draw, 3 = win, -1 = error)
$t0-9 temporaire quelconque pour le stockage temporaire
Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
MIPS Assembly Exercism

Prêt à commencer État du morpion ?

Inscris-toi sur Exercism pour apprendre et maîtriser MIPS Assembly avec 70 exercices, et un vrai mentorat humain, le tout gratuitement.