Κεφάλαιο 13

include component="comments" page="Κεφάλαιο 13" limit="10"

__**Ομάδα Διαδικτυακών πόρων**__
===**Προτεινόμενοι σύνδεσμοι :**===

1.[] Σε αυτό το σύνδεσμο το παράδειγμα BallGame εισάγει την έννοια των αντικειμένων και τη λειτουργια της διαδραστικότητας.

2.[] {Οι περισσότερες δραστηριότητες αυτού του pdf, περιέχουν επικοινωνία μεταξύ αντικειμένων και επανάληψη.}

3.[|http://www.cs.uni-potsdam.de/~romeike/UEWettbewerb/index-english.htm#_Toc181790515] Ένα tutorial του Scratch, που αναφέρεται κυρίως στους καθηγητές. Αρχικά κάνει μια εισαγωγή στο Scratch, αναφέρει τους διδακτικούς στόχους που μπορούν να επιτευχθούν μέσα από αυτό, καθώς και τις ηλικίες των παιδιών στα οποία αναφέρονται τα σχέδια μαθήματος που περιέχονται σε αυτό το site. Για της εξής ενότητες : Εισαγωγή σε προγραμματιστικό περιβάλλον, loops- κάνοντας κινήσεις, αλγόριθμοι- αποφάσεις βασισμένες σε γεγονότα, διαδραστικότητα με τον χρήστη, επικοινωνία μεταξύ αντικειμένων (broadcasts), μεταβλητες, περιέχει σχέδιο μαθήματος με αναλυτικές οδηγίες προς τον καθηγητή για το πώς πρέπει να εισάγει αυτές τις έννοιες, τι διδακτικές μεθόδους και τί παραδείγματα πρέπει να χρησιμοποιήσει καθώς και τί projects πρέπει να αναθέσει στους μαθητές.

4.[] Σε αυτό το σύνδεσμο παρουσιάζονται κάποιες βασικές προγραμματιστικές αρχές μέσα από παραδείγματα στο Scratch. Οι ενότητες είναι: Εισαγωγή ( κίνηση της γάτας, πώς τρώει άλλα αντικείμενα, πώς αλλάζει ρούχα, πώς λέει κάποια λέξη), Εντολές ελέγχου ( φτιάχνουμε ένα ψάρι που κολυμπάει σε ένα δοχείο, μόλις ακουμπήσει το δοχείο τότε αλλάζει κατεύθυνση, επίσης μπορούμε να προσθέσουμε κουμπιά για να δημιουργεί το ψάρι μπουρπουλήθρες και να κάνει ήχο), Broadcastng μηνυμάτων (δημιουργία τριών sprites τα οποία αλλάζουν τα κοστούμια και τα backgrounds των άλλων sprites), δημιουργία ενός ολοκληρωμένου project. Για κάθε ενότητα, περιέχονται μαθήματα, φύλλα εργασίας και φύλλα με παραδείγματα.

5.[] Αυτός ο σύνδεσμος πραγματεύεται τη έννοια του μηνύματος στο Scratch καθώς και τον τρόπο του broadcasting ενός message σε αυτό το νέο προγραμματιστικό εργαλείο.

6.http://www.robodome.ca/scratch_taskcards/TASK%20CARDS%207.pdf Ένα παράδειγμα για το πως χρησιμοποιείται η επικοινωνία μεταξύ αντικειμένων μέσω μιας άσκησης που αλλάζει χρώματα στα sprites όταν κλικάρονται διάφορα αντικείμενα.

= = =13. Επικοινωνία μεταξύ αντικειμένων= //__13. Επικοινωνία μεταξύ αντικειμένων__// // Μαθησιακοί στόχοι // Να κατανοούν την ανάγκη επικοινωνίας και συγχρονισμού μεταξύ των αντικειμένων. Να μπορούν να αναγνωρίσουν κατάλληλες περιστάσεις για την αξιοποίηση της επικοινωνίας/συγχρονισμού Να αναγνωρίζουν τη λειτουργία των εντολών **"μετάδωσε", "μετάδωσε και περίμενε", "όταν λάβω"** από την παλέτα Έλεγχος. Να είναι σε θέση να περιγράψουν σε διαφορετικά παραδείγματα (κίνηση, ζωγραφική, θέατρο, κτλ.) την αξία των εντολών **"μετάδωσε", "μετάδωσε και περίμενε", "όταν λάβω".**  //Χαρακτηριστικά// Η ανάγκη της επικοινωνίας μεταξύ των αντικειμένων Τα μηνύματα και σχετικές εντολές Σύνθετα παραδείγματα συγχρονισμού των αντικειμένων //Παραδείγματα // ...

__**Διάρθρωση κεφαλαίου:**__
=13. Επικοινωνία μεταξύ αντικειμένων=


 * Εισαγωγή
 * Εντολές "μετάδωσε" και "όταν λάβω"
 * Εντολή "μετάδωσε και περίμενε"
 * Παραδείγματα
 * Εφαρμογές
 * Ανακεφαλαίωση

“[|The first half of life is spent mainly in finding out who we are through seeing ourselves in our **interaction** with others.]” [|Dr. June Singer quotes]

Το πρώτο μισό της ζωής μας ψάχνουμε κυρίως να βρούμε ποιοί είμαστε ανακαλύπτοντας τους εαυτούς μας μέσα από την **αλληλεπίδρασή** μας με άλλους. [|Dr. June Singer quotes]

__1. Εισαγωγή__

Στα προηγούμενα κεφάλαια μάθαμε πώς μπορούμε να κινήσουμε τα αντικείμενά μας, να ζωγραφίσουμε με αυτά, να τα αλλάξουμε όψεις και γενικότερα, πώς μπορούν τα αντικείμενα να εκτελούν ενέργειες αυτόνομα, ανεξάρτητα από τα υπόλοιπα αντικείμενα του σκηνικού. Έτσι, συναντήσαμε πολλές δυσκολίες στα προγράμματα που υλοποιήσαμε, στο συγχρονισμό των αντικειμένων και προσπαθούσαμε να το κάνουμε «εμπειρικά», δοκιμάζοντας να τρέξουμε τα προγράμματά μας με διαφορετικέ εκδοχές της εντολής «περίμενε τόσα δευτερόλεπτα», ώστε να πετύχουμε το επιθυμητό αποτέλεσμα. Σε αυτό το κεφάλαιο θα λύσουμε τις όποιες δυσκολίες μας στο σωστό συγχρονισμό των αντικειμένων και θα δούμε πόσο εύκολα μπορούν να αλληλεπιδράσουν τα αντικείμενα μεταξύ τους. Ας θυμηθούμε από την ενότητα 4 του κεφαλαίου 7 το παράδειγμα 2. Πρόκειται για την προσομοίωση της εκκίνησης ενός αγώνα δρόμου που παρακολουθούμε μέσω live streaming. Για το συγχρονισμό των αυτοκινήτων χρησιμοποιείται η εντολή **περίμενε “ ” δευτερόλεπτα**. Τα δευτερόλεπτα που περιμένουν είναι τόσα όσα χρειάζεται για να γίνουν τα φανάρια πράσινα. Η δυσκολία έγκειται στο γεγονός ότι πρέπει να αθροίσουμε τους χρόνους που χρειάζονται τα φανάρια για να γίνουν πορτοκαλί και πράσινα για να υπολογίσουμε τα δευτερόλεπτα. Ο τρόπος αυτός μπορεί να είναι αποδοτικός για μικρά παραδείγματα αλλά για σκεφτείτε τη δυσκολία τόσο σε κόπο όσο και σε χρόνο, αν έπρεπε να δημιουργήσουμε μια ολόκληρη θεατρική παράσταση ή μια σκυταλοδρομία όπου τα αντικείμενα είναι περισσότερα και έχουμε περισσότερες εντολές και αλληλεπιδράσεις. Το Scratch, λοιπόν, μας προσφέρει την δυνατότητα συγχρονισμού των αντικειμένων με ανταλλαγή μηνυμάτων μέσω των εντολών **μετάδωσε**, **μετάδωσε και περίμενε** και **όταν λάβω**. Στο πρόβλημα μας συγκεκριμένα θα θέλαμε όταν το φανάρι γίνει πράσινο να στείλει μήνυμα στα αυτοκίνητα να ξεκινήσουν. Πριν όμως δείξουμε πώς μας διευκολύνει η ανταλλαγή μηνυμάτων στο συγκεκριμένο παράδειγμα ας μάθουμε τη χρήση και τη λειτουργικότητα των εντολών αυτών.

__2. Εντολές "μετάδωσε" και "όταν λάβω"__

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

Η ορχήστρα μας αποτελείται από δύο μουσικούς (Ντριγκιντράγκας, Πιατίνη), έναν μαέστρο (Μαεστρίδης) και μία τραγουδίστρια (Καλλιφωνίδου). Τους χαρακτήρες τους έχουμε βρει με την χρήση του google βάζοντας σαν όρο της αναζήτησης το όργανο που παίζουν ή την ιδιότητα τους στην παράσταση (για παράδειγμα για τον Ντριγκιντράγκα βάλαμε στα αγγλικά guitar player clipart, όπου το clipart είναι ο τύπος της εικόνας). Το σκηνικό είναι διαθέσιμο στο φάκελο background -> indoors-> spotlight-stage. Επίσης εισάγουμε και επιπλέον ενδυμασίες για τα αντικείμενα μας παίρνοντας τiς ήδη υπάρχουσες και τροποποιώντας (οριζόντια αναστροφή, γέμισμα με διαφορετικά χρώματα) αυτές στην ζωγραφική που μας παρέχει το scratch. Κάνουμε εναλλαγή στις ενδυμασίες των αντικειμένων για να γίνει πιο αληθινή η συναυλία μας.


 * Αντικείμενα και σκηνικό**
 * Ενδυμασίες, ήχοι και η «συμπεριφορά» τους**

Για τον μαέστρο μας έχουμε μία ενδυμασία. Ο ρόλος του είναι ο σημαντικότερος καθώς αυτός μεταδίδει τα μηνύματα που «ερεθίζουν» και τα άλλα αντικείμενα. Αρχικά στέλνει μήνυμα σε όλους τους μουσικούς της ορχήστρας, έπειτα δοκιμάζει τα σόλο και τέλος τα ντουέτα (βλέπε εικόνες 13.2- 13.5). .
 * Μαεστρίδης**

Εικόνα 13.1

Εικόνα 13.2

Εικόνα 13.3

Εικόνα 13.4

Εικόνα 13.5

Για τον Ντριγκιντράγκα έχουμε δύο ενδυμασίες. Ακόμα πρέπει να του προσθέσουμε και ένα ήχο της επιλογής μας όταν θα παίζει την κιθάρα του, τον οποίο (GuitarChords2) εισάγουμε από το φάκελο «music loops». Σε όλες τις περιπτώσεις (όλοι μαζί, σόλο, ντουέτα, σειριακό ζέσταμα) ο Ντριγκιντράγκας όταν λάβει σήμα από το Μαεστρίδη ξεκινάει αλλάζοντας ενδυμασία, στην συνέχεια παίζει τον ήχο και κάνει φιγούρες χρησιμοποιώντας εντολές που έχουμε μάθει στα προηγούμενα κεφάλαια.
 * Ντριγκιντράγκας**



Εικόνα 13.6



Εικόνα 13.7

Για τον Πιατίνη έχουμε μία ενδυμασία και έναν ήχο που τον εισάγουμε επίσης από το φάκελο «music loops» (Drum). Όμοια με τον Ντριγκιντράγκα, ο Πιατίνη όταν λάβει το σήμα από τον μαέστρο, ξεκινάει αλλάζοντας την όψη του με διάφορα εφέ και παίζει τον ήχο.
 * Πιατίνης**

Εικόνα 13.8

Εικόνα 13.9

Για την τραγουδίστρια μας έχουμε δύο ενδυμασίες και έναν ήχο που τον εισάγουμε από το φάκελο «vocals» (got-inspiration). Η Καλλιφωνίδου όταν λάβει το σήμα αλλάζει ενδυμασία, κινείται στο σκηνικό και "ταυτόχρονα" παίζει τον ήχο.
 * Καλλιφωνίδου**

Εικόνα 13.10

Εικόνα 13.11


 * Σκηνικό**

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

Εικόνα 13.12

Εικόνα 13.13

Εικόνα 13.14


 * Υλοποίηση**

Ας δούμε πως μπορεί ο Μαεστρίδης να συντονίσει την ορχήστρα του. Αρχικά θέλει να διαπιστώσει αν τον ακούν όλοι. Πώς θα το υλοποιήσουμε αυτό; Αφού επιλέξουμε το αντικείμενο Μαεστρίδης, πηγαίνουμε στο μενού ελέγχου και επιλέγουμε την εντολή **μετάδωσε**. Κάνουμε ένα κλικ στο βελάκι και πατάμε νέο. Εμφανίζεται ένα παράθυρο που μας ζητάει να πληκτρολογήσουμε το όνομα του μηνύματος. Μπορούμε να γράψουμε ότι μήνυμα θέλουμε χωρίς κανέναν περιορισμό τόσο για το μέγεθος όσο και για τους χαρακτήρες του πληκτρολογίου που θα συμπεριλάβουμε (κεφαλαία, μικρά, σύμβολα πράξεων). Καλό θα ήταν να βάζουμε μηνύματα που θα μας θυμίζουν το "ρόλο" τους μέσα στον κώδικα έτσι ώστε σε περίπτωση λάθους να μας είναι πιο εύκολος ο έλεγχος. Έστω λοιπόν ότι γράφουμε "Πάμε". Αν εκτελέσουμε το πρόγραμμα παρατηρούμε ότι ο μαέστρος έχει στείλει το μήνυμα αλλά κανείς από την ορχήστρα δεν ανταποκρίνεται. Τι συμβαίνει; Μήπως τα υπόλοιπα αντικείμενα τον αγνοούν; Αντιθέτως. Έχουν όλοι τους λάβει το μήνυμα απλά δεν ενδιαφέρονται να αντιδράσουν με κάποιο συγκεκριμένο τρόπο. Έτσι λοιπόν για να είναι σίγουρος ο μαέστρος ότι όλοι τον ακούν, αρκεί σε κάθε αντικείμενο του σκηνικού (εκτός του μαέστρου) να χρησιμοποιήσουμε την εντολή **όταν λάβω** από το μενού έλεγχος. Κάνουμε ένα κλικ στο βελάκι και επιλέγουμε (υπάρχει πάντα έτοιμο) το όνομα του μηνύματος που έχει σταλεί. Στην προκειμένη περίπτωση επιλέγουμε το "Πάμε". Όταν εκτελέσουμε το ανανεωμένο πρόγραμμα η ορχήστρα ανταποκρίνεται και φωνάζουν όλοι ότι είναι έτοιμοι. Πρέπει να κατανοήσουμε, συνεπώς, ότι κάθε αντικείμενο στο scratch μπορεί να στείλει ένα μήνυμα. Τα μηνύματα είναι απρόσωπα και στέλνονται ταυτόχρονα σε όλα τα αντικείμενα του σκηνικού. Η εκτέλεση των ενεργειών τους εξαρτάται από το αν το μήνυμα που μεταδίδεται είναι ίδιο με αυτό που περιμένουν να λάβουν. (βλέπε εικόνες 13.15- 13.19).

http://scratch.mit.edu/projects/havanasblanco/1057063

Έτσι, είδαμε πώς μπορεί ένα αντικείμενο, στην περίπτωσή μας ο Μαεστρίδης, να στέλνει ένα μήνυμα σε όλα τα αντικείμενα του σκηνικού και αυτά να ενεργούν. Εάν ο κύριος Μαεστρίδης ήθελε να ελέγξει τα σόλο του τι θα έπρεπε να κάνει; Έστω λοιπόν ότι θέλει να ρωτήσει τον Ντριγκιντράγκα αν είναι έτοιμος. Σύμφωνα με όσα είπαμε παραπάνω βάζουμε τον Μαεστρίδη, να μεταδώσει ένα μήνυμα έστω «κιθάρα». Έπειτα πηγαίνουμε στο αντικείμενο Ντριγκιντράγκας και τον βάζουμε να δηλώσει παρών παίζοντας ταυτόχρονα μία μελωδία στην κιθάρα του και κάνοντας τις χορευτικές του φιγούρες μόλις λάβει το μήνυμα «κιθάρα». Λειτουργούμε με τον ίδιο τρόπο για να κάνουν ζέσταμα και οι υπόλοιποι μουσικοί, ο καθένας ξεχωριστά, στέλνοντας χαρακτηριστικά μηνύματα στον καθένα. Μπορούμε να στείλουμε τα μηνύματα "Φωνή" στην Καλλιφωνίδου και "Ντραμς" στον Πιατίνη, προσέχοντας, φυσικά, οι μουσικοί μας να λάβουν τα μηνύματα που τους αφορούν. (βλέπε εικόνες 13.20- 13.24).

Έχοντας, ο κύριος Μαεστρίδης, ελέγξει όλα τα σόλο του, στέλνοντας τα αντίστοιχα μηνύματα, θέλει να δοκιμάσει και τα ντουέτα του. Στο σενάριο του Μαεστρίδη εισάγουμε την εντολή **μετάδωσε** με μήνυμα "Κιθάρα και Ντραμς". Έχοντας την εντολή **Όταν λάβω** "Κιθάρα και Ντραμς" στον Ντριγκιντράγκα και στον Πιατίνη, όταν τρέξουμε το πρόγραμμα και οι δύο μουσικοί θα αρχίσουν να παίζουν, να αλλάζουν ενδυμασίες και να κινούνται. (βλέπε εικόνες 13.25- 13.28).

Τέλος, μπορούμε να δίνουμε σήμα σε ένα ένα τα αντικείμενα στέλνοντας πολλά μηνύματα «ταυτόχρονα» και δημιουργώντας έτσι ένα σειριακό ζέσταμα. Εισάγουμε στο σενάριο του Μαεστρίδη τις εντολές **μετάδωσε** με μηνύματα «Κιθάρα», «Ντραμς» και «Φωνή». Έχοντας τις εντολές « **Όταν λάβω** Κιθάρα», « **Όταν λάβω** Ντραμς» και « **Όταν λάβω** Φωνή» στον Ντριγκιντράγκα, στον Πιατίνη και στην Καλλιφωνίδου αντίστοιχα, όταν τρέξουμε το πρόγραμμα όλη η ορχήστρα θα αρχίσει να παίζει. (βλέπε εικόνες 13.29- 13.32).

Εικόνα 13.15

Εικόνα 13.16

Εικόνα 13.17 Εικόνα 13.18

Εικόνα 13.19

Εικόνα 13.20 Εικόνα 13.21 Εικόνα 13.22

Εικόνα 13.23

Εικόνα 13.24 Εικόνα 13.25

Εικόνα 13.26 Εικόνα 13.27 Εικόνα 13.28 Εικόνα 13.29 Εικόνα 13.30 Εικόνα 13.31 Εικόνα 13.32

__3. Εντολή "μετάδωσε και περίμενε"__ Ας υποθέσουμε τώρα ότι θέλουμε οι μουσικοί μας να παίξουν με τη σειρά, ο ένας μετά τον άλλον. Με αυτά που έχουμε μάθει, για να το υλοποιήσουμε αυτό θα έπρεπε ο Μαεστρίδης να μεταδώσει «Κιθάρα» στον Ντριγκιντράγκα και να τον περιμένει να τελειώσει __δοκιμάζοντας__ διάφορες τιμές στην εντολή «περίμενε τόσα δευτερόλεπτα» (απαιτεί λίγη προσπάθεια). Έπειτα να συνεχίσει μεταδίδοντας τα υπόλοιπα μηνύματα, δαπανώντας επιπρόσθετο χρόνο για να μπορέσει να βρει τα κατάλληλα δευτερόλεπτα που απαιτούνται να περιμένει για να είναι καλά συγχρονισμένα τα αντικείμενά μας και να μη στέλνει σήμα να ξεκινήσει το επόμενο αντικείμενο προτού τελειώσει τις ενέργειές του το προηγούμενο. Το scratch λύνει και αυτό το πρόβλημά μας με την εντολή **μετάδωσε και περίμενε.** Με αυτή την εντολή, το αντικείμενο που μεταδίδει το μήνυμα, πριν συνεχίσει με την εκτέλεση της επόμενης εντολής, περιμένει το αντικείμενο που λαμβάνει το μήνυμα να τελειώσει την εκτέλεσή του. Έτσι, αν έχουμε στο σενάριο του Μαεστρίδη τρεις εντολές **μετάδωσε και περίμενε**, κάθε μία από τις οποίες στέλνει ένα μήνυμα σε κάποιον μουσικό να αρχίσει να παίζει, το πρόγραμμά μας κάνει αυτό που επιθυμούσαμε, χωρίς να έχουμε αφιερώσει χρόνο στο συγχρονισμό των αντικειμένων μας (βλέπε εικόνα 13.33).

Εικόνα 13.33

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

__4. Παραδείγματα__

__Παράδειγμα 1__

Ας αρχίσουμε με ένα απλό παράδειγμα. Σκεφτείτε το χώρο μάθησης, την τάξη σας, και αναλογιστείτε πόσες φορές οι καθηγητές σας θέτουν ερωτήσεις, δίνοντας έτσι το έναυσμα για μία συζήτηση ή προσπαθώντας να ανακαλύψουν τυχόν κενά σας από την παράδοση του μαθήματος. Από την πρώτη κιόλας τάξη του δημοτικού γνωρίζετε πως όταν θέλετε να απαντήσετε στον διδάσκοντα, σηκώνετε το χέρι προκειμένου να του γνωστοποιήσετε την επιθυμία σας. Δεν απαντάτε όμως αν αυτός δε σας δώσει το λόγο. Πώς όμως αυτός ο "άγραφος νόμος" της τάξης θα μπορούσε να εφαρμοστεί στο scratch και να πραγματοποιηθεί ένας σύντομος διάλογος; Ας υλοποιήσουμε, λοιπόν, μια αίθουσα διδασκαλίας στην οποία η καθηγήτρια των μαθηματικών θα θέτει στους μαθητές της Νίκο, Γιώργο, Σπύρο και Κώστα την ερώτηση ποιο το αποτέλεσμα της πράξης 1+1. Μετά τη διατύπωση του ερωτήματος οι μαθητές αναζητούν σκεπτόμενοι τη σωστή απάντηση και ζητούν το λόγο σηκώνοντας το χέρι τους. Μπείτε εσείς στο ρόλο του καθηγητή και αποφασίστε, με τη βοήθεια του πληκτρολογίου σας, ποιος από τους 4 μαθητές θα απαντήσει. Όταν η καθηγήτρια θα απευθύνει το λόγο σε κάποιον μαθητή και εκείνος θα καλείται να απαντήσει, θα πρέπει οι συμμαθητές του να το αντιλαμβάνονται και να σταματούν να ζητούν το λόγο κατεβάζοντας τα χέρια.

Σκέψεις πριν την υλοποίηση

Τό πρώτο πράγμα που μας απασχολεί για να ξεκινήσουμε τη σύνθεση του παραδείγματος είναι το πόσα και ποια αντικείμενα συμμετέχουν. Εφόσον έχουμε μια καθηγήτρια και 4 μαθητές (τον Νίκο, τον Γιώργο, τον Σπύρο, και τον Κώστα) τα αντικείμενά μας θα είναι 5. Όσον αφορά στο σκηνικό επιλέξαμε το λευκό φόντο, ωστόσο θα μπορούσαμε είτε να δημιουργήσουμε κάποιο μόνοι μασ στη ζωγραφική του Scratch είτε να πάρουμε έτοιμη εικόνα από κάποια μηχανή αναζήτησης.Τα αντικείμενα καθηγήτρια και μαθητές μπορούμε να τα βρούμε από τις εικόνες του google. Η καθηγήτρια απαιτεί μόνο μια ενδυμασία που θα αναδεικνύει το ρόλο της.Οι μαθητές όμως πρέπει να προσέξουμε να έχουν διαφορετικές ενδυμασίες προκειμένου να είναι εμφανής η κάθε διαφορετική τους ενέργεια (1. παρακολουθώ, 2. σηκώνω το χέρι-ζητώ το λόγο και 3. απαντάω).

Ας "μπούμε", λοιπόν, στην τάξη που περιγράψαμε...

Αντικείμενα
 * **Καθηγήτρια** :

Εικόνα 13.34 __Σενάριο__ Η καθηγήτρια με την έναρξη του σεναρίου θέτει την ερώτηση ποιο το αποτέλεσμα της πράξης 1+1 στους μαθητές της, μεταδίδει ένα μήνυμα "σκέψου" προκειμένου αυτοί να αρχίσουν να σκέφτονται την απάντηση και περιμένει μέχρι κάποιος μαθητής να ζητήσει το λόγο σηκώνοντας το χέρι του.

Εικόνα 13.35

Εικόνα 13.36 Εικόνα 13.37

Επιπλέον, ενημερώνει το χρήστη με ποιον τρόπο πρέπει να λειτουργήσει. Να πατήσει κάποιο από τα πλήκτρα: 1 για να απαντησει ο Νίκος, 2 για να απαντήσει ο Γιώργος, 3 για να απαντήσει ο Σπύρος και 4 για να απαντήσει Κώστας. Εφόσον επιλέξετε ποιος μαθητής θα απαντήσει η καθηγήτρια λαμβάνει το ερέθισμα μέσω του πληκτρολογίου, δίνει το λόγο μέσω της εντολής **πες** και στέλνει ένα μήνυμα με το όνομα του συγκεκριμένου και επιλεγμένου από σας μαθητή. Στην εικόνα παρακάτω ως παράδειγμα δίνεται ο λόγος στον Νίκο.

Εικόνα 13.38

Εικόνα 13.39

Για τους μαθητές έχουμε 3 διαφορετικές ενδυμασίες. Στην πρώτη σκέφτονται, στη δεύτερη ζητούν το λόγο σηκώνοντας το χέρι και στην τρίτη απαντούν.
 * **Μαθητές**

Εικόνα 13.40

__Σενάριο__ Αμέσως μετά τη διατύπωση της ερώτησης οι μαθητές λαμβάνουν το μήνυμα "σκέψου" που έχει σταλεί από την καθηγήτρια και αρχίζουν να σκέφτονται. Έτσι στο σενάριο κάθε μαθητή θα προσθέσουμε τις παρακάτω εντολές προσέχοντας να βάλουμε τη σωστή ενδυμασία.

Εικόνα 13.41

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

Εικόνα 13.43

Στη συνέχεια ο μαθητής που επιθυμείτε να απαντήσει (ας πάρουμε για παράδειγμα το Νίκο), λαμβάνει το μήνυμα με το όνομα του (για το παραδειγμά μας Νίκος) από την καθηγήτρια, αλλάζει ενδυμασία και απαντά. Σε αυτό το σημείο όμως πρέπει να κατανοήσουμε ότι ενώ ο Νίκος έχει κληθεί να απαντήσει στην ερώτηση της καθηγήτριας, οι υπόλοιποι συμμαθητές του συνεχίζουν να ζητούν το λόγο. Γιατί συμβαίνει αυτό; Προφανώς γιατί δεν έχουν λάβει καμία ενημέρωση-μήνυμα ότι απευθύνθηκε σε κάποιον άλλο η καθηγήτρια. Επομένως οι υπόλοιποι μαθητές πρέπει λαμβάνουν το μήνυμα που έστειλε η καθηγήτρια με τη βοήθεια της εντολής **όταν λάβω**, να αλλάζουν ενδυμασία και να κατεβάζουν τα χέρια**.** Ετσι, λοιπον, οι παρακάτω εντολές πρέπει να περιλαμβάνονται στο σενάριο κάθε μαθητή.



Εικόνα 13.44

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

Εικόνα 13.46

**Περιγραφή παραδείγματος**
Σάββατο βράδυ και λαοθάλασσα περιμένει τους χορευτές να φανούν στη σκηνή, στο πλαίσιο του 14ου ετήσιου φεστιβάλ χορού Μαγνησίας. Το φεστιβάλ συντονίζει ένας παρουσιαστής, ο οποίος καλεί στη σκηνή δύο χορευτές, το Νίκο, που χορεύει breakdance και τη Βούλα, που είναι πρίμα μπαλαρίνα. Στη συνέχεια, ο παρουσιαστής ενημερώνει πώς μπορεί το κοινό (χρήστης) να επιλέξει το Νίκο, τη Βούλα ή και τους δύο μαζί και ανάλογα με την επιλογή του στέλνει μήνυμα στους χορευτές να αρχίσουν να χορεύουν. Τέλος, τους συγχαίρει και περιμένει για άλλη επιλογή. Δυστυχώς δε βρήκαμε εισιτήρια ωστόσο ο Νίκος και η Βούλα μπορούν να χορέψουν στην οθόνη σας.

**Σκέψεις πριν την υλοποίηση**
Ξεκινώντας, πρέπει να σκεφτούμε πόσα και ποια αντικείμενα θα χρειαστούμε για να συνθέσουμε το παραπάνω πρόβλημα. Στο φεστιβάλ χορού λαμβάνουν μέρος δύο χορευτές (Νίκος, Βούλα) και συντονίζεται από έναν παρουσιαστή που τους καλεί στη σκηνή. Συνεπώς, χρειαζόμαστε ένα αντικείμενο για το Νίκο, ένα για τη Βούλα και ένα για τον παρουσιαστή, ενώ πρέπει να επιλέξουμε ένα κατάλληλο σκηνικό που να αρμόζει σε φεστιβάλ χορού (μια εικόνα σκηνής που μπορούμε εύκολα να βρούμε στο Google). Σε ό,τι αφορά το Νίκο και τη Βούλα, καλό θα ήταν να επιλέξουμε αντικείμενα που να διαθέτουν αρκετές διαφορετικές ενδυμασίες, ώστε να μπορούμε να δείξουμε την κίνησή τους, ωστόσο για τον παρουσιαστή μας αρκεί ένα οποιοδήποτε αντικείμενο με τη μορφή ανθρώπου.

**Νίκος**
//Ενδυμασίες και Ήχοι// Για το Νίκο επιλέγουμε ενδεικτικά το αντικείμενο "breakdancer-1" από το φάκελο "People" του Scratch και του εισάγουμε και τις υπόλοιπες τρεις έτοιμες ενδυμασίες (breakdancer-2,breakdancer-3,breakdancer-4).

Εικόνα 13.47 Επίσης, χρειάζεται να προσθέσουμε και έναν ήχο που θα παίζει όσο χορεύει, οπότε εισάγουμε τον ήχο "DrumMachine" από το φάκελο "Music Loops".

Εικόνα 13.48

//Σενάριο// Ο Νίκος εμφανίζεται στη σκηνή όταν καλεστεί από τον παρουσιαστή. Έτσι είναι "κρυμμένος" αρχικά και όταν λάβει μήνυμα από τον παρουσιαστή εμφανίζεται σε κάποια θέση στο αριστερό όριο του σκηνικού και κινείται σταδιακά προς τη θέση του στη σκηνή, στα αριστερά του παρουσιαστή.

Οπότε, χρησιμοποιούμε την εντολή **απόκρυψη** όταν γίνει κλικ στη σημαία και εισάγουμε το Νίκο στη σκηνή κάτω από την εντολή **Όταν λάβω "έλα Νίκο"**. Έτσι, όταν ο παρουσιαστής μεταδώσει "έλα Νίκο" προς όλα τα αντικείμενα του σκηνικού, το αντικείμενο "Νίκος" θα είναι σε θέση να το λάβει και να εκτελέσει τον κώδικά του.

Εικόνα 13.49

Στη συνέχεια, αν το κοινό επιλέξει το Νίκο ή και τους δύο χορευτές, ο παρουσιαστής του κάνει σήμα να αρχίσει να χορεύει. Για το χορό του Νίκου εναλλάσσουμε τις ενδυμασίες του αντικειμένου του με μία επανάληψη όσο παίζει η μουσική. Αλλά για να λάβει το σήμα του παρουσιαστή (που στην περιπτωσή μας είναι ένα μήνυμα που μεταδίδει το αντικείμενο "Παρουσιαστής" προς όλα τα αντικείμενα του σκηνικού) και να αρχίσει να χορεύει, πρέπει να χρησιμοποιήσουμε την εντολή **Όταν λάβω "Νίκος"** και ακολούθως να εισάγουμε τις εντολές του χορού.

Εικόνα 13.50

**Βούλα**
//Ενδυμασίες και Ήχοι// Για τη Βούλα επιλέγουμε ενδεικτικά το αντικείμενο "ballerina-a" από το φάκελο "People" του Scratch και του εισάγουμε και τις υπόλοιπες τρεις έτοιμες ενδυμασίες.

Εικόνα 13.51 Επίσης, χρειάζεται να προσθέσουμε και έναν ήχο που θα παίζει όσο χορεύει, οπότε εισάγουμε τον ήχο "Medieval1" από το φάκελο "Music Loops".

Εικόνα 13.52

//Σενάριο// Η Βούλα εμφανίζεται στη σκηνή όταν καλεστεί από τον παρουσιαστή μετά το Νίκο. Έτσι είναι "κρυμμένη" αρχικά και όταν λάβει μήνυμα από τον παρουσιαστή εμφανίζεται σε κάποια θέση στο δεξί όριο του σκηνικού και κινείται σταδιακά προς τη θέση της στη σκηνή, στα δεξιά του παρουσιαστή.

Όπως και με το Νίκο, χρησιμοποιούμε την εντολή **Όταν λάβω "έλα Βούλα"** για να λάβει το μήνυμα του αντικειμένου "Παρουσιαστής" και να τοποθετηθεί σταδιακά στη σκηνή.

Εικόνα 13.53 Στη συνέχεια, αν το κοινό επιλέξει τη Βούλα ή και τους δύο χορευτές, ο παρουσιαστής της κάνει σήμα να αρχίσει να χορεύει. Για το χορό της Βούλας εναλλάσσουμε τις ενδυμασίες του αντικειμένου της με μία επανάληψη όσο παίζει η μουσική.

Συνεπώς, και σε αυτό το σημείο θα πρέπει να χρησιμοποιήσουμε την εντολή **Όταν λάβω "Βούλα"** έτσι ώστε η Βούλα να αρχίσει να χορεύει.

Εικόνα 13.54

**Παρουσιαστής**
//Σενάριο// Ο παρουσιαστής σε πρώτη φάση παρουσιάζει το Νίκο στο κοινό και τον καλεί στη σκηνή. Έπειτα παρουσιάζει τη Βούλα καλώντας την, ενώ ενημερώνει το κοινό πώς μπορεί να επιλέξει κάποιον χορευτή ή και τους δύο. Τέλος, στέλνει κατάλληλα μηνύματα στους χορευτές για να αρχίσουν να χορεύουν, αντίστοιχα με την επιλογή του κοινού.



Εικόνα 13.55

Εικόνα 13.56

Εικόνα 13.57

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

Στο σενάριο που έχουμε παρουσιάσει παραπάνω θέλουμε ο παρουσιαστής να καλεί τους δύο χορευτές στη σκηνή με τη σειρά. Θέλουμε, δηλαδή, να καλέσουμε πρώτα το Νίκο και __//αφού ολοκληρώσει την κίνησή του//__ να καλέσουμε τη Βούλα. Συνεπώς, δεν πρέπει να μεταδώσουμε άλλο μήνυμα πριν ο Νίκος τοποθετηθεί αριστερά από τον παρουσιαστή. Για αυτό το λόγο χρησιμοποιούμε την εντολή **μετάδωσε "έλα Νίκο"** **και περίμενε**. Σκεφτόμενοι με τον ίδιο τρόπο, χρησιμοποιούμε την εντολή **μετάδωσε "έλα Βούλα" και περίμενε**, έτσι ώστε να καλέσουμε τη Βούλα και να περιμένουμε πριν πούμε στο κοινό (χρήστη) πώς μπορεί να επιλέξει το Νίκο, τη Βούλα ή και τους δύο μαζί.

Εικόνα 13.58

Αν ο χρήστης πατήσει το πλήκτρο "1" και επιλέξει το Νίκο, το αντικείμενο "Παρουσιαστής" πρέπει να στείλει μήνυμα στο Νίκο να αρχίσει να χορεύει και να περιμένει να τελειώσει για να τον συγχαρεί. Για να το κάνουμε αυτό χρησιμοποιούμε την εντολή **μετάδωσε "Νίκος" και περίμενε**. Για τη Βούλα, αντίστοιχα, χρησιμοποιούμε την εντολή **μετάδωσε "Βούλα" και περίμενε**, όταν πατηθεί το πλήκτρο "2".



Εικόνα 13.59

Σε ό,τι αφορά την κίνηση και των δύο χορευτών πρέπει να είστε ιδιαιτέρως προσεχτικοί. Έχουμε μάθει ότι όταν χρησιμοποιούμε τις εντολές μετάδωσε και μετάδωσε και περίμενε, στέλνεται ένα μήνυμα προς όλα τα αντικείμενα τους σκηνικού και αν αυτά διαθέτουν την εντολή **Όταν λάβω** στο Σενάριό τους για το συγκεκριμένο μήνυμα εκτελούν τις εντολές που βρίσκονται στο ίδιο μπλοκ. Στο συγκεκριμένο παράδειγμα, δηλαδή, μπορεί το αντικείμενο "Παρουσιαστής" να μεταδώσει το μήνυμα "και οι 2" με την εντολή **μετάδωσε "και οι 2" και περίμενε** και να συγχαρεί τους δύο χορευτές όταν τελειώσουν. Αυτό, φυσικά, προϋποθέτει ότι έχουμε αλλάξει το μήνυμα που λαμβάνουν τα αντικείμενα "Νίκος" και "Βούλα" με την εντολή **Όταν λάβω "και οι 2"**, αλλιώς κανένας δε θα χορέψει. Έτσι, όμως, δε θα χορέψει κανένας ξεχωριστά αν λάβουν τα μηνύματα "Νίκος" και "Βούλα" αντίστοιχα, πατώντας τα πλήκτρα "1" και "2", για αυτό πρέπει να διπλασιάσουμε το μπλοκ των εντολών κάτω από την εντολή **Όταν λάβω**, έτσι ώστε να λαμβάνονται και τα δύο μηνύματα από κάθε χορευτή ("Νίκος" και "και οι 2" για το Νίκο, "Βούλα" και "και οι 2" για τη Βούλα).



Εικόνα 13.60

Βέβαια, μπορούμε να το αποφύγουμε αυτό, στέλνοντας δύο μηνύματα, ένα για κάθε χορευτή ("Νίκος" και "Βούλα", όπως πριν). Και αυτός ο τρόπος κρύβει μια δυσκολία, η οποία αφορά το αν θα υπάρχει εντολή κάτω από τις εντολές που μεταδίδουν τα μηνύματα, όπως μια εντολή **πες "Μπράβο παιδιά!"**, με την οποία ο παρουσιαστής συγχαίρει τους χορευτές. Αν δεν υπάρχει η εντολή **πες**, μπορούμε να χρησιμοποιήσουμε τις εντολές **μετάδωσε "Νίκος"** και **μετάδωσε "Βούλα"** και οι χορευτές να χορέψουν ταυτόχρονα (βλέπε εικόνα 13.61). Σε αντίθετη περίπτωση αντιμετωπίζουμε πρόβλημα (Γιατί;). Για την επίλυση αυτού, σκεφτόμαστε ότι ο παρουσιαστής πρέπει να περιμένει τους χορευτές να τελειώσουν για να τους συγχαρεί, οπότε πρέπει να στείλουμε τα μηνύματα με την εντολή **μετάδωσε και περίμενε**. Παρόλα αυτά, αν μεταδώσει και τα δύο μηνύματα με αυτή την εντολή, θα χορέψει ο πρώτος χορευτής, θα περιμένει ο παρουσιαστής να τελειώσει και μετά θα στείλει μήνυμα στο δεύτερο χορευτή. Γίνεται αντιληπτό, λοιπόν, ότι πρέπει να μεταδώσουμε το πρώτο μήνυμα με την εντολή **μετάδωσε "Νίκος"** και το δεύτερο με την εντολή **μετάδωσε "Βούλα" και περίμενε**, για να ακολουθήσει η εντολή πες.

Εικόνα 13.61

Εικόνα 13.62

Μαθησιακή δυσκολία



Εικόνα 13.63



Εικόνα 13.64 Για διασκέδαση (για πλάκα)

Ο σύνδεσμος για το πρόγραμμα: http://scratch.mit.edu/projects/hasapian/1053665

__Παράδειγμα 3__


 * Κολυμβητικοί αγώνες**

Οι θερινοί κολυμβητικοί αγώνες έχουν φτάσει στην τελική τους φάση. Η μοβ και η πορτοκαλί ομάδα είναι στον τελικό!!!!!!! Οι κολυμβητές μας καλούνται να τρέξουν το αγώνισμα της σκυτάλης 2x100m, άρα κάθε ομάδα αποτελείται από 2 κολυμβητές. Οι αθλητές μας ξεκινάνε από συγκεκριμένη θέση στο βατήρα της πισίνας (50m) και με το σφύριγμα του διαιτητή φεύγει η πρώτη σειρά. Το στυλ κολύμβησης είναι για τα πρώτα 50 μέτρα ελέυθερο. Όταν αυτοί φτάσουν και αγγίξουν το απέναντι άκρο της πισίνας, οι αθλητές της δεύτερης σειράς λαμβάνουν θέση εκκίνησης και πέφτουν μόνο όταν ο συμπαίκτης τους έχει επιστρέψει - τερματίσει. Στην επιστροφή τους οι κολυμβητές κολυμπούν σε στυλ ίπτιο. Ο τερματισμός του κάθε παίκτη καθορίζεται από το άγγιγμά του στο βατήρα. Με τον τερματισμό της δεύτερης σειράς αναδεικνύεται η νικήτρια ομάδα με αλλαγή στην κατάλληλη ενδυμασία του διαιτητή. Ας δημιουργήσουμε το πρόγραμμα που θα παρουσιάζει την παραπάνω σκυταλοδρομία.

__Σκέψεις πριν την υλοποίηση:__

Αρχικά πρέπει να σκεφτούμε τα αντικείμενα που θα πρωταγωνιστούν καθώς και το σκηνικό όπου θα τοποθετηθούν αυτά. Εφόσον έχουμε 2 ομάδες των 2 αθλητών, χρειαζόμαστε 4 αντικείμενα, ανά 2 να είναι όμοια μεταξύ τους, για να ξεχωρίζουν οι ομάδες (2 μoβ – 2 πορτοκαλί).Τα αντικείμενα-κολυμβητές τα επιλέγουμε από το μενού του Scratch "Διάλεξε νέα μορφή από το αρχείο" από το φάκελο People. Η εκκίνηση των αθλητών ξεκινά με το σφύριγμα του διαιτητή, επομένως αυτός θα αποτελεί ένα ακόμα αντικείμενο. Όμοια με την επιλογή των αθλητών γίνεται και η επιλογή του αντικειμένου διαιτητής από τον φάκελο People του μενού "Διάλεξε νέα μορφή από το αρχείο". Τα αντικείμενα θα πρέπει να τοποθετηθούν σε ένα σκηνικό που θα έχει τη μορφή πισίνας, στο οποίο θα απεικονίζονται και οι βατήρες που αποτελούν το σημείο τερματισμού. Για να δημιουργήσουμε λοιπόν το σκηνικό δεν έχουμε παρά να ανοίξουμε το μενού υπόβαθρα και να σχεδιάσουμε στη ζωγραφική το κατάλληλο σκηνικό. Τόσο για τα αντικείμενα όσο και το σκηνικό, μπορούμε είτε να εισάγουμε έτοιμες εικόνες είτε να σχεδιάσουμε δικά μας στη ζωγραφική του scratch όπως και χρησιμοποιούμε στην συγκεκριμένη περίπτωση (βλέπε εικόνα 13.65 ).

Δημιουργία Σκηνικού

Εικόνα 13.65


 * Αντικείμενα:**

__Διαιτητής__



Εικόνα 13.66

Ο διαιτητής διαδραματίζει σημαντικό ρόλο στο πρόγραμμά μας καθώς είναι το αντικείμενο που πρώτον δίνει το έναυσμα για να ξεκινήσει η σκυταλοδρομία και δεύτερον αναδεικνύει τον νικητή με τον τερματισμό των αθλητών. Για να πετύχει τα παραπάνω ο διαιτητής μας χρειάζεται __τρεις__ διαφορετικές ενδυμασίες. __Ενδυμασία διαιτητής:__ Ο διαιτητής στέλνει το μήνυμα "πάμε" στους αθλητές της πρώτης σειράς ώστε να ξεκινήσει η σκυταλοδρομία (βλέπε εικόνα 13.67). __Ενδυμασία μοβ νικητές:__ Ανάδειξη της μοβ ομάδας ως νικήτρια αν αυτή τερματίσει πρώτη (βλέπε εικόνα 13.68 ) __Ενδυμασία πορτοκαλί νικητές:__ Ανάδειξη της πορτοκαλί ομάδας ως νικήτρια αν αυτή τερματίσει πρώτη (βλέπε εικόνα 13.69).

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

. Εικόνα 13.67

Εικόνα 13.68

Εικόνα 13.69

Εικόνα 13.70

__Αθλητές__

__Πρώτης σειράς__



Εικόνα 13.71

Πορτοκαλί ομάδα

Εικόνα 13.72

Μοβ ομάδα

Όπως αναφέραμε πιο πάνω τα αντικείμενα αθλητές τα παίρνουμε έτοιμα από τον φάκελο People του Scratch. Ωστόσο πρέπει να τους φέρουμε στην κατάλληλη θέση. Δηλαδή αρχικά να τους περιστρέψουμε (βλέπε εικόνα 13.73 ), έπειτα να προσδιορίσουμε τη θέση τους στο βατήρα και τέλος να λάβουν θέση εκκίνησης. Αυτό το πετυχαίνουμε με την χρήση τον εντολών: Οι αθλητές της πρώτης σειράς ξεκινούν το αγώνισμα με το σφύριγμα του διαιτητή. Επομένως στον κώδικά τους θα πρέπει να λαμβάνουν το μήνυμα που τους στέλνει.Έτσι λοιπόν στον κώδικά τους έχουμε τοποθετήσει την εντολή **όταν λάβω "πάμε"**. Θα έχετε παρατηρήσει πώς οι κολυμβητές ακολουθούν μια καμπυλοειδή κίνηση κατά τη διάρκεια της βουτιάς τους στο νερό. Για να οπτικοποιήσουμε όσο το δυνατόν πιο καλά την πραγματική τους κίνηση χρησιμοποιούμε τις εντολές: στρίψε " " μοίρες** μέσα σε ένα βρόχο επανάληψης ώστε να πετύχουμε το άλμα προς τα επάνω και διαγώνια (βλέπε εικόνα 13.74 ) Αντίστοιχα για την καθοδική πορεία(άλμα προς τα κάτω και διαγώνια) χρησιμοποιούμε τις ίδιες εντολές με πριν μόνο που στρίβουμε τον αθλητή ίδιες μοίρες προς την αντίθετη κατεύθυνση (βλέπε εικόνα 13.75). Ακόμα με τη χρήση της εντολής **δείξε στην κατεύθυνση "90"** ο αθλητής μας ακολουθεί ευθύγραμμη κίνηση(βλέπε εικόνα 13.76 ). Για την κίνηση των αθλητών χρησιμοποιούμε την εντολή **τυχαία επιλογή από 1 μέχρι 10** με την οποία επιλέγει τυχαία το βήμα (μέσα από ένα διάστημα τιμών) με το οποίο θα κινηθεί (βλέπε 15.2). Όταν λοιπόν οι αθλητές πρώτης σειράς φτάσουν στο άκρο της πισίνας και το αγγίξουν (γκρι χρώμα) τότε αλλάζουν κατεύθυση και μεταδίδουν μήνυμα στους συμπαίκτες τους(κάθε αθλητής στον συμπαίκτη του) να λάβουν θέση στο βατήρα(βλέπε εικόνα 13.77 ). Για να επιτευχθεί αυτό χρειαζόμαστε αισθητήρες που θα ενεργοποιούνται με το άγγιγμα των αθλητών στο άκρο της πισίνας (γκρι χρώμα). Ο τερματισμός των αθλητών της πρώτης σειράς γίνεται και πάλι με τη χρήση αισθητήρων. Μόλις αγγίξουν το μαύρο χρώμα του βατήρα οι αθλητές της πρώτης σειράς μεταδίδουν το μήνυμα "πάμε1" στους συναθλητές τους ώστε αυτοί να ξεκινήσουν και έπειτα εξαφανίζονται από το σκηνικό με τη βοήθεια της εντολής **απόκρυψη**(βλέπε εικόνα 13.78 ).
 * πήγαινε στη θέση x: y:**
 * δείξε στην κατεύθυνση " "**
 * στρίψε " " μοίρες**
 * κινήσου " " βήματα

Εικόνα 13.73

Εικόνα 13.74

Εικόνα 13.75

Εικόνα 13.76

Εικόνα 13.77

Εικόνα 13.78

__Δεύτερης σειράς__

Όπως αναφέραμε και αρχικά οι αθλητές της δεύτερης σειράς είναι όμοιοι(σε εμφάνιση) με εκείνους της πρώτης. Άφού λοιπόν τους περιστρέψουμε κατάλληλα, τους τοποθετούμε σε θέση αναμονής δίπλα στο βατήρα(βλέπε εικόνα 13.79) Στη συνέχεια πρέπει να λάβουν το μήνυμα των συναθλητών τους προκειμένου να λάβουν θέση εκκίνησης(βλέπε εικόνα 13.80) κάνοντας χρήση της εντολής **όταν λάβω**. Με τον τερματισμό των αθλητών πρώτης σειράς οι αθλητές της δεύτερης λαμβάνουν μήνυμα "πάμε1" για την πορτοκαλί ομάδα ή "πάμε2" για την μοβ ομάδα με την βοήθεα της εντολής **όταν λαβω** και βουτάνε στο νερό. Η κίνησή τους είναι ακριβώς ίδια με εκείνη των συμπαικτών τους(βλέπε εικόνα 13.81 ). Έτσι ακολουθώντας την ίδια διαδρομή μόλις αγγίξουν το γκρι χρώμα στο άκρο της πισίνας αλλάζουν κατεύθυνση και οδεύουν προς τον τερματισμό. Με τον τερματισμό (άγγιγμα στο βατήρα) αυτών των αθλητών ολοκληρώνεται η σκυταλοδρομία. Όποιος αθλητής ακουμπήσει πρώτος, στέλνει μήνυμα στον διαιτητή "portokali wins" για την πορτοκαλί ομάδα(βλέπε εικόνα 13.82) και "mov wins" για την μοβ ομάδα(βλέπε εικόνα 13.83 ) με τη βοήθεια της εντολής **μετάδωσε**.

Εικόνα 13.79

Εικόνα 13.80

Εικόνα 13.81

Εικόνα 13.82

Εικόνα 13.83


 * Κώδικας:**

Διαιτητή

Εικόνα 13.84

Αθλητής πορτοκαλί πρώτης σειράς

Εικόνα 13.85

Αθλητής μοβ πρώτης σειράς

Εικόνα 13.86

Αθλητής πορτοκαλί δεύτερης σειράς

Εικόνα 13.87

Αθλητής μοβ δεύτερης σειράς



Εικόνα 13.88



Εικόνα 13.89

__Ερωτήσεις:__ 1) Πότε οι αθλητές της 2ης σειράς παίρνουν θέση στο βατήρα; 2) Αν οι αθλητές της 2ης σειράς είχαν μήνυμα όταν λάβω «λάβε θέση1» τι θα συνέβαινε; 3) Αν οι αθλητές της 1ης σειράς έστελναν και οι 2 το μήνυμα μετάδωσε «λάβε θέση1» τι θα συνέβαινε στους αθλητές της 2ης σειράς; 4) Αν και οι 2 αθλητές της 2ης σειράς είχαν μήνυμα όταν λάβω «πάμε1» τι θα συνέβαινε;
 * Αξιολόγηση!!**



Εικόνα 13.90

Απαντήσεις: 1) Από τον κώδικα των αθλητών της 1ης σειράς φαίνεται ότι τη στιγμή που αγγίζουν το γκρι χρώμα στέλνουν μήνυμα στους συναθλητές τους να λάβουν θέση στο βατήρα. Στον κώδικα των αθλητών της 2ης σειράς αυτό γίνεται φανερό στο σημείο όταν λάβω «λάβε θέση1» ή «λάβε θέση2» ανάλογα. 2) Σε περίπτωση όπου στον κώδικα και των 2 αθλητών της δεύτερης σειράς είχανε το μήνυμα όταν λάβω «λάβε θέση1» και οι 2 κολυμβητές θα πήγαιναν στο βατήρα την ίδια χρονική στιγμή. Αυτό θα συνέβαινε γιατί και οι 2 θα ενεργοποιούνταν από τον ίδιο αποστολέα με το ίδιο μήνυμα. Ακόμα, το μήνυμα του κολυμβητή της 1ης σειράς μετάδωσε «λάβε θέση2» δεν θα είχε κανένα παραλήπτη. 3) Αν οι αθλητές της 1ης σειράς έστελναν και οι 2 το μήνυμα μετάδωσε «λάβε θέση1» τότε ο αθλητής της 2ης σειράς που περιμένει να λάβει το μήνυμα όταν λάβω «λάβε θέση2» θα παρέμενε στην αρχική θέση του και δεν θα μετακινούνταν ποτέ προς το βατήρα. 4) Στην περίπτωση όπου και οι 2 αθλητές της 2ης σειράς είχαν μήνυμα όταν λάβω «πάμε1» τότε θα βουτούσανε και οι 2 στην πισίνα ταυτόχρονα τη στιγμή που τερματίζει ο αθλητής της 1ης σειράς που στέλνει μήνυμα μετάδωσε «πάμε1». Δηλαδή αν τερμάτιζε πρώτος ο κολυμβητής της 1ης σειράς που μεταδίδει μήνυμα μετάδωσε «πάμε2» κανένας από τους κολυμβητές που περιμένουν στο βατήρα δεν θα ξεκινούσε.

__Ας δούμε τώρα τα σημαντικότερα στιγμιότυπα του αγώνα!!__



Εικόνα 13.91



Εικόνα 13.92



Εικόνα 13.93



Εικόνα 13.94



Εικόνα 13.95



Εικόνα 13.96



Εικόνα 13.97



Εικόνα 13.98

Ο σύνδεσμος για το πρόγραμμα: []

__5. Εφαρμογές__

Εφαρμογή 1 Βρείτε 10 διαφορετικές σημαίες χωρών από τις εικόνες του google και βάλτε τις στο scratch. Με τη βοήθεια μηνυμάτων υλοποιήστε ένα σενάριο στο οποίο όταν ο χρήστης κάνει κλικ με το ποντίκι πάνω σε κάποια σημαία θα εμφανίζεται το όνομα της χώρας της.

Εφαρμογή 2 Βρισκόμαστε σε ένα λούνα παρκ και συγκεκριμένα στη ρόδα. Στην ουρά περιμένουν τρία παιδιά και απέναντί τους βρίσκεται ο εισπράκτορας, ο οποίος ελέγχει τη ρόδα με ένα μοχλό. Η ρόδα περιέχει τρία βαγόνια, ένα για κάθε παιδί. Ο πρώτος στην ουρά περιμένει σήμα από τον εισπράκτορα και όταν το λάβει ανεβαίνει στο πρώτο βαγόνι, ενώ ο δεύτερος κατά σειρά παίρνει τη θέση του. Ο εισπράκτορας αλλάζει τη θέση του μοχλού και η ρόδα ξεκινά να γυρίζει. Όταν το επόμενο ελεύθερο βαγόνι βρεθεί σε θέση επιβίβασης, ο εισπράκτορας σταματά τη ρόδα και ειδοποιεί τον επόμενο στη σειρά να ανέβει. Δημιουργείστε το κατάλληλο σκηνικό, σκεφτείτε τα αντικείμενα που συμμετέχουν και με τη βοήθεια των εντολών του κεφαλαίου υλοποιείστε το παραπάνω σενάριο.



Εικόνα 13.99

Εφαρμογή 3 Έστω ότι έχουμε την κάτοψη μίας πόλης με πέντε κτήρια και το δρόμο ανάμεσά τους. Τα τέσσερα κτήρια είναι διαφορετικού χρώματος το καθένα (μαύρο, πράσινο, μπλε, κίτρινο) και το ένα είναι το πυροσβεστικό τμήμα της πόλης, το οποίο βρίσκεται στην πάνω αριστερή γωνία της. Στην πόλη κυκλοφορεί ένας εμπρηστής, ο οποίος κινείται από το χρήστη πάνω, κάτω, αριστερά και δεξιά. Όταν ακουμπήσει κάποιο κτήριο, αυτό παίρνει φωτιά (αλλαγή ενδυμασίας) και αυτός κρύβεται. Τα κτήρια παρακολουθούνται από ένα φύλακα, ο οποίος βρίσκεται στο κέντρο της πόλης και καλεί την πυροσβεστική μόλις αντιληφθεί τη φωτιά. Ένα όχημα έρχεται από το τμήμα, σβήνει τη φωτιά και επιστρέφει σε αυτό, ενώ τότε ο εμπρηστής εμφανίζεται στην αρχική του θέση. Υλοποιήστε το παραπάνω πρόγραμμα χρησιμοποιώντας μηνύματα στις ακόλουθες περιπτώσεις: · Ο εμπρηστής στέλνει μήνυμα στο κτήριο και στο φύλακα ότι άναψε φωτιά. · Ο φύλακας στέλνει μήνυμα στην πυροσβεστική να στείλει πυροσβεστικό όχημα. · Το όχημα στέλνει μήνυμα στο κτήριο ότι έσβησε τη φωτιά και στον εμπρηστή να εμφανιστεί πάλι στην αρχική του θέση.

Εικόνα 13.100

ΕΡΩΤΗΣΕΙΣ ΚΑΤΑΝΟΗΣΗΣ 1) Ποιες εντολές χρησιμοποιούμε για την ανταλλαγή μηνυμάτων μεταξύ των αντικειμένων? 2) Έστω ότι έχουμε 2 αντικείμενα και το 1ο στέλνει ένα μήνυμα στο 2ο με την εντολή **μετάδωσε** **«ξεκίνα».** Ποια εντολή θα πρέπει να έχει στο σενάριό του το 2ο αντικείμενο ώστε να λάβει το μήνυμα? 3) Έστω ότι έχουμε 2 αντικείμενα και το 1ο περιμένει να λάβει μήνυμα από το 2ο με την εντολή **όταν λάβω «ξεκίνα».** Ποια εντολή πρέπει να έχει στο σενάριό του το 2ο αντικείμενο ώστε να στείλει το κατάλληλο μήνυμα? 4) Σε ποια παραδείγματα της καθημερινότητάς μας χρησιμοποιούμε ανταλλαγή μηνυμάτων? Αναφέρετε ενδεικτικά 3 (ερώτηση επιπέδου αξιολόγησης).

ΕΡΩΤΗΣΕΙΣ ΑΝΑΛΥΣΗΣ 5) Αναλύστε τι κάνει ο παρακάτω κώδικας Αντικείμενο1 Εικόνα 13.101 Αντικείμενο 2 Εικόνα 13.102

6) Μελετώντας τον παρακάτω κώδικα, θα συγχαρεί ποτέ ο προπονητής τους αθλητές του; Διακαιολογείστε την απάντησή σας. Προπονητής Εικόνα 13.103

Αθλητής 1 Εικόνα 13.104

Αθλητής 2 Εικόνα 13.105

ΕΡΩΤΗΣΕΙΣ ΣΥΝΘΕΣΗΣ

7) Σκεφτείτε και υλοποιήστε ένα πρόγραμμα αγώνα δρόμου 100 μέτρων. Σε αυτό ο διαιτητής θα δίνει το έναυσμα για την εκκίνηση 2 αθλητών από τη γραμμή αφετηρίας και θα ανακηρύσσει νικητή αυτόν που τερματίζει πρώτος. Οι αθλητές μπορούν να έχουν προκαθορισμένη κίνηση ή μπορείτε να χρησιμοποιήσετε εντολές της ενότητας 2 του κεφαλαίου 15 για τυχαίο αποτέλεσμα. 8) Επιλέξτε ένα πρόγραμμα του κεφαλαίου που περιέχει την εντολή **μετάδωσε και περίμενε** και τροποποιείστε τον κώδικα ώστε να εκτελεί την ίδια λειτουργία με το συνδυασμό των εντολών **μετάδωσε** και **περίμενε**.

__Ανακεφαλαίωση__  Συνοψίζοντας έχουμε τα εξής:

Η επικοινωνία στο scratch είναι κυρίως ένας προς πολλούς. Δηλαδή, ένα αντικείμενο στέλνει μέσω των εντολών **μετάδωσε** και **μετάδωσε και περίμενε** ένα μήνυμα το οποίο το λαμβάνουν όλοι. Από αυτούς θα αντιδράσουν μόνο εκείνοι οι οποίοι έχουν προετοιμαστεί για να λάβουν το αντίστοιχο μήνυμα με τη βοήθεια της εντολής **όταν λάβω**. Στα παραπάνω παραδείγματά μας είδαμε τις εξής περιπτώσεις: · Ένα αντικείμενο στέλνει ένα μήνυμα και αντιδρούν όλα τα αντικείμενα του σκηνικού ·  Ένα αντικείμενο στέλνει πολλά μηνύματα και τα διάφορα αντικείμενα του σκηνικού αντιδρούν είτε ξεχωριστά είτε σε ομάδες. Ακόμα, σε πολλές περιπτώσεις ένα αντικείμενο στέλνει ένα μήνυμα και περιμένει από όσα το λαμβάνουν να εκτελέσουν τον κώδικά τους για να μπορέσει το ίδιο να συνεχίσει την εκτέλεσή του. Σε τέτοιου είδους σενάρια μάθαμε να χρησιμοποιούμε την εντολή **μετάδωσε και περίμενε**. Με το κλείσιμο του κεφαλαίου είναι σημαντικό να μπορείτε να συνειδητοποιήσετε πόσο μας διευκολύνει η ανταλλαγή μηνυμάτων στην επικοινωνία των αντικειμένων σε σχέση με τους εναλλακτικούς τρόπους υλοποίησης.


 * **Εντολές** || **Επεξήγηση Εντολών** ||
 * [[image:13.metadwse.png]] || Στέλνει ένα μήνυμα της επιλογής μας ||
 * [[image:13.metadwse_kai_perimene.png]] || Στέλνει ένα μήνυμα της επιλογής μας και περιμένει μέχρι να τελειώσει η εκτέλεση ||
 * [[image:13.otan_lavw.png]] || Περιμένει να λάβει ένα συγκεκριμένο μήνυμα για να εκτελέσει τον κώδικα που ακολουθεί ||