Πόσο ψηλός είσαι; Εισάγοντας τις Συναρτήσεις Πόσο ψηλός είσαι; Εισάγοντας τις Συναρτήσεις By Jenna Hayes under the direction of Professor Susan Rodger Duke University July 2008 Απόδοση, προσαρμογή στα ελληνικά Νίκος Ψαρουδάκης Πρότυπο Πειραματικό Γυμνάσιο Ηρακλείου Ιανουάριος 2012
Βήμα 1: Ξεκινώντας Σε αυτό το μάθημα θα μάθετε να χρησιμοποιείτε συναρτήσεις για να ρωτήσετε πόσο ψηλός είναι ένας από τους συμμετέχοντες. Χρησιμοποιώντας αυτή την πληροφορία, οι δύο συμμετέχοντες θα συγκρίνουν τα ύψη τους και θα έχουν μία συγκεκριμένη αντίδραση ανάλογα με το ποιος είναι ο ψηλότερος. Μια συνάρτηση function στο Alice είναι ουσιαστικά μία ερώτηση αναζήτησης πληροφοριών γύρω από ιδιότητες των αντικειμένων της ταινίας σας το Alice. Το Alice αναλαμβάνει και σας επιστρέφει τις απαντήσεις. Μπορείτε να ρωτήσετε πόσο ψηλό ή πλατύ ένα αντικείμενο είναι, πόσο μακριά είναι από κάποιο άλλο αντικείμενο κλπ.
Βήμα 1: Ξεκινώντας Πατήστε στο πράσινο πλήκτρο Add Objects. Στην Local Gallery βρείτε το φάκελο People. Στη συνέχεια, προσθέστε το αντικείμενο RandomGuy2. Τώρα πηγαίνετε πίσω στην Local Gallery, και βρείτε το φάκελο Animals. Προσθέστε ένα penguin.
Βήμα 1: Ξεκινώντας Χρησιμοποιώντας τα πλήκτρα θέσης, μετακινήστε τον άνθρωπο στα αριστερά της σκηνής και τον πινγκουίνο στα δεξιά. Η σκηνή σας πρέπει να έχει την παρακάτω μορφή όταν θα έχετε τελειώσει.
Βήμα 1: Ξεκινώντας Κάντε δεξί κλικ στον penguin στο δέντρο αντικειμένων και πηγαίνετε στις μεθόδους. Στη συνέχεια επιλέξτε penguin resize, και μετά other…. Στο κομπιουτεράκι που εμφανίζεται, πληκτρολογήστε 1.75. Ο πινγκουίνος θα γίνει μεγαλύτερος.
Βήμα 1: Ξεκινώντας Τώρα, κάντε δεξί κλικ στο randomGuy2 στο δέντρο αντικειμένων, και επιλέξτε methods. Μετά βρείτε τη μέθοδο turn to face. Πατήστε σε αυτήν και μετά επιλέξτε penguin, και the entire penguin. Μετά, κάντε δεξί κλικ στο penguin στο δέντρο αντικειμένων, και επιλέξτε methods. Πηγαίνετε στο penguin turn to face, και μετά επιλέξτε randomGuy2, και the entire randomGuy2. Οι ηθοποιοί σας θα πρέπει να κοιτούν ο ένας τον άλλο.
Βήμα 2: Κατανοώντας τις συναρτήσεις Functions Επιλέξτε το penguin στο δέντρο αντικειμένων. Στη συνέχεια πατήστε στην καρτέλα functions. Θα δείτε μία μακριά σειρά από συναρτήσεις. Κυλήσετε προς τα κάτω και κοιτάξετε τις συναρτήσεις της ομάδας size. Κάθε μία από αυτές, κάνει μία ερώτηση για τον πινγκουίνο και στη συνέχεια σας επιστρέφει την απάντηση έτσι ώστε να μπορέσετε να την χρησιμοποιήσετε στο πρόγραμμα σας. Πόσο πλατύς είναι ο πινγκουίνος; Είναι πιο παχύςο πινγκουίνος από ένα συγκεκριμένο αντικείμενο; Είναι ψηλότερος είναι ο πινγκουίνος από ένα συγκεκριμένο αντικείμενο; Οι συναρτήσεις αυτές μπορεί να φανούν πολύ χρήσιμες. Εάν για παράδειγμα θέλετε να κινήσετε κάτι πάνω στο κεφάλι του πινγκουίνου και να το τοποθετήσετε εκεί, δε γνωρίζετε το ύψος στο οποίο πρέπει να κινηθείτε, αλλά το Alice γνωρίζει.
Βήμα 3: Χρησιμοποιώντας τις συναρτήσεις True και False Μερικές από τις συναρτήσεις του Alice είναι ερωτήσεις στις οποίες η απάντηση είναι Σωστό ή Λάθος - true ή false, όπως η συνάρτηση στην προηγούμενη διαφάνεια “penguin is taller than.” Θέλουμε να μάθουμε αν ο πινγκουίνος είναι πιο ψηλός από τον randomGuy2. Είναι σχεδόν αδύνατο να αποφασίσουμε απλά κοιτώντας τους, γιατί το ύψος τους είναι σχεδόν το ίδιο. Για το λόγο αυτό θα χρησιμοποιήσουμε μία συνάρτηση. Θα προσθέσουμε εντολές έτσι ώστε όταν ξεκινά το πρόγραμμα μας, εάν ο πινγκουίνος είναι πιο ψηλός, θα λέει “Hah! I’m taller!”, και θα κάνει μία πιρουέτα νίκης, αλλά εάν ο randomGuy2 είναι πιο ψηλός, θα λέει “Hah! I’m taller!”, και θα κάνει αυτός μία πιρουέτα νίκης.
Βήμα 3: True ή False συνέχεια... Καθώς θέλουμε ο πινγκουίνος να λέει “Hah! I’m taller” αν είναι ψηλότερος, χρειάζεται να χρησιμοποιήσουμε κάτι που ονομάζεται δομή ελέγχου If Else. Θα τη βρείτε στο κάτω μέρος του method editor: Πρώτα σύρετε μια Do in order στον method editor. Μετά, μέσα σε αυτήν, σύρετε μία δομή ελέγχου If Else. Επιλέξτε true όταν την αφήσετε. Θα το αντικαταστήσετε αυτό αργότερα.
Βήμα 3: True ή False συνέχεια... Στο σημείο αυτό τοποθετούμε την ερώτηση, στην οποία η απάντηση είναι true ή false. Στο παράδειγμα μας, η ερώτηση θα είναι penguin is taller than randomGuy2. Καθώς αυτή τη στιγμή έχουμε βάλει απλά true, αυτό σημαίνει: «Αν αυτή η δήλωση είναι αληθής (που είναι), κάνε όποιες εντολές είναι ακριβώς από κάτω της.» Στο σημείο αυτό βάζουμε τις εντολές που θα εκτελεστούν αν η απάντηση στην ερώτηση είναι αληθής - true. Στο σημείο αυτό θα πούμε στον πινγκουίνο να λέει “Hah! I’m taller!” Στο σημείο αυτό βάζουμε τα πράγματα που θέλουμε να συμβούν αν η απάντηση στην ερώτηση μας είναι Ψευδής - NOT true. Αν είναι ψευδής, ο έλεγχος του προγράμματος θα παραλείψει οτιδήποτε πάνω από το Else, και θα πάει κατευθείαν στις εντολές που θα γράψουμε στο σημείο αυτό. Άρα στο σημείο αυτό θα πούμε στον randomguy να πει “Hah! I’m taller!”, γιατί αν η δήλωση μας είναι ψευδής και ο πινγκουίνος δεν είναι ψηλότερος, αυτό σημαίνει ότι ο άνθρωπος είναι πιο ψηλός.
Βήμα 3: True ή False συνέχεια... Ας δημιουργήσουμε την ερώτηση μας. Πατήστε penguin στο δέντρο αντικειμένων και επιλέξτε functions. Βρείτε τη συνάρτηση penguin is taller than, και σύρετε την πάνω στη λέξη true, στη δομή ελέγχου If Else. Όταν το μενού, που σας ρωτάει με ποιο άλλο ύψος να συγκρίνει αυτό του πινγκουίνου εμφανιστεί, επιλέξτε randomGuy2.
Βήμα 3: True ή False συνέχεια... Σύρετε μια Do together από το κάτω μέρος της οθόνης και τοποθετήστε την μέσα στην If/Else ακριβώς κάτω από την If. Στη συνέχεια, επιλέξτε τον penguin στο δέντρο αντικειμένων και πηγαίνετε στις μεθόδους. Σύρετε τη μέθοδο penguin turn μέσα τη δομή Do together. Όταν την αφήσετε, επιλέξτε right, και στη συνέχεια 1 revolution. Ο κώδικας σας θα είναι σαν τον παρακάτω.
Βήμα 3: True ή False συνέχεια... Ση συνέχεια, βρείτε τη μέθοδο penguin say, και σύρετε την στην Do together. Στο μενού που εμφανίζεται, επιλέξτε other, και πληκτρολογήστε “Hah! I’m taller!”.
Βήμα 3: True ή False συνέχεια... Σύρετε άλλη μια Do together μέσα στην If/Else, αυτή τη φορά ακριβώς κάτω από την Else. Επιλέξτε randomGuy2 στο δέντρο αντικειμένων και στη συνέχεια εμφανίστε τον κατάλογο μεθόδων. Βρείτε τη μέθοδο randomGuy2 turn, και σύρετέ την στη νέα Do together. Επιλέξτε right, και μετά 1 revolution. Ο κώδικας σας θα μοιάζει με τον παρακάτω.
Βήμα 3: True ή False συνέχεια... Στη συνέχεια, βρείτε τη μέθοδο randomGuy2 say και βάλτε την στην Do together. Κάντε τον να λέει “Hah! I’m taller!” Τώρα πατήστε play για να δείτε ποιος είναι πιο ψηλός.
Βήμα 3: True ή False συνέχεια... Φαίνεται ότι ο πινγκουίνος είναι πιο ψηλός. Για να ελέγξουμε αν η συνάρτηση μας δουλεύει σωστά, πάμε στην οθόνη Add Objects και αλλάζουμε το μέγεθος του randomGuy2 χρησιμοποιώντας τα πλήκτρα θέσης, κάνοντας τον εμφανώς ψηλότερο από τον πινγκουίνο. Τώρα, πατήστε play ξανά. Αυτή τη φορά, ο randomGuy2 είναι αυτός που θα λέει ότι είναι ψηλότερος. Μπορείτε να τον επαναφέρετε πίσω στο αρχικό του μέγεθος μετά το έλεγχο που κάνατε.
Βήμα 4: Χρησιμοποιώντας Αριθμητικές Συναρτήσεις Βήμα 4: Χρησιμοποιώντας Αριθμητικές Συναρτήσεις Τώρα θα χρησιμοποιήσουμε μια συνάρτηση, η οποία είναι ερώτηση, και της οποίας η απάντηση είναι αριθμός και όχι true ή false. Θα κάνουμε τον πινγκουίνο να πηγαίνει πάνω στον άνθρωπο και να του κάνει μία αγκαλιά. Το πρόβλημα είναι ότι δε γνωρίζουμε πόσο μακριά να του πούμε να πάει. Για το λόγο αυτό θα χρησιμοποιήσουμε μια συνάρτηση. Πρώτα θα κάνομε τον άνθρωπο να λέει κάτι. Έχει κουραστεί να ανταγωνίζεται με το πινγκουίνο για το ποιος είναι ο πιο ψηλός, και θέλει να συμφιλιωθούν. Πατήστε randomGuy2 το δέντρο αντικειμένων, και μετά επιλέξτε methods. Βρείτε τη μέθοδο randomGuy2 say και σύρετε την κάτω από τη δομή ελέγχου If Else. Συμπληρώστε τη φράση “Let’s be friends. Give me a hug, penguin!”
Βήμα 4: Αριθμητικές συναρτήσεις (συνέχεια) Τώρα θα κάνουμε τον πινγκουίνο να κινείται προς τον άνθρωπο κα να του κάνει μια αγκαλιά. Επιλέξτε penguin στο δέντρο αντικειμένων και στη συνέχεια επιλέξτε τον κατάλογο methods. Βρείτε τη μέθοδο penguin move και σύρετε την στον συντάκτη μεθόδων κάτω από κάθε άλλη εντολή. Δεν ξέρουμε ακόμα πόσο μακριά να πάει γι αυτό βάλτε 1 μέτρο προς το παρόν. Πατήστε Play για να δείτε πως φαίνεται μέχρι τώρα.
Βήμα 4: Αριθμητικές συναρτήσεις (συνέχεια) Τώρα θα χρησιμοποιήσουμε τη συνάρτηση που θα λέει στον πινγκουίνο πόσο μακριά να κινηθεί. Επιλέξτε τον penguin στο δέντρο αντικειμένων, και μετά πατήστε την καρτέλα functions. Βρείτε τη συνάρτηση distance to. Σύρετέ την πάνω στο 1 meter στην εντολή penguin move forward και αφήστε την εκεί. Στο αναδυόμενο μενού, επιλέξτε randomGuy2.
Βήμα 4: Αριθμητικές συναρτήσεις (συνέχεια) Δοκιμάστε το πρόγραμμα σας. Τι συμβαίνει; Ο πινγκουίνος κινείται πολύ μακριά, μέσα στο σώμα του randomGuy2. Θα ήταν όμορφο αν σταματούσε 0.5 μέτρο περίπου μπροστά από τον randomGuy2. Μπορούμε να επιλέξουμε math, ακολουθούμενο από “-”, ακολουθούμενο από ένα αριθμό. Πατήστε εδώ για να εφαρμόσετε math. Ο κώδικας σας τη γραμμή αυτή θα είναι ο παρακάτω:
Βήμα 5: Ολοκληρώνοντας Το τελευταίο πράγμα που θα χρειαστεί να κάνετε είναι να κάνετε τον πινγκουίνο να αγκαλιάζει τον άνθρωπο. Πατήστε στον penguin στο δέντρο αντικειμένων, και στη συνέχεια στην καρτέλα methods. Πατήστε create new method, και ονομάστε την hug. Σε αυτή τη μέθοδο, πειραματιστείτε μέχρι να βρείτε τον κώδικα που κάνει τον πινγκουίνο να αγκαλιάζει τον άνθρωπο. Ο προτεινόμενος κώδικας για την penguin.hug μοιάζει κάπως έτσι.
Βήμα 5: Ολοκληρώνοντας Τώρα πατήστε στην καρτέλα world.my first method του συντάκτη μεθόδων. Βεβαιωθείτε ότι έχετε επιλέξει penguin στο δέντρο αντικειμένων, και μετά κοιτάξτε στον κατάλογο μεθόδων. Βρείτε την penguin.hug, και σύρετέ την στο κάτω μέρος του συντάκτη μεθόδων. Ο τελικός σας κώδικας θα είναι ο παρακάτω.
Βήμα 5: Ολοκληρώνοντας (συνέχεια) Τώρα που ολοκληρώσαμε, δοκιμάστε το πρόγραμμα σας. Γνωρίσατε τα βασικά σημεία για τη χρήση συναρτήσεων. Χρησιμοποιήσαμε δύο μόνο συναρτήσει, όμως υπάρχουν πάρα πολλές στον κόσμο της Alice, οι οποίες μπορεί να φανούν χρήσιμες. Δοκιμάστε κάποιες από αυτές και ανακαλύψτε τη λειτουργία τους.