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

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

Μέτριο

Οδηγίες

Σε αυτή την άσκηση, θα υλοποιήσεις ένα πρόγραμμα που προσδιορίζει την κατάσταση ενός παιχνιδιού 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
___|___|___
   |   |
   |   |
   |   |
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Futhark Exercism

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

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