In dieser Übung implementierst du ein Programm, das den Zustand eines tic-tac-toe-Spiels bestimmt. (Vielleicht kennst du das Spiel auch als „noughts and crosses" oder „Xs and Os".)
Das Spiel wird auf einem 3×3-Raster gespielt.
Die Spieler setzen abwechselnd Xs und Os auf das Raster.
Das Spiel endet, wenn ein Spieler gewinnt, indem er drei seiner Markierungen in einer Reihe, einer Spalte oder einer Diagonale des Rasters platziert, oder wenn das gesamte Raster gefüllt ist.
In dieser Übung gehen wir davon aus, dass X beginnt.
Deine Aufgabe ist es, festzustellen, in welchem Zustand sich ein gegebenes Spiel befindet.
Es gibt drei mögliche Spielzustände:
Wenn das gegebene Spielfeld ungültig ist, wirf einen passenden Fehler.
Ein Spielfeld ist ungültig, wenn es die folgenden Bedingungen erfüllt:
X beginnt). | |
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
___|___|___
| |
| |
| |
In dieser Übung bekommst du zwei Enums.
Beide Enum-Typen werden über eine Union als Rückgabewerte der Methode state verwendet.
Mehr über Enums und Unions kannst du in der Crystal-Referenzdokumentation nachlesen:
Melde dich bei Exercism an, um Crystal mit 26 Konzepte142 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.