Διαδρομές
/
WebAssembly
WebAssembly
/
Ασκήσεις
/
Ενώνοντας τα κομμάτια
Ενώνοντας τα κομμάτια

Ενώνοντας τα κομμάτια

Μέτριο

Εισαγωγή

Ο καλύτερός σου φίλος άρχισε να συλλέγει παζλ και θέλει να φτιάξει έναν λεπτομερή κατάλογο της συλλογής του, καταγράφοντας πληροφορίες όπως ο συνολικός αριθμός των κομματιών, ο αριθμός των σειρών και των στηλών, ο αριθμός των κομματιών του περιγράμματος και των εσωτερικών, η αναλογία διαστάσεων και η μορφή του παζλ. Ακόμα κι αν ενώσεις τις δυνάμεις σου με του φίλου σου, χρειάζονται αρκετές ώρες για να λύσεις ένα μόνο παζλ με χίλια κομμάτια, και μετά πρέπει ακόμα να μετρήσεις τις σειρές και τις στήλες και να υπολογίσεις τους υπόλοιπους αριθμούς με το χέρι. Τα ακόμα μεγαλύτερα παζλ με χιλιάδες κομμάτια μοιάζουν τώρα αρκετά αποθαρρυντικά. "Πρέπει να υπάρχει καλύτερος τρόπος!" αναφωνείς και κάθεσαι μπροστά στον υπολογιστή σου για να λύσεις το πρόβλημα.

Οδηγίες

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

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

Οι πλήρεις πληροφορίες για το παζλ περιλαμβάνουν τα εξής μέρη:

  • pieces: Συνολικός αριθμός κομματιών
  • border: Αριθμός κομματιών περιγράμματος
  • inside: Αριθμός εσωτερικών κομματιών (μη περιγράμματος)
  • rows: Αριθμός σειρών
  • columns: Αριθμός στηλών
  • aspectRatio: Λόγος διαστάσεων στηλών προς σειρές
  • format: Μορφή του παζλ, που μπορεί να είναι portrait, square ή landscape

Για αυτήν την άσκηση, μπορείς να υποθέσεις ότι τα κομμάτια είναι τετράγωνα, ώστε η μορφή να μπορεί να προκύψει από τον λόγο διαστάσεων:

  • Αν ο λόγος διαστάσεων είναι μικρότερος από το 1, είναι portrait
  • Αν είναι ίσος με το 1, είναι square
  • Αν είναι μεγαλύτερος από το 1, είναι landscape

Τρία παραδείγματα

Κατακόρυφο

Ένα κατακόρυφο παζλ με 6 κομμάτια, από τα οποία όλα είναι κομμάτια περιγράμματος και κανένα δεν είναι εσωτερικό κομμάτι. Έχει 3 σειρές και 2 στήλες. Ο λόγος διαστάσεων είναι 1.5 (3/2).

Ένα παζλ 2 επί 3

Τετράγωνο

Ένα τετράγωνο παζλ με 9 κομμάτια, από τα οποία όλα είναι κομμάτια περιγράμματος εκτός από αυτό στο κέντρο, που είναι εσωτερικό κομμάτι. Έχει 3 σειρές και 3 στήλες. Ο λόγος διαστάσεων είναι 1 (3/3).

Ένα παζλ 3 επί 3

Οριζόντιο

Ένα οριζόντιο παζλ με 12 κομμάτια, από τα οποία τα 10 είναι κομμάτια περιγράμματος και τα 2 είναι εσωτερικά κομμάτια. Έχει 3 σειρές και 4 στήλες. Ο λόγος διαστάσεων είναι 1.333333... (4/3).

Ένα παζλ 4 επί 3

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

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

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