Ebben a feladatban egy olyan programot fogsz megvalósítani, amely megállapítja egy tic-tac-toe játék állását. (A játékot „noughts and crosses” vagy „Xs and Os” néven is ismerheted.)
A játékot egy 3×3-as rácsban játsszák.
A játékosok felváltva X-et és O-t tesznek a rácsra.
A játék akkor ér véget, amikor az egyik játékos nyer azzal, hogy három jelét egy sorban, oszlopban vagy a rács egyik átlója mentén helyezi el, illetve amikor az egész rács megtelik.
Ebben a feladatban feltételezzük, hogy X kezd.
A te feladatod eldönteni, hogy egy adott játék melyik állapotban van.
Három lehetséges játékállapot van:
Ha a megadott tábla érvénytelen, dobj egy megfelelő hibát.
Egy tábla érvénytelen, ha teljesíti a következő feltételeket:
X kezd). | |
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
___|___|___
| |
| |
| |
A táblát egy nullával lezárt string képviseli, és minden sor végén egy újsor karakter áll.
Erre egy példa: "X \n XO\nOX \n"
| Regiszter | Használat | Típus | Leírás |
|---|---|---|---|
$a0 |
bemenet | cím | nullával lezárt bemeneti string |
$v0 |
kimenet | egész szám | a játék állapota (1 = ongoing, 2 = draw, 3 = win, -1 = error) |
$t0-9 |
ideiglenes | bármilyen | ideiglenes tárolásra |
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) MIPS Assembly nyelvet 70 feladat segítségével, valódi emberi mentorálással, mindez ingyen.