Coding for KidsCoding for Kids
Δημιουργικά ΕπίπεδαΠροκλήσειςΟδηγός Εκπαιδευτικού
Ψηφίστε για λειτουργίες
Προχωρημένο Μάθημα Ανάπτυξης σε Python
Κεφάλαιο
>
Επίπεδο

Προηγμένες Συναρτήσεις
Εμφωλευμένες Συναρτήσεις

Στόχος

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

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

Μέσα στο εργαστήριο υπάρχουν πολλές μηχανές παραγωγής υφασμάτων, μερικές από αυτές έχουν ύφασμα έτοιμο για αποθήκευση, ενώ άλλες απαιτούν νήμα για να ολοκληρώσουν την παραγωγή του υφάσματος. Κάθε μία έχει μπροστά της είτε ένα "red" είτε ένα "green" χαλί, το οποίο θα υποδεικνύει πώς χρησιμοποιείται. Στον επεξεργαστή κώδικα θα γραφτεί μια συνάρτηση που θα μας επιτρέπει να χειριζόμαστε τη μηχανή και είτε να συλλέγουμε είτε να τοποθετούμε υλικά από αυτή.

def operate_machine(color): def collect_cloth(): # Collect Code player.speak("Cloth is ready for storage") def place_thread(): # Place Code player.speak("Machine needed more materials") if color == "green": collect_cloth() if color == "red": place_thread()

Η συνάρτηση ονομάζεται operate_machine και δέχεται ως παράμετρο το color. Ανάλογα με το χαλί που βρίσκεται μπροστά από τη μηχανή, δηλαδή είτε "red" είτε "green", η εισαγωγή της κάθε τιμής ως όρισμα θα αλλάξει τη λειτουργία της μηχανής, επιτρέποντάς σας είτε να τοποθετείτε είτε να συλλέγετε αντικείμενα.

Μέσα στη συνάρτηση θα βρείτε δύο Nested functions, που ονομάζονται collect_cloth() και place_thread() και χρησιμοποιούνται για τους σκοπούς που υποδεικνύονται από τα ονόματά τους. Στις συναρτήσεις αυτές λείπουν οι απαραίτητες γραμμές για την εκτέλεση της δράσης τους. Στη collect_cloth() προσθέστε τη γραμμή player.collect("cloth"), η οποία ακολουθείται από player.speak("Quilt is ready for storage") και στη place_thread() προσθέστε τη γραμμή player.place("thread") η οποία ακολουθείται από player.speak("Machine needed more materials").

Μόλις προστεθούν οι απαραίτητες γραμμές κώδικα στις εμφωλευμένες συναρτήσεις, περπατήστε μέχρι το φωτεινό σήμα X μπροστά από το κουτί και συλλέξτε το "thread" για χρήση στη μηχανή, όπως εξής: player.collect("thread").

Περπατήστε μέχρι τα σκοτεινά σήματα X μέσα στο εργαστήριο και χρησιμοποιήστε την προσαρμοσμένη συνάρτηση operate_machine ενώ στρέφεστε προς τις μηχανές. Προσθέστε είτε "red" είτε "green" ως όρισμα, ανάλογα με το χρώμα του χαλιού στο οποίο βρίσκεται το σήμα X, για παράδειγμα: operate_machine("red"). Αυτό θα σας επιτρέψει να τοποθετήσετε το νήμα και να συλλέξετε το ύφασμα.

Μόλις συλλέξετε όλα τα υφάσματα, περπατήστε μέχρι το χρυσό σήμα X δίπλα στο κουτί στο πίσω μέρος και χρησιμοποιήστε τη συνάρτηση place() για να αποθηκεύσετε το ύφασμα. Δημιουργήστε μια μεταβλητή με όνομα cloths, προσθέστε σε αυτήν τον αριθμό των υφασμάτων που έχετε συλλέξει και αποθηκεύστε την στο κουτί, για να ολοκληρώσετε το επίπεδο, όπως εξής: player.place(cloths).

Βιβλίο Κώδικα