Connect

Connect

Δύσκολο

Οδηγίες

Υπολόγισε το αποτέλεσμα για ένα παιχνίδι 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 επιπλέον πιόνια σε καθορισμένες θέσεις στο ταμπλό, οπότε μπορεί να προκύψουν ασυμφωνίες στον αριθμό των πιονιών σε ένα κατά τα άλλα απόλυτα νόμιμο παιχνίδι.

Σε κάθε περίπτωση, αυτή η άσκηση ενδιαφέρεται μόνο για τον προσδιορισμό του νικητή σε ένα παιχνίδι που μπορεί να έχει ποικιλία παραμέτρων, όπως το μήκος του ταμπλό και τα επιπλέον πιόνια. Δεν την ενδιαφέρει καμία άλλη κατάσταση του παιχνιδιού, όπως ποιος μετακίνησε πού, πότε ή ποιανού είναι η σειρά.

Έτσι, μην παραξενεύεσαι με εκείνα τα φαινομενικά άδικα παιχνίδια.

Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Scala Exercism

Έτοιμος να ξεκινήσεις την άσκηση Connect;

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