Tracks
/
MIPS Assembly
MIPS Assembly
/
Übungen
/
Zustand von Tic-Tac-Toe
Zustand von Tic-Tac-Toe

Zustand von Tic-Tac-Toe

Mittel

Anleitung

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:

  • Das Spiel ist ongoing.
  • Das Spiel endete mit dem Ergebnis draw.
  • Das Spiel endete mit dem Ergebnis win.

Wenn das gegebene Spielfeld ungültig ist, wirf einen passenden Fehler.

Ein Spielfeld ist ungültig, wenn es die folgenden Bedingungen erfüllt:

  • Das gegebene Spielfeld kann nicht erreicht werden, wenn die Züge in der richtigen Reihenfolge ausgeführt werden (denk daran, dass X beginnt).
  • Das Spiel wurde fortgesetzt, nachdem es bereits beendet war.

Beispiele

Laufendes Spiel

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

Unentschieden

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

Sieg

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

Ungültig

Falsche Zugreihenfolge
   |   |
 O | O | X
___|___|___
   |   |
   |   |
___|___|___
   |   |
   |   |
   |   |
Nach dem Sieg weitergespielt
   |   |
 X | X | X
___|___|___
   |   |
 O | O | O
___|___|___
   |   |
   |   |
   |   |

Format des Spielfelds

Das Spielfeld wird als nullterminierter String dargestellt, mit einem Zeilenumbruch am Ende jeder Zeile.

Ein Beispiel wäre "X \n XO\nOX \n"

Register

Register Verwendung Typ Beschreibung
$a0 Eingabe Adresse nullterminierter String für die Eingabe
$v0 Ausgabe Ganzzahl Spielzustand (1 = ongoing, 2 = draw, 3 = win, -1 = error)
$t0-9 temporär beliebig für temporäre Speicherung
Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
MIPS Assembly Exercism

Bereit, mit Zustand von Tic-Tac-Toe zu starten?

Melde dich bei Exercism an, um MIPS Assembly mit 70 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.