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 :
Si le plateau donné est invalide, lève une erreur appropriée.
Un plateau est invalide s'il remplit les conditions suivantes :
X qui commence). | |
X | |
___|___|___
| |
| X | O
___|___|___
| |
O | X |
| |
| |
X | O | X
___|___|___
| |
X | X | O
___|___|___
| |
O | X | O
| |
| |
X | X | X
___|___|___
| |
| O | O
___|___|___
| |
| |
| |
| |
O | O | X
___|___|___
| |
| |
___|___|___
| |
| |
| |
| |
X | X | X
___|___|___
| |
O | O | O
___|___|___
| |
| |
| |
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"
| 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 |
Inscris-toi sur Exercism pour apprendre et maîtriser MIPS Assembly avec 70 exercices, et un vrai mentorat humain, le tout gratuitement.