Διαδρομές
/
MIPS Assembly
MIPS Assembly
/
Ασκήσεις
/
Κατάσταση της τρίλιζας
Κατάσταση της τρίλιζας

Κατάσταση της τρίλιζας

Μέτριο

Οδηγίες

Σε αυτή την άσκηση, θα υλοποιήσεις ένα πρόγραμμα που προσδιορίζει την κατάσταση ενός παιχνιδιού tic-tac-toe. (Μπορεί επίσης να το ξέρεις ως "noughts and crosses" ή "Xs and Os".)

Το παιχνίδι παίζεται σε πλέγμα 3×3. Οι παίκτες παίζουν εναλλάξ, τοποθετώντας X και O στο πλέγμα. Το παιχνίδι τελειώνει όταν ένας παίκτης κερδίσει βάζοντας τρία σημάδια στη σειρά, σε μια στήλη ή σε μια διαγώνιο του πλέγματος, ή όταν γεμίσει ολόκληρο το πλέγμα.

Σε αυτή την άσκηση, θα υποθέσουμε ότι ξεκινάει το X.

Δική σου δουλειά είναι να προσδιορίσεις σε ποια κατάσταση βρίσκεται ένα δεδομένο παιχνίδι.

Υπάρχουν 3 πιθανές καταστάσεις του παιχνιδιού:

  • Το παιχνίδι βρίσκεται στην κατάσταση ongoing.
  • Το παιχνίδι έληξε στην κατάσταση draw.
  • Το παιχνίδι έληξε στην κατάσταση win.

Αν το ταμπλό που δίνεται δεν είναι έγκυρο, πέτα ένα κατάλληλο σφάλμα.

Ένα ταμπλό δεν είναι έγκυρο αν ισχύουν οι παρακάτω συνθήκες:

  • Το ταμπλό που δίνεται δεν μπορεί να προκύψει όταν οι κινήσεις γίνονται με τη σωστή σειρά (θυμήσου ότι ξεκινάει το 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 προσωρινός οτιδήποτε για προσωρινή αποθήκευση
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
MIPS Assembly Exercism

Έτοιμος να ξεκινήσεις την άσκηση Κατάσταση της τρίλιζας;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις MIPS Assembly με 70 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.