Διαδρομές
/
Haskell
Haskell
/
Ασκήσεις
/
Επίθεση βασίλισσας
Επίθεση βασίλισσας

Επίθεση βασίλισσας

Μέτριο

Οδηγίες

Δεδομένων των θέσεων δύο βασιλισσών σε μια σκακιέρα, δείξε αν είναι τοποθετημένες με τρόπο που να μπορούν να επιτεθούν η μία στην άλλη.

Στο σκάκι, μια βασίλισσα μπορεί να επιτεθεί σε κομμάτια που βρίσκονται στην ίδια γραμμή, στήλη ή διαγώνιο.

Μια σκακιέρα μπορεί να αναπαρασταθεί με έναν πίνακα 8 επί 8.

Έτσι, αν σου πουν ότι η λευκή βασίλισσα βρίσκεται στο c5 (με μηδενική αρίθμηση: στήλη 2, γραμμή 3) και η μαύρη βασίλισσα στο f2 (με μηδενική αρίθμηση: στήλη 5, γραμμή 6), τότε ξέρεις ότι η διάταξη είναι η εξής:

Μια σκακιέρα με δύο βασίλισσες. Βέλη που ξεκινούν από τη βασίλισσα στο c5 δείχνουν πιθανές κατευθύνσεις αιχμαλωσίας κατά μήκος στήλης, γραμμής και διαγωνίου.

Μπορείς επίσης να απαντήσεις αν οι βασίλισσες μπορούν να επιτεθούν η μία στην άλλη. Σε αυτή την περίπτωση, η απάντηση θα ήταν ναι, μπορούν, επειδή και τα δύο κομμάτια μοιράζονται μια διαγώνιο.

Συντελεστές

Η εικόνα της σκακιέρας φτιάχτηκε από τον habere-et-dispertire με LaTeX και το πακέτο chessboard του Ulrike Fischer.

Υποδείξεις

Για να ολοκληρώσεις αυτή την άσκηση, πρέπει να υλοποιήσεις τις παρακάτω συναρτήσεις:

  • boardString
  • canAttack

Θα βρεις τις υπογραφές των τύπων ήδη στη θέση τους, αλλά ο ορισμός των συναρτήσεων εξαρτάται από εσένα.

Οι θέσεις δίνονται ως πλειάδες δύο στοιχείων:

  • Το πρώτο στοιχείο είναι η γραμμή (το "rank" στη σκακιστική ορολογία).
  • Το δεύτερο στοιχείο είναι η στήλη (το "file" στη σκακιστική ορολογία).
  • Το (0, 0) είναι το πάνω αριστερά της σκακιέρας, το (0, 7) το πάνω δεξιά,
  • το (7, 0) είναι το κάτω αριστερά και το (7, 7) το κάτω δεξιά.
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Haskell Exercism

Έτοιμος να ξεκινήσεις την άσκηση Επίθεση βασίλισσας;

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