Ο καλύτερός σου φίλος άρχισε να συλλέγει παζλ και θέλει να φτιάξει έναν λεπτομερή κατάλογο της συλλογής του, καταγράφοντας πληροφορίες όπως ο συνολικός αριθμός των κομματιών, ο αριθμός των σειρών και των στηλών, ο αριθμός των κομματιών του περιγράμματος και των εσωτερικών, η αναλογία διαστάσεων και η μορφή του παζλ. Ακόμα κι αν ενώσεις τις δυνάμεις σου με του φίλου σου, χρειάζονται αρκετές ώρες για να λύσεις ένα μόνο παζλ με χίλια κομμάτια, και μετά πρέπει ακόμα να μετρήσεις τις σειρές και τις στήλες και να υπολογίσεις τους υπόλοιπους αριθμούς με το χέρι. Τα ακόμα μεγαλύτερα παζλ με χιλιάδες κομμάτια μοιάζουν τώρα αρκετά αποθαρρυντικά. "Πρέπει να υπάρχει καλύτερος τρόπος!" αναφωνείς και κάθεσαι μπροστά στον υπολογιστή σου για να λύσεις το πρόβλημα.
Με δεδομένες μερικές πληροφορίες για ένα παζλ, πρόσθεσε τα κομμάτια που λείπουν.
Αν οι πληροφορίες δεν επαρκούν για να ολοκληρωθούν οι λεπτομέρειες, ή αν τα μέρη που δίνονται βρίσκονται σε αντίφαση, ο χρήστης θα πρέπει να ειδοποιείται.
Οι πλήρεις πληροφορίες για το παζλ περιλαμβάνουν τα εξής μέρη:
pieces: Συνολικός αριθμός κομματιώνborder: Αριθμός κομματιών περιγράμματοςinside: Αριθμός εσωτερικών κομματιών (μη περιγράμματος)rows: Αριθμός σειρώνcolumns: Αριθμός στηλώνaspectRatio: Λόγος διαστάσεων στηλών προς σειρέςformat: Μορφή του παζλ, που μπορεί να είναι portrait, square ή landscape
Για αυτήν την άσκηση, μπορείς να υποθέσεις ότι τα κομμάτια είναι τετράγωνα, ώστε η μορφή να μπορεί να προκύψει από τον λόγο διαστάσεων:
portrait
square
landscape
Ένα κατακόρυφο παζλ με 6 κομμάτια, από τα οποία όλα είναι κομμάτια περιγράμματος και κανένα δεν είναι εσωτερικό κομμάτι. Έχει 3 σειρές και 2 στήλες. Ο λόγος διαστάσεων είναι 1.5 (3/2).
Ένα τετράγωνο παζλ με 9 κομμάτια, από τα οποία όλα είναι κομμάτια περιγράμματος εκτός από αυτό στο κέντρο, που είναι εσωτερικό κομμάτι. Έχει 3 σειρές και 3 στήλες. Ο λόγος διαστάσεων είναι 1 (3/3).
Ένα οριζόντιο παζλ με 12 κομμάτια, από τα οποία τα 10 είναι κομμάτια περιγράμματος και τα 2 είναι εσωτερικά κομμάτια. Έχει 3 σειρές και 4 στήλες. Ο λόγος διαστάσεων είναι 1.333333... (4/3).
Γράψου στο Exercism για να μάθεις και να κατακτήσεις WebAssembly με 87 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.