Σε αυτή την άσκηση, θα υλοποιήσεις ένα πρόγραμμα που προσδιορίζει την κατάσταση ενός παιχνιδιού tic-tac-toe. (Μπορεί επίσης να το ξέρεις ως "noughts and crosses" ή "Xs and Os".)
Το παιχνίδι παίζεται σε πλέγμα 3×3.
Οι παίκτες παίζουν εναλλάξ, τοποθετώντας X και O στο πλέγμα.
Το παιχνίδι τελειώνει όταν ένας παίκτης κερδίσει βάζοντας τρία σημάδια στη σειρά, σε μια στήλη ή σε μια διαγώνιο του πλέγματος, ή όταν γεμίσει ολόκληρο το πλέγμα.
Σε αυτή την άσκηση, θα υποθέσουμε ότι ξεκινάει το X.
Δική σου δουλειά είναι να προσδιορίσεις σε ποια κατάσταση βρίσκεται ένα δεδομένο παιχνίδι.
Υπάρχουν 3 πιθανές καταστάσεις του παιχνιδιού:
Αν το ταμπλό που δίνεται δεν είναι έγκυρο, πέτα ένα κατάλληλο σφάλμα.
Ένα ταμπλό δεν είναι έγκυρο αν ισχύουν οι παρακάτω συνθήκες:
X). | |
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
___|___|___
| |
| |
| |
Το ταμπλό αναπαρίσταται ως συμβολοσειρά με τερματισμό null και με έναν χαρακτήρα αλλαγής γραμμής στο τέλος κάθε γραμμής.
Ένα παράδειγμα θα ήταν "X \n XO\nOX \n"
| Καταχωρητής | Χρήση | Τύπος | Περιγραφή |
|---|---|---|---|
$a0 |
είσοδος | διεύθυνση | συμβολοσειρά εισόδου με τερματισμό null |
$v0 |
έξοδος | ακέραιος | κατάσταση παιχνιδιού (1 = ongoing, 2 = draw, 3 = win, -1 = error) |
$t0-9 |
προσωρινός | οτιδήποτε | για προσωρινή αποθήκευση |
Γράψου στο Exercism για να μάθεις και να κατακτήσεις MIPS Assembly με 70 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.