Διαδρομές
/
Rust
Rust
/
Ασκήσεις
/
Χωράφι με Λουλούδια
Χωράφι με Λουλούδια

Χωράφι με Λουλούδια

Μέτριο

Εισαγωγή

Flower Field είναι μια τρυφερή επανεπινόηση του δημοφιλούς παιχνιδιού Ναρκαλιευτής. Σκοπός του παιχνιδιού είναι να βρεις όλα τα λουλούδια στον κήπο χρησιμοποιώντας αριθμητικές υποδείξεις που δείχνουν πόσα λουλούδια βρίσκονται ακριβώς δίπλα (οριζόντια, κάθετα, διαγώνια) σε ένα τετράγωνο. Το "Flower Field" κυκλοφόρησε σε περιφερειακές εκδόσεις των Microsoft Windows στην Ιταλία, τη Γερμανία, τη Νότια Κορέα, την Ιαπωνία και την Ταϊβάν.

Οδηγίες

Η αποστολή σου είναι να προσθέσεις πλήθη λουλουδιών στα κενά τετράγωνα ενός ολοκληρωμένου κήπου Flower Field. Ο ίδιος ο κήπος είναι ένα ορθογώνιο ταμπλό που αποτελείται από τετράγωνα, τα οποία είναι είτε κενά (' ') είτε ένα λουλούδι ('*').

Για κάθε κενό τετράγωνο, μέτρησε τον αριθμό των λουλουδιών που βρίσκονται δίπλα του (οριζόντια, κάθετα, διαγώνια). Αν το κενό τετράγωνο δεν έχει γειτονικά λουλούδια, άφησέ το κενό. Διαφορετικά, αντικατέστησέ το με το πλήθος των γειτονικών λουλουδιών.

Για παράδειγμα, μπορεί να λάβεις ένα ταμπλό 5 x 4 σαν αυτό (εδώ τα κενά αναπαρίστανται με τον χαρακτήρα '·' για να φαίνονται στην οθόνη):

·*·*·
··*··
··*··
·····

Το οποίο ο κώδικάς σου πρέπει να μετατρέψει σε αυτό:

1*3*1
13*31
·2*2·
·111·

Υπόδειξη για την απόδοση

Όλες οι είσοδοι και οι έξοδοι είναι σε ASCII. Οι τύποι String και &str της Rust είναι utf8, οπότε ενώ κάποιος θα περίμενε το "Hello".chars() να είναι απλό, στην πραγματικότητα χρειάζεται να ελέγχει κάθε χαρακτήρα για να δει αν έχει μήκος 1, 2, 3 ή 4 u8. Αν ξέρουμε ότι ένα &str είναι ASCII, τότε μπορούμε να καλέσουμε το .as_bytes() και να αναφερθούμε στα υποκείμενα δεδομένα ως &[u8] (ένα τμήμα από byte). Η επανάληψη πάνω σε ένα τμήμα από byte ASCII είναι πολύ πιο γρήγορη, καθώς δεν εμπλέκονται κωδικά σημεία. Κάθε byte ASCII έχει μήκος ένα u8.

Μπορείς να ολοκληρώσεις την πρόκληση χωρίς να κλωνοποιήσεις την είσοδο;

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

Έτοιμος να ξεκινήσεις την άσκηση Χωράφι με Λουλούδια;

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

Αναλυτική ματιά στο Χωράφι με Λουλούδια!

Εξερευνούμε τους εμφωλευμένους βρόχους `for`, την έξυπνη χρήση των min/max για την απλοποίηση του ελέγχου ορίων, τα functional pipelines και τη χρήση δισδιάστατων πινάκων.