Υπολόγισε το αποτέλεσμα για ένα παιχνίδι Hex / Polygon.
Το αφηρημένο επιτραπέζιο παιχνίδι γνωστό ως Hex / Polygon / CON-TAC-TIX είναι αρκετά απλό στους κανόνες, αν και πολύπλοκο στην πράξη. Δύο παίκτες τοποθετούν πέτρες σε ένα παραλληλόγραμμο με εξαγωνικά κελιά. Ο παίκτης που θα συνδέσει πρώτος τις πέτρες του με την απέναντι πλευρά κερδίζει. Οι τέσσερις πλευρές του παραλληλογράμμου μοιράζονται ανάμεσα στους δύο παίκτες (δηλαδή ο ένας παίκτης παίρνει μια πλευρά και την ακριβώς απέναντί της, και ο άλλος παίκτης παίρνει τις δύο άλλες πλευρές).
Ο στόχος σου είναι να φτιάξεις ένα πρόγραμμα που, με δεδομένη μια απλή αναπαράσταση ενός ταμπλό, υπολογίζει τον νικητή (ή την απουσία νικητή). Σημείωσε ότι δεν χρειάζεται όλα τα παιχνίδια να είναι "δίκαια". (Για παράδειγμα, ο ένας παίκτης μπορεί να έχει περισσότερες πέτρες από τον άλλο, ή το ταμπλό του παιχνιδιού μπορεί να έχει διαφορετικό πλάτος και ύψος.)
Τα ταμπλό έχουν την παρακάτω μορφή:
. O . X .
. X X O .
O O O X .
. X O X O
X O O O X
Ο "παίκτης O" παίζει από πάνω προς τα κάτω, ο "παίκτης X" παίζει από αριστερά προς τα δεξιά.
Στο παραπάνω παράδειγμα ο O έχει κάνει μια σύνδεση από αριστερά προς τα δεξιά, αλλά κανείς δεν έχει κερδίσει, αφού ο O δεν συνέδεσε πάνω και κάτω.
Μπορεί να παρατηρήσεις ότι μερικές περιπτώσεις δοκιμών φαίνονται άδικες. Ωστόσο, μπορεί να είναι άδικες για βάσιμο λόγο. Για παράδειγμα, είναι συνηθισμένο να δίνουμε σε μικρούς ή αρχάριους παίκτες n επιπλέον πιόνια σε καθορισμένες θέσεις στο ταμπλό, οπότε μπορεί να προκύψουν ασυμφωνίες στον αριθμό των πιονιών σε ένα κατά τα άλλα απόλυτα νόμιμο παιχνίδι.
Σε κάθε περίπτωση, αυτή η άσκηση ενδιαφέρεται μόνο για τον προσδιορισμό του νικητή σε ένα παιχνίδι που μπορεί να έχει ποικιλία παραμέτρων, όπως το μήκος του ταμπλό και τα επιπλέον πιόνια. Δεν την ενδιαφέρει καμία άλλη κατάσταση του παιχνιδιού, όπως ποιος μετακίνησε πού, πότε ή ποιανού είναι η σειρά.
Έτσι, μην παραξενεύεσαι με εκείνα τα φαινομενικά άδικα παιχνίδια.
Γράψου στο Exercism για να μάθεις και να κατακτήσεις Scala με 95 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.