Ο κόσμος του Robby

 

Ταυτότητα Σεναρίου

 

·         Τίτλος: Ο κόσμος του Robby

 

·         Γνωστικό Αντικείμενο: Εφαρμογές Πληροφορικής-Υπολογιστών

 

·         Διδακτική Ενότητα: Διερευνώ – Δημιουργώ - Ανακαλύπτω, Συνθετικές εργασίες. Δημιουργικές δραστηριότητες με χρήση πακέτων λογισμικού, προγραμματιστικών εργαλείων, υπηρεσιών του Internet, εκπαιδευτικού λογισμικού.

 

·         Τάξη: A' Λυκείου

 

·         Εκτιμώμενη Διάρκεια: 5 ώρες

 

Σύντομη ανασκόπηση σεναρίου

 

 

Στo πλαίσιo της εργασίας, οι μαθητές καλούνται να προγραμματίσουν μία εφαρμογή που παραπέμπει σε παιχνίδι (Εικόνα 16 - 1). Ο κεντρικός ήρωας είναι ο Robby και κινείται σε ένα πεδίο δράσης, όπου αλληλεπιδρά με διάφορες άλλες οντότητες.

 

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

Εικόνα 16 - 1

 

Στο τέλος κάθε παιχνιδιού, εμφανίζεται μήνυμα στον παίκτη που δηλώνει αν κέρδισε ή όχι και στην γραμμή κατάστασης φαίνονται οι πόντοι που συλλέχτηκαν. Ο έλεγχος των κινήσεων γίνεται με τα βέλη του πληκτρολογίου. Οι μαθητές μπορούν να κατασκευάσουν την «πίστα» όπως αυτοί θέλουν. H εικόνα 1 δείχνει ένα ενδεικτικό προτεινόμενο πεδίο.

 

 

AgentSheets, Ζωγραφική.

 

 

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

 

Για να λειτουργήσουν ορθά τα applets θα πρέπει ο υπολογιστής να έχει εγκατεστημένο το Java Runtime Environment (JRE) και ο φυλλομετρητής να είναι ενεργοποιημένος ως προς την εκτέλεση εντολών Java (Java enabled). To JRE μπορείτε να το κατεβάσετε από το Internet (http://www.java.com), αλλά για ευκολία εγκαθίσταται αυτόματα και κατά την εγκατάσταση του AgentSheets.

 

Συσχέτιση γνωστικού αντικειμένου και σεναρίου

 

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

 

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

 

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

 

Πρέπει να γίνουν αντιληπτά από τους μαθητές τα διακριτά στάδια ανάπτυξης ενός έργου λογισμικού (Σχεδίαση – Ανάλυση – Υλοποίηση - Έλεγχος).

 

Εκπαιδευτικές δραστηριότητες

 

Δραστηριότητα 1: «Ο κόσμος του Robby»

Γενικοί διδακτικοί στόχοι:

 

·         Να εξοικειωθούν με το προγραμματιστικό περιβάλλον.

·         Να χρησιμοποιήσουν σύγχρονα προγραμματιστικά εργαλεία για την επίλυση απλών προβλημάτων.

·         Να επιλύουν προγραμματιστικά κάποιο δοθέν πρόβλημα, αποδομώντας το κατάλληλα σε επιμέρους εργασίες.

·         Να αναπτύξουν ικανότητες μεθοδολογικού χαρακτήρα και να καλλιεργήσουν ελεύθερη σκέψη και έκφραση.

 

Ειδικοί διδακτικοί στόχοι:

 

·         Να μπορούν να ορίσουν τους απαραίτητους για ένα πρόβλημα πράκτορες και να αντιληφθούν την έννοια των διάφορων απεικονίσεων.

·         Να μπορούν να ορίσουν τις απεικονίσεις ενός πράκτορα βάσει όχι μόνο αισθητικών αλλά και λειτουργικών κριτηρίων.

·         Να κατανοήσουν την έννοια της συμπεριφοράς ενός πράκτορα και να την ταυτίσουν εννοιολογικά με το σύνολο των μεθόδων του.

·         Να ξεκαθαρίσουν τους τρόπους κλήσης μίας μεθόδου και τον τρόπο που αντιδρά ο αντίστοιχος πράκτορας σε αυτή.

·         Να αντιληφθούν την έννοια της μεταβλητής ως όνομα και ως τιμή.

·         Να κατανοήσουν τη σημασία της σειράς με την οποία εκτελούνται οι εντολές ενός προγράμματος.

 

Προαπαιτούμενα:

 

Για την υλοποίηση της συγκεκριμένης συνθετικής εργασίας πρέπει ο εκπαιδευτικός να έχει αποκτήσει εμπειρία στη δημιουργία προσομοιώσεων με το προγραμματιστικό περιβάλλον Αgentsheets και να έχει υλοποιήσει τουλάχιστον την προσομοίωση Virus Attack . Το ίδιο ισχύει και για τους μαθητές. Επίσης, οι μαθητές θα πρέπει να έχουν διδαχθεί την ενότητα 7 (Προγραμματισμός Υπολογιστή).

 

Χρονισμός εφαρμογής:

 

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

 

Προετοιμασία:

 

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

Ροή της δραστηριότητας:
Βήμα 1ο  (Διάρκεια: 1 διδακτική ώρα)

 

Αρχικά, θα πρέπει να γίνει μία αναλυτική περιγραφή του ζητούμενου της εργασίας. Ο διδάσκων θα διατυπώσει το πρόβλημα, λεκτικά αρχικά, και έπειτα θα το επιδείξει με τη βοήθεια του βιντεοπροβολέα (Εικόνα 16 - 1), ώστε να γίνει πλήρως αντιληπτή από τους μαθητές η επιθυμητή λειτουργικότητα. Οι μαθητές πρέπει να έχουν πλήρη γνώση της ακριβούς συμπεριφοράς του παιχνιδιού προκειμένου να συμμετέχουν ενεργά στην υλοποίησή του στα επόμενα βήματα. Να γίνει επίδειξη της περίπτωσης που ο Robby πέφτει σε παγίδα και της περίπτωσης που επιτυγχάνει να τερματίσει, προκειμένου να γίνει φανερή η αντίδραση του παιχνιδιού σε κάθε περίπτωση.

 

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

 

Οι προτεινόμενοι Πράκτορες:

 

Πράκτορας Robby: Είναι ο ήρωας του παιχνιδιού. Επειδή κινείται προς όλες τις κατευθύνσεις, θα έχει τέσσερις απεικονίσεις που τον δείχνουν στραμμένο στην κατάλληλη κατεύθυνση (προς τα μπροστά, πίσω, αριστερά, δεξιά).

 

Πράκτορας Τοίχος: Τα αντικείμενα τύπου Τοίχος οριοθετούν το πεδίο κίνησης του Robby. Ο πράκτορας αυτός έχει μόνο μία απεικόνιση.

 

Πράκτορας Πετράδι: Οι πράκτορες τύπου Πετράδι συλλέγονται από τον Robby και του  δίνουν πόντους. Έχουν δύο απεικονίσεις, ένα διαμάντι και ένα ρουμπίνι .

 

Πράκτορας Παγίδα: Έχει δύο απεικονίσεις. Μία για την απενεργοποιημένη (κλειστή) μορφή που επιτρέπει τη διάβαση του ήρωα και μία για την ενεργοποιημένη (ανοιχτή) που τον καταστρέφει.

 

Πράκτορας Προορισμός: Έχει μία απεικόνιση και δείχνει το σημείο που πρέπει να φτάσει ο Robby προκειμένου να τερματίσει.

 

Εικόνα 16 - 2

 

Οι μαθητές ενεργοποιούν έπειτα το πρόγραμμα Agentsheets προκειμένου να δημιουργήσουν τους παραπάνω πράκτορες. Επιλέγουν Αρχείο->Νέο Έργο. Καθορίζουν το όνομα έργου και τις διαστάσεις των πρακτόρων. Σημειώνεται ότι όλοι οι πράκτορες ενός έργου έχουν τις ίδιες διαστάσεις και αυτές δεν είναι δυνατό να αλλάξουν μετά τη δημιουργία του. Γίνεται εστίαση στην Εικονοθήκη του έργου (Εικόνα 16 - 2), που στη φάση αυτή είναι κενή και εξετάζονται οι επιλογές πάνω σε αυτή.

 

Εικόνα 16 - 3

 

Για τη δημιουργία νέου πράκτορα επιλέγεται το αντίστοιχο κουμπί Νέος Πράκτορας, ενώ για τις διάφορες απεικονίσεις Νέα Απεικόνιση, έχοντας πάντα επιλεγμένο τον πράκτορα για τον οποίο προορίζεται η απεικόνιση. Με διπλό κλικ επάνω σε μια απεικόνιση ή με την επιλογή Επεξεργασία απεικόνισης (Εικόνα 16 - 3), την τροποποιούμε με δύο τρόπους: είτε κάνοντας χρήση των σχεδιαστικών εργαλείων που προσφέρονται, είτε εισάγοντας εικόνα από εξωτερικό αρχείο με Αρχείο->Εισαγωγή Εικόνας.

 

Για τις απεικονίσεις των πρακτόρων οι μαθητές μπορούν να εισάγουν τις διαθέσιμες εικόνες. Εναλλακτικά, και ειδικότερα για τους πράκτορες Τοίχος, Πετράδι και Προορισμός - που είναι απλούστεροι - μπορούν να σχεδιάσουν μόνοι τους τις απεικονίσεις με τα σχεδιαστικά εργαλεία ή ακόμη και να δημιουργήσουν εικόνες στη Ζωγραφική και έπειτα να τις εισάγουν. Οι πράκτορες είναι τώρα έτοιμοι (Εικόνα 16 - 4).

 

Εικόνα 16 - 4

 
 
Βήμα 2ο (Διάρκεια: 1 διδακτική ώρα)

 

Στο στάδιο αυτό θα δημιουργηθεί το Πεδίο Εργασίας του παιχνιδιού. Οι μαθητές επιλέγουν Αρχείο->Νέο Πεδίο Εργασίας και ανοίγει ένα κενό πεδίο. Με Αρχείο->Φόρτωμα Φόντου εισάγουν το φόντο που υπάρχει στον φάκελο με τις εικόνες. Έχοντας επιλεγμένο τον προς τοποθέτηση πράκτορα και με χρήση του εργαλείου εισαγωγής, τοποθετούνται στο πεδίο οι απαραίτητοι πράκτορες. Υπενθυμίζεται εδώ ότι η διαρρύθμιση του πεδίου δεν είναι αυστηρά καθορισμένη. Οι μαθητές μπορούν να προσαρμόσουν το πεδίο όπως θέλουν αρκεί να εξυπηρετείται ο σκοπός. Αν ο εκπαιδευτικός προτιμά να δουλεύουν όλοι οι μαθητές στο ίδιο πεδίο μπορεί να δείξει το προτεινόμενο (Εικόνα 16 - 5) στον βιντεοπροβολέα και να τους ζητήσει να το μεταφέρουν στο έργο τους.

 

Εικόνα 16 - 5

 

Με Αρχείο->Αποθήκευση αποθηκεύεται το έτοιμο πλέον πεδίο Εργασίας.

 

Ξεκινάμε μια συζήτηση για τις συμπεριφορές των πρακτόρων. Ακούμε τις απόψεις των μαθητών και τους καθοδηγούμε με ερωτήσεις για το τι κάνει πρακτικά κάθε πράκτορας. Αποφασίζουμε τελικά ότι ο πράκτορας Τοίχος δεν έχει κάποια συμπεριφορά. Ο Robby μετακινείται προς την κατεύθυνση που ορίζουν τα βέλη του πληκτρολογίου και ελέγχει αν μπροστά του έχει τοίχο ή αν έχει φτάσει σε τερματική κατάσταση (ανοιχτή παγίδα ή προορισμός). Τα Πετράδια συλλέγονται και δίνουν πόντους και τέλος ο πράκτορας Παγίδα ανοίγει και κλείνει κατά διαστήματα.

 

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

 

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

 

Υπάρχουν μέθοδοι που εκτελούνται έπειτα από την ρητή τους κλήση, άλλες που εκτελούνται καθ' όλη τη διάρκεια λειτουργίας του προγράμματος και άλλες αυτόματα μόλις δημιουργηθεί κάποιος πράκτορας.

 

Να γίνει στο σημείο αυτό σύνδεση των παραπάνω με τους προκαθορισμένους Ενεργοποιητές του Agentsheets. Οι μαθητές επιλέγουν Εργαλεία->Συλλογή Ενεργοποιητών και ανοίγουν έτσι το αντίστοιχο παράθυρο (Εικόνα 16 - 6). Γίνεται ανάλυση της λειτουργίας κάθε Ενεργοποιητή.

 

Εικόνα 16 - 6

 

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

 

Έπειτα επιλέγουμε Εργαλεία->Συλλογή Συνθηκών (Εικόνα 16 - 7) μελετάμε συνοπτικά τις προκαθορισμένες συνθήκες και κάνουμε συσχέτιση με την υποενότητα «Εντολές Συνθήκης» της  θεωρίας. Με Εργαλεία->Συλλογή Δράσεων (Εικόνα 16 - 8), ζητάμε από τους μαθητές να μελετήσουν τα προκαθορισμένα μηνύματα στα οποία μπορεί να αντιδράσει ένας πράκτορας. Κάποια από αυτά θα αναλυθούν εκτενώς παρακάτω όταν θα γίνει η συγγραφή των μεθόδων.

 

Εικόνα 16 - 7

 

Εικόνα 16 - 8

Βήμα 3ο  (Διάρκεια: 1 διδακτική ώρα)

 

Συμπεριφορά Πράκτορα Robby:

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

 

Ο προγραμματισμός της συμπεριφοράς αυτής θα γίνει βηματικά. Να γίνει στο σημείο αυτό η εννοιολογική ταύτιση της συμπεριφοράς ενός πράκτορα με το σύνολο των μεθόδων στις οποίες αυτός αντιδρά. Αρχικά θέλουμε να υλοποιηθεί η μέθοδος που μετακινεί το Robby με τα βέλη προς όλες τις κατευθύνσεις, χωρίς έλεγχο του πεδίου.

 

Ρωτάμε τους μαθητές πότε πρέπει να καλείται αυτή η μέθοδος και συζητάμε τις απαντήσεις τους. Σημειώνουμε ότι οποιαδήποτε στιγμή της εκτέλεσης αν πληκτρολογηθεί κάποιο βέλος ο Robby πρέπει να αντιδράσει και αποφασίζουμε τελικά ότι ο Ενεγοποιητής της μεθόδου θα είναι «Κατά τη λειτουργία».

 

Επιλέγουμε από την Εικονοθήκη τον πράκτορα Robby και είτε κάνουμε διπλό κλικ είτε δεξί κλικ -> Επεξεργασία Συμπεριφοράς για να ανοίξει το αντίστοιχο παράθυρο του πράκτορα όπου θα γίνει η συγγραφή των μεθόδων του. Υπάρχει ήδη μία κενή μέθοδος «Κατά τη λειτουργία» πάνω στην οποία θα δουλέψουμε. Μελετάμε τη δομή του (κενού) Κανόνα που υπάρχει σε αυτή και την εκμεταλλευόμαστε για συζήτηση πάνω στις δομές Ελέγχου Αν...Τότε.

 

Καλούμε τους μαθητές να αναρωτηθούν για την συνθήκη που πρέπει να ικανοποιείται ώστε ο Robby να κινηθεί προς τα πάνω. Η απάντηση είναι προφανώς «όταν πατηθεί το πάνω βέλος». Αναζητούν λοιπόν οι μαθητές στις προκαθορισμένες συνθήκες την κατάλληλη. Εντοπίζουν την συνθήκη «Πληκτρολογηθεί». Ο εκπαιδευτικός αναφέρει τη έννοια του συμβάντος - μηνύματος πληκτρολογίου ως μια δράση του χρήστη στο πληκτρολόγιο, την οποία αντιλαμβάνεται - ακούει ο πράκτορας Robby και στην οποία αντιδρά. Εισάγουμε τη δράση αυτή στον πρώτο κανόνα της μεθόδου κάνουμε κλικ στην απεικόνιση του κουμπιού που περνιέται ως παράμετρος στη μέθοδο και έπειτα πληκτρολογούμε το πάνω βέλος για να ορίσουμε τη συνθήκη.

 

Απομένει να ορίσουμε τι θα κάνει ο Robby όταν ειδοποιηθεί ότι πατήθηκε το πλήκτρο. Θα πρέπει προφανώς να κινηθεί προς τα πάνω, αφού όμως αλλάξει πρώτα την κατεύθυνσή του, ώστε να είναι και οπτικά ορθή η κίνηση. Εισάγουμε τις δράσεις Αλλάζω και Μετακινούμαι αφού επεξηγήσουμε τη λειτουργία τους και ολοκληρώνουμε έτσι τον πρώτο κανόνα (Εικόνα 16 - 9.

 

Εικόνα 16 - 9

 

Με την ίδια ακριβώς λογική προσθέτουμε τους κανόνες για την κίνηση προς όλες τις κατευθύνσεις (Εικόνα 16 - 10).

 

Εικόνα 16 - 10

 

Καλούμε τους μαθητές να δοκιμάσουν τις αντιδράσεις του Robby στα βέλη κατά την εκτέλεση του παιχνιδιού. Ο πράκτορας κάνει ακριβώς αυτά για τα οποία προγραμματίστηκε: δε λαμβάνει υπόψη του αν βαδίζει σε Τοίχο ή αν βρίσκεται πάνω σε ενεργή παγίδα, παρά μόνο κινείται όπου τον οδηγήσει ο χρήστης. Πρέπει να προσθέσουμε στη μέθοδο που δημιουργήσαμε προηγουμένως τον κατάλληλο έλεγχο που θα «μπλοκάρει» την κίνηση του Robby όταν κινείται προς Τοίχο. Συγκεκριμένα όποτε πληκτρολογείται κάποιο βέλος πρέπει να ελέγχεται αν στην κατεύθυνση προς την οποία οδηγεί αυτό τον Robby υπάρχει Τοίχος, οπότε και αποτρέπεται η μετακίνηση.

 

Θα οριστούν λοιπόν νέοι κανόνες για τον έλεγχο αυτό. Οι μαθητές εξετάζουν τη συνθήκη Δω όταν αυτή χρησιμοποιείται σε συνδυασμό με τα βέλη (Εικόνα 16 - 11). Με τη συνθήκη αυτή δίνεται στον πράκτορα που τη χρησιμοποιεί η δυνατότητα να ελέγξει τους πράκτορες που βρίσκονται στις άμεσα γειτονικές του θέσεις. Παράμετροι είναι η σχετική με αυτόν θέση και η προς έλεγχο γειτονική απεικόνιση. Η συνθήκη της Εικόνας 16 -12 για παράδειγμα ελέγχει αν στα αριστερά του πράκτορα που την εκτελεί υπάρχει πράκτορας Τοίχος. Ο έλεγχος εδώ γίνεται βάσει της απεικόνισης και όχι του πράκτορα. Παρόμοιος έλεγχος σε επίπεδο πράκτορα γίνεται με τη συνθήκη «Αν δω Πράκτορα». Στη συγκεκριμένη περίπτωση ο πράκτορας έχει μία μόνο απεικόνιση, οπότε οι δύο συνθήκες έχουν την ίδια λειτουργία.

 

Εικόνα 16 - 11

 

Τι πρέπει λοιπόν να κάνει ο Robby αν συναντήσει τοίχο και ο χρήστης του πει να κινηθεί προς σε αυτόν; Πρέπει απλά να αλλάξει κατεύθυνση, αλλά να μη προχωρήσει επάνω στον τοίχο.

Το θέμα που τίθεται τώρα είναι σε ποιο σημείο της μεθόδου θα μπουν οι νέοι κανόνες ελέγχου. Το θέμα αυτό σχετίζεται με τη σειρά εκτέλεσης των εντολών μιας μεθόδου. Προφανώς η εν λόγω μέθοδος που εκτελείται καθ’ όλη τη λειτουργία του παιχνιδιού ελέγχει τις συνθήκες μία - μία από πάνω προς τα κάτω. Αν οι νέοι κανόνες προστεθούν στο τέλος της μεθόδου, θα έπονται αυτών που προκαλούν την κίνηση του Robby και δεν υπάρχει η επιθυμητή λειτουργικότητα.

Συνδυάζοντας όλα τα παραπάνω συμπληρώνουμε τη μέθοδο με την προσθήκη ελέγχου για Τοίχο στην αρχή της μεθόδου (Εικόνα 16 - 12).

 

Εικόνα 16 - 12

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

 

Εξετάζουμε μαζί με τους μαθητές τη συνθήκη Είμαι Στοιβαγμένο..  και εξηγούμε τη συμπεριφορά της. Διευκρινίζουμε ότι ο έλεγχος γίνεται σε επίπεδο απεικόνισης και ότι ο αντίστοιχος έλεγχος σε επίπεδο πράκτορα γίνεται με τη συνθήκη Είμαι στοιβαγμένο..από ένα. Ξεκαθαρίζουμε ότι σε κάθε τερματική κατάσταση του παιχνιδιού εμφανίζεται μήνυμα σε παράθυρο με το αποτέλεσμα και έπειτα γίνεται επαναφορά του πεδίου στην τελευταία του αποθηκευμένη μορφή.

 

Εξετάζονται τέλος οι δράσεις Εξαφανίζω, Show Message και Επαναφέρω την αρχική προσομοίωση και ολοκληρώνεται η μέθοδος where_i_am (Εικόνα 16 - 13).

Εικόνα 16 - 13

 

Εικόνα 16 - 14

 

Ρωτάμε τους μαθητές ποιος και πότε θα καλεί τη μέθοδο αυτή και συζητάμε τις απόψεις τους. Προφανώς ο ίδιος ο πράκτορας Robby ελέγχει μέσω αυτής της μεθόδου τη θέση του κάθε φορά που μετακινείται. Προστίθεται λοιπόν η κλήση στην αρχική μέθοδο (Εικόνα 16 - 14) και ολοκληρώνεται έτσι η συμπεριφορά του πράκτορα Robby.

 

Βήμα 4ο (Διάρκεια: 1 διδακτική ώρα)

 

Στο στάδιο αυτό οι μαθητές θα υλοποιήσουν τη συμπεριφορά των πρακτόρων Παγίδα και Πετράδι, όπως αυτές συζητήθηκαν στο Βήμα 2.

 

Συμπεριφορά Πράκτορα Παγίδα:

Οι πράκτορες αυτού του τύπου πρέπει περιστασιακά να αλλάζουν απεικόνιση ώστε να γίνονται ενεργοί, να παραμένουν έτσι για σύντομο χρονικό διάστημα και έπειτα να επανέρχονται στην αρχική ακίνδυνη κατάστασή τους. Αυτή η εναλλαγή καταστάσεων πρέπει να γίνεται ακανόνιστα και φαινομενικά τυχαία ώστε να μην καταφέρνει ο Robby εύκολα να «μαντεύει» την αντίδρασή τους και να τις αποφεύγει.

 

Η μέθοδος που αλλάζει ψευδοτυχαία την κατάσταση της παγίδας είναι η change (Εικόνα 16 - 15). Αυτή εξετάζει κάθε φορά την απεικόνιση της παγίδας που την καλεί και με πιθανότητα 50% την ανοίγει αν είναι κλειστή και το αντίστροφο. 

 

Εικόνα 16 - 15

Οι παγίδες θα αλλάζουν κατάσταση-απεικόνιση σε όλη τη διάρκεια της λειτουργίας του παιχνιδιού. Συμπεραίνουμε λοιπόν ότι η change θα καλείται σε μία μέθοδο με ενεργοποιητή «Κατά τη λειτουργία». Εντούτοις, αν η change καλείται συνεχώς, χωρίς καμία συνθήκη, οι παγίδες θα αλλάζουν κατάσταση συνεχώς και αστραπιαία και ουσιαστικά θα είναι σαν να «αναβοσβήνουν». Πρέπει λοιπόν η change να καλείται κάθε ένα συγκεκριμένο χρονικό διάστημα, για παράδειγμα Μία φορά κάθε 0.5 δευτερόλεπτα.

 

Συνδυάζοντας τα παραπάνω ολοκληρώνουμε τη συμπεριφορά του πράκτορα Παγίδα (Εικόνα 16 – 16).

 

Εικόνα 16 - 16

 

Συμπεριφορά Πράκτορα Πετράδι:

Όταν ο Robby συναντήσει έναν πράκτορα τύπου Πετράδι, τότε το «συλλέγει» και οι πόντοι που έχει αυξάνονται ανάλογα με το είδος του. Αν δούμε τώρα τη συμπεριφορά αυτή  από την πλευρά του πράκτορα Πετράδι, όταν αυτό βρεθεί κάτω από τον Robby, αυτό «συλλέγεται» και δίνει κάποιους πόντους στον παίκτη. Ορίζουμε ότι το ρουμπίνι δίνει 20 πόντους ενώ το διαμάντι 10.

 

Οι μαθητές πρέπει εύκολα τώρα να εντοπίσουν ότι η μέθοδος θα έχει ενεργοποιητή «Κατά τη λειτουργία». Η μέθοδος (Εικόνα 16 - 17) θα έχει δύο κανόνες, έναν για κάθε Πετράδι εξαιτίας των διαφορετικών πόντων που δίνει το καθένα. Οι συνθήκες εντοπίζουν το είδος του Πετραδιού (Δω) που είναι στοιβαγμένο κάτω από Robby και οι δράσεις το συλλέγουν εξαφανίζοντάς το και τέλος αυξάνουν τους πόντους αυξάνοντας τη μεταβλητή points. Συζητάμε τη δράση Θέτω την ιδιότητα συσχετίζοντάς την με την υποενότητα «Εντολές Ανάθεσης» της θεωρίας.

Εστιάζουμε τώρα στη μεταβλητή points. Πρόκειται για μία μεταβλητή προσομοίωσης και δεν σχετίζεται με συγκεκριμένο πράκτορα. Μπορεί να προσπελαστεί από οποιοδήποτε σημείο του κώδικα και από όλους τους πράκτορες.

 

Εικόνα 16 - 17

 

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

 

Βήμα 5ο (Διάρκεια: 1 διδακτική ώρα)

 

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

 

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

 

Αυτό που θέλουμε λοιπόν είναι σε κάθε τερματική κατάσταση, πριν την επαναφορά της αρχικής προσομοίωσης να εμφανίζονται στην γραμμή κατάστασης οι πόντοι. Προσθέτουμε τη δράση όπως φαίνεται στην Εικόνα 16 - 18.

 

Εικόνα 16 - 18

 

Μία ακόμη εμφανής έλλειψη είναι η απουσία ηχητικών εφέ που μπορούν να ζωντανέψουν την εφαρμογή. Η δράση Αναπαράγω Ήχο δίνει αυτή τη δυνατότητα παραγωγής ήχου και προσφέρει διάφορους προκαθορισμένους ήχους από τους οποίους οι μαθητές μπορούν να επιλέξουν. Κάθε φορά που ο Robby συλλέγει ένα Πετράδι θα παράγεται ένας ήχος (Εικόνα 16 - 19).

 

Εικόνα 16 - 19

 

Εικόνα 16 - 20

 

Επίσης ήχος που παραπέμπει σε εμπόδιο θα αναπαράγεται όποτε ο Robby προσκρούει σε τοίχο (Εικόνα 16 - 20). Οι παγίδες επίσης ηχούν όταν ανοίγουν (Εικόνα 16 - 21).

Εικόνα 16 - 21

Όταν ο Robby πέφτει σε ενεργή παγίδα θα ακούγεται ήχος αποτυχίας και τέλος, όταν τερματίζει επιτυχώς, θα ηχεί το αντίστοιχο εφέ (Εικόνα 16 - 22).

 

Εικόνα 16 - 22

Προτάσεις για επεκτάσεις ή διαφοροποιήσεις

 

Στο αρχείο (ekpaideutikos.zip) παρατίθεται η προσομοίωση σε μορφή πηγαίου προγράμματος. Ο εκπαιδευτικός μπορεί να επέμβει δημιουργώντας τις δικές του παραλλαγές – επεκτάσεις στην παρούσα δραστηριότητα.