Κεφάλαιο 15

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

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

===**Προτεινόμενος σύνδεσμος :**===

1. [] Αυτός ο σύνδεσμος παρουσιάζει ένα παράδειγμα μιας γεννήτριας παραγωγής τυχαίων αριθμών στο Scratch.

2.http://ictmindtools.net/scratch/sound_grapher.htm Εδώ περιλαμβάνεται ένα script για ένα sound grapher. Οι χρήστες μπορούν να πειραματιστούν με τη εφαρμοργή διαφορετικών αριθμών για είναι σε θέση να ανακαλύψουν πειραματιζόμενοι, τις διάφορες λειτουργίες του.

3.[] Σε αυτό το σύνδεσμο του εκπαιδευτικού Γιώργου Φεσάκη και στο αρχείο
 * [|**LACT15_BASIC_MATH_GAME.zip**] **οι μαθητές μπορούν να βρουν ένα χαρακτηριστικό παράδειγμα που περιγράφει τις αρχές που αφορούν σε μαθητικές έννοιες και το πως αναπαρίστανται στο Scratch.

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

5.[] Παραδείγματα και επεξηγήσεις κάθε εντολής στην παλέτα operators.

6..[] Σε αυτό τον σύνδεσμο και στο αρχείο ** [|**LACT07_CLOCK.zip**] ** οι χρήστες μπορούν να βρον μια μαθηματική εφαρμογή. Είναι ένας μικρόκοσμος που αφορά στα μαθηματικά και συγκεκριμένα στην ώρα .Αλλάζοντας την ώρα ή λεπτά οι δείκτες μετακινούνται αναλόγως.Ενδείκνυται για μικρά παιδιά.

7.[] Σε αυτό το σύνδεσμο περιλαμβάνεται το παράδειγμα Amazing Maze όπου μεταξύ των προγραμματιστικών εννοιών αναφέρονται και ένα παράδειγμα (Random Numbers), για την επιλογή τυχαίων ακεραίων δοθείσης συγκεκριμένης εμβέλειας.

8.[|http://users.soe.ucsc.edu/~karplus/scratch_programs/RPN_calculator.php] Αυτόσ ο σύνδεσμος περιέχει ένα μαθηματικό παράδειγμα εφαρμογής ενός προγράμματος στο Scratch(RPN Calculator) από ένα site δημιουργημένο από τρεις καθηγητές του Abe's School.

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

__//15. Τυχαιότητα και μαθηματικές εκφράσεις για παιχνίδια, εκπαιδευτικές εφαρμογές, ζωγραφική//__ // Μαθησιακοί στόχοι // Να κατανοούν την έννοια της τυχαίας επιλογής αριθμών. Να κατανοούν την αξία της τυχαίας επιλογής αριθμών σε διαφορετικές εφαρμογές (ζωγραφική, παιχνίδια κτλ.) Να αξιοποιούν την εντολή για παραγωγή τυχαίων αριθμών στην παλέτα τελεστές. Να μπορούν να συνδυάζουν αυτή την νέα γνώση με τη χρήση μεταβλητών. Να αξιολογούν περιπτώσεις όπου κρίνεται αναγκαία η χρήση των τυχαίων αριθμών (πχ ρίψη ζαριού). Να χρησιμοποιούν αποδοτικά τους τυχαίους αριθμούς στα προγράμματά τους. Χαρακτηριστικά Ο μαθητής έρχεται σε επαφή με μαθηματικές και λογικές πράξεις. Επίσης, μαθαίνει την έννοια της τυχαίας επιλογής αριθμών (random) και μπορεί να συνδυάσει τη νέα γνώση με τη χρήση μεταβλητών. Κυρίως μελετά την αξία της τυχαιότητας και των υπόλοιπων τελεστών για τη δημιουργία παιχνιδιών, ζωγραφιών κτλ. //Παραδείγματα // Ο μαθητής φτιάχνει μια κλήρωση με πρωταγωνιστές τους φίλους του και εμφανίζει στην οθόνη το όνομα που τυχαία επιλέγεται προσθέτοντας γραφικά και μουσική. Κάνε τα κινέζικα κουλουράκια της τύχης!! «κρύψε» μια πρόβλεψη σε κάθε ενα από τα κουλουράκια που θα φτιάξεις και δες τι θα τύχεις! Κτλ.


 * 1. Εισαγωγή στους τυχαίους αριθμούς**
 * 2. Παραγωγή και Χρήση τυχαίων αριθμών**
 * 2.1. Τυχαίοι αριθμοί και μεταβλητές**
 * 2.2 Παραδείγματα Τυχαίων μεταβλητών**

 = “One of the best things about paintings is their silence-which prompts reflection and random reverie.” =

 Ένα από τα καλύτερα πράγματα για τη ζωγραφική είναι η σιωπή, η οποία ωθεί στον προβληματισμό και στην τυχαία ονειροπόληση." Mark Stevens 

//**1. Εισαγωγή στους τυχαίους αριθμούς**

Πιο ολοκληρωμένα, τυχαίο είναι ένα γεγονός του οποίου τα αποτελέσματα δεν είναι πάντα τα ίδια κάθε φορά που αυτό συμβαίνει. Παίζουμε τζόκερ κερδίζουμε μία φορά αυτό δεν σημαίνει ότι θα κερδίζουμε πάντα.
 * Πολλές φορές στην καθημερινότητα ακούμε τον όρο τύχη. Για παράδειγμα ήταν τυχερός που κέρδισε το τζόκερ, ήταν τυχερή η ομάδα Χ που κέρδισε τον αγώνα στο 90’ και διάφορα άλλα. Η τύχη και το τυχαίο είναι ένα συμβάν, ένα γεγονός το οποίο συμβαίνει χωρίς να έχουμε προσπαθήσει να το πετύχουμε, για παράδειγμα βάζουμε στόχο να γράψουμε καλά στο τεστ της φυσικής και για αυτόν τον σκοπό διαβάζουμε κάθε μέρα από 2 ώρες. Φυσικά έχοντας διαβάσει τόσο καλά ,έρχεται και ένας καλός βαθμός στο τεστ. Το αποτέλεσμα των πράξεων μας δεν είναι τυχαίο γιατί διαβάσαμε πολύ καλά και οι κόποι μας ανταμείφτηκαν. Ας δούμε τώρα το ίδιο παράδειγμα από την αντίθετη εκδοχή. Έστω ότι δεν καθόμαστε πολλές ώρες να διαβάσουμε αλλά διαβάζουμε επιλεκτικά 4 ασκήσεις μία μέρα πριν το τεστ. Πηγαίνουμε να γράψουμε και βλέπουμε μπροστά μας να μας ζητούν να απαντήσουμε σε αυτές τις τέσσερεις ασκήσεις. Σε αυτή την περίπτωση είχαμε τύχη γιατί από όλες τις ασκήσεις εμείς επιλέξαμε 4 και έπεσαν συγκεκριμένα αυτές. Άμα επαναληφθεί αυτή η μέθοδος διαβάσματος ,τα αποτελέσματα δεν θα είναι τα ίδια.

Δοκιμάστε το μόνοι σας.... Από μία τράπουλα με 54 φύλλα βγάλτε έξω όλες τις φιγούρες και κρατήστε όλες τις καρδίες από τον άσσο μέχρι το δέκα. Ανακατέψτε τα δέκα φύλλα όπως θέλετε και έπειτα ανοίξτε ένα ένα τα φύλλα με την σειρά και γράψτε σε ένα χαρτί την σειρά που εμφανίστηκαν και τι ήταν το κάθε φύλλο πχ: πρώτο 9, δεύτερο 2 ... Επαναλάβατε το για 5 φορές το ανακάτεμα και το άνοιγμα των φύλλων. Μετά την ολοκλήρωση της καταγραφής και των 5 επαναλήψεων σας μελετήστε το χαρτί με τα αποτελέσματα που γράψατε. Θα δείτε ότι κάθε άνοιγμα των φύλλων έχει διαφορετική σειρά κάθε φορά. Το παραπάνω συμβαίνει γιατί ανακατεύαμε τα φύλλα τυχαία και κάθε φορά ερχόταν άλλο φύλλο στην πρώτη θέση από ότι στο πρώτο μοίρασμα και ούτω καθεξής. **//

__**Παράδειγματα**__



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

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


 * //2.//** **//__Παραγωγή τυχαίων αριθμών__//**

Αφού έχουμε κατανοήσει την έννοια του τυχαίου και της τυχαιότητας τώρα είναι πολύ εύκολο να καταλάβουμε πώς το scratch παράγει τυχαίους αριθμούς. Λοιπόν, ας πάμε να δούμε τώρα πως το scratch μπορεί παράγει τυχαίους αριθμούς. Έστω πως είστε σπίτι σας και θέλετε παγωτό. Έχετε να επιλέξετε ανάμεσα σε πέντε διαφορετικές γεύσεις παγωτού αλλά θέλετε να το κάνετε τυχαία γιατί και οι πέντε σας αρέσουν και δεν θέλετε μόλις επιλέξετε μία μετά να λέτε γιατί τελικά δεν πήρα την άλλη ή την άλλη...Σε αυτό το σημείο έρχεται το scratch και σας δίνει την λύση. Χρησιμοποιώντας την εντολή «τυχαία επιλογή από x μέχρι y»(όπου x και y είναι το εύρος τιμών που επιθυμείτε), μπορείτε να επιλέξετε τυχαία την γεύση του παγωτού που θέλετε ή οτιδήποτε άλλο δεν θέλετε να είναι συγκεκριμένο αλλά τυχαίο. Ο παρακάτω κώδικας επιλέγει τυχαία ανάμεσα στις 5 ενδυμασίες(δηλαδή τις γεύσεις του παγωτού σας) που έχετε ορίσει στο αντικείμενο σας.(Τρέξε το αρχείο Κ15_2.sb)

Εικόνα 15.1 Συγκεκριμένα, αυτό που σας δίνει τις διαφορετικές ενδυμασίες στο αντικείμενο σας είναι η εντολή **//«αλλαγή σε ενδυμασία τυχαία επιλογή από 1 μέχρι 5».//** Η εντολή αυτή επιστρέφει τους αριθμούς από 1 μέχρι **και** 5 όπου στο παράδειγμα μας αυτοί οι αριθμοί αντιστιχούν στις 5 διαφορετικές ενδυμασίες του αντικειμένου μας.Δυο από τα πιθανά τυχαία αποτελέσματα που μπορεί να δώσει ο παραπάνω κώδικας είναι:

Εικόνα 15.2

Είναι η ίδια περίπτωση όπως αυτή που κάναμε πριν με τα τραπουλόχαρτα μόνο που τώρα αντί να ανοίγουν όλα τα φύλλα ανοίγει μόνο το πρώτο μετά το ανακάτεμα και ο αριθμός του πρώτου φύλλου ανατίθεται σε μία μεταβλητή (βλέπε 14.1) την οποία την γνωρίζει μόνο το scratch.  (Τρέξε το αρχείο Κ15_2(1).sb)  Ας δούμε μία απλή εφαρμογή της: Στο παράδειγμά μας βλέπουμε την εφαρμογή των τυχαίων αριθμών. Σκοπός είναι να παράγουμε τυχαίους αριθμούς κάθε φορά που ξεκινάμε το πρόγραμμά μας. Οι αριθμοί που εμφανίζονται πρέπει να είναι μεταξύ του 1 και του 9. Αυτό γίνεται με την γεννήτρια τυχαίων αριθμών. Αν τρέξουμε δύο φορές το πρόγραμμά μας θα δούμε τα εξής αποτελέσματα. Εικόνα 15.3 Εικόνα 15.4
 * //__Παράδειγμα 1__//**

Για το σκηνικό είναι το εξής.

Έτσι κάθε φορά παράγουμε ένα τυχαίο αριθμό στο σκηνικό περιμένει το αντικείμενο για 0.5 δευτερόλεπτα και έπειτα το αντικείμενο τυπώνει τον αριθμό.

Το παράδειγμα που χρησιμοποιούμε είναι από το: http://scratch.mit.edu/projects/Wiiboy999/556196

(Τρέξε το αρχείο Κ15_2(2).sb) Ας δούμε ακόμη ένα παράδειγμα για τη γεννήτρια τυχαίων αριθμών. Το πρόγραμμα που θέλουμε να φτιάξουμε είναι το εξής. Να έχουμε 4 αντικείμενα τα οποία να τυπώνουν τυχαίους αριθμούς οριζόντια και από γραμμή σε γραμμή. Φανταστείτε το σαν την ταινία Matrix.
 * //__Παράδειγμα 2__//**

Αν τρέξουμε το πρόγραμμα το αποτέλεσμα είναι το εξής:

Εικόνα 15.5 Αν προσπαθήσετε δεν είναι δύσκολο να γράψετε τον κώδικα. Ο κώδικας για το ένα αντικείμενο από τα τέσσερα είναι ο εξής. Εύκολα με μπορείτε να γράψετε και για τα υπόλοιπα.

Εικόνα 15.6

Το παράδειγμα που χρησιμοποιούμε με μερικές αλλαγές είναι από το: http://scratch.mit.edu/projects/04lukeb/236392


 * //__Ερωτήσεις Κατανόησης__//**
 * 1) Αν δεν χρησιμοποιούσαμε τυχαίους αριθμούς στα παιχνίδια θα θέλατε να τα παίξετε και αν όχι γιατί (φανταστήτε ένα παιχνίδι που θα ξέρατε τι υπάρχει στο επόμενο επίπεδο);
 * 2) Ονομάστε παιχνίδια που ξέρετε και έπειτα προσπαθήστε να βρείτε αν χρησιμοποιούν τυχαίους αριθμούς.


 * 2.1** **Τυχαίοι αριθμοί και μεταβλητές**

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

Έστω τώρα πως θέλετε να σώσετε μια αλεπού η οποία θέλει να παραπλανήσει τον κυνηγό της και να ξεφύγει. Αυτό που πρέπει να σκεφτείτε είναι πως μπορεί έχει η αλεπού κάθε στιγμή να έχει διαφορετική θέση και τι χρειάζεστε για να προσδιορίσετε την θέση της αλεπούς. Μια λύση είναι να δίνουμε στην αλεπού κάθε φόρα τυχαία τιμή στην θέση της με αποτέλεσμα ο κυνηγός να χάνει τα ίχνη της μη γνωρίζοντας ποια ήταν η τελευταία θέση της. Ένας ενδεικτικός κώδικας είναι ο ακόλουθος:(Τρέξε το αρχείο Κ15_2.1.sb) Εικόνα 15.7 Στον παραπάνω κώδικα ο προσδιορισμός της θέσης της αλεπούς γίνεται με την χρήση μεταβλητών όπως ήδη ξέρετε(βλέπε κεφ. 14.1) και η τιμή αυτών δίνεται τυχαία. Το εύρος τιμών που θέλετε να έχει η θέση της αλεπούς είναι προσωπική σας επιλογή. Οι τιμές που δίνονται εδώ είναι τέτοιες ώστε η αλεπού να έχει μια σωστή πορεία και να μην σκαρφαλώνει στα δένδρα έχοντας το υπόβαθρο που ακολουθεί στην Εικόνα 2.1.2. Σε αυτή την εικόνα φαίνεται και μια τυχαία θέση που μπορεί να έχει η αλεπού. Εικόνα 15.8

(Τρέξε το αρχείο Κ15_2.1.sb) Το σχολείο σας διοργανώνει ένα διαγωνισμό που έχει σχέση με το παιχνίδι που ονομάζεται «Η μπάλα και ο λαβύρινθος ».Καθένας από εσάς θα πρέπει να προσπαθήσει να το φτιάξει και μετά να έχει στόχο να τερματίσει πρώτος ώστε να αποκτήσει το έπαθλο του διαγωνισμού. Η μπάλα σας θα πρέπει να ξεκινάει από μια τυχαία θέση μέσα στον λαβύρινθο και όταν ακουμπάει τον τοίχο να πηγαίνει σε άλλη θέση που θα είναι και αυτή τυχαία αλλά όχι ίδια με την αρχική. Στο παιχνίδι μας επίσης θα πρέπει να δυσκολεύει σε κάποια σημεία την μπάλας. Αυτό μπορεί να γίνει με την χρήση κάποιων εμποδίων.Όταν η μπάλα βρει εμπόδιο θα πρέπει πάλι να έχει νεά θέση που θα είναι και αυτή τυχαία.Επίσης όταν η μπάλα ακουμπήσει τον τοίχο θα εμφανίζεται πάλι σε τυχαία θέση.
 * //__Παράδειγμα__//**
 * (Η μπάλα και ο λαβύρινθος )**

Το πρώτο βήμα που πρέπει να κάνετε είναι να σκεφτείτε ποια μορφή θα έχει ο λαβύρινθος σας. Στην συνέχεια θα χρειαστείτε ένα αντικείμενο για να αναπαραστήσετε την μπάλα και κάποια αντικείμενα που θα αποτελούν τα εμπόδια που θα κάνουν δύσκολη την ζωή της μπάλας. Έστω πως τα εμπόδια θα είναι τρία. Τέλος, με το που η μπάλα θα καταφέρει να ξεμπλέξει από τον λαβύρινθο και φθάσει στο τέλος θα βγαίνει μια γάτα χοροπηδώντας. Άρα χρειαζόμαστε ένα επιπλέον αντικείμενο, την γάτα. Οι μορφές που μπορούν να έχουν τα αντικείμενα σας μπορεί να είναι οι ακόλουθες για την μπάλα, τα εμπόδια, την γάτα και το τέρμα αντίστοιχα: Για την κίνηση της μπάλας χρησιμοποιούμε την συνάρτηση τυχαία επιλογή με την οποία επιλέγουμε σε ποία σημεία θέλουμε να κυμαίνεται η θέση της μπάλας μας. Στόχος της μπάλας είναι να φθάσει στο τέρμα για να τερματίσει. Όταν η μπάλα ακουμπήσει τον τοίχο ή τα εμπόδια θα πρέπει να ενεργοποιηθούν οι αισθητήρες (βλέπε κεφ.11) ότι τα δύο αντικείμενα ήρθαν σε επαφή και να πάρει μια νέα τυχαία θέση και να ακουστεί ένας χαρακτηριστικός ήχος. Επίσης, όταν η μπάλα φθάσει στον τερματισμό θα πρέπει να ενεργοποιηθούν πάλι οι αισθητήρες ώστε με την εμφάνιση της γάτας να τερματίσει το παιχνίδι. Τα εμπόδια θα κινούνται και προς τις δυο κατευθύνσεις. Όταν φθάσουν στα όρια θα αναπηδούν κάποια βήματα και θα αρχίσουν να κινούνται προς την άλλη κατεύθυνση. Όταν τα εμπόδια ακουμπούν την μπάλα θα ακούγεται ένας χαρακτηριστικός ήχος και θα συνεχίζουν την πορεία τους.
 * //__Σκεπτικό__//**
 * //__ΑΝΤΙΚΕΙΜΕΝΑ__//**
 * Μπάλα**
 * Εμπόδια**

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

Η γάτα θα εμφανίζεται με τον τερματισμό του παιχνιδιού και θα κινείται πάνω κάτω χαρούμενη που καταφέρατε και κερδίσατε. Με την εμφάνιση της γάτας θα ακούγετε από πίσω και «ο ύμνος του νικητή».
 * Γάτα**

Το σκηνικό του παιχνιδιού σας θα πρέπει να είναι ο λαβύρινθος. Την μορφή του θα την επιλέξετε εσείς δεν υπάρχει κάποιος περιορισμός.
 * //__ΣΚΗΝΙΚΟ__//**

Ο κώδικας για την μπάλα είναι: Εικόνα 15.9

Πάμε τώρα να κατανοήσουμε βήμα βήμα τι ακριβώς κάνει αυτός ο κώδικας.

Εικόνα 15.10

Για την ταχύτητα της μπάλας χρησιμοποιούμε το παρακάτω σύνολο εντολών. Εικόνα 15.11

Ο κώδικας για τα εμπόδια είναι ίδιος και για τα 3 αλλά στο μόνο που διαφέρουν είναι η αρχική τους θέση. Ο κώδικας του ενός από τα τρία είναι ο ακόλουθος: Εικόνα 15.12

Ο κώδικας της γάτας και του τερματισμού: Γάτα Τέρμα Εικόνα 15.13

1. Έστω ότι θέλουμε η μπάλα μας να έχει και τυχαία τιμή για την αρχική τιμή της μεταβλητής y.
 * //__Ερωτήσεις Κατανόησης__//**

2. Η ταχύτητα της μπάλας εκφράζεται από τις μεταβλητές x velocity, y velocity όπως μπορείτε να δείτε στον κώδικα και αυτές οι μεταβλητές αλλάζουν την ορμή(η αλλιώς την ταχύτητα της).

3.


 * 2.2** **Παραδείγματα Τυχαίων μεταβλητών**

(Τρέξε το αρχείο Κ15_2.2(1).sb)
 * //__Παράδειγμα 1__//**
 * //__(Γίνε ζωγράφος χρησιμοποιώντας το scratch)__//**

Σας αρέσει η ζωγραφική και τα χρώματα; Ήρθε η ώρα να διασκεδάσετε!! Σκεφτείτε πόσο ενδιαφέρον θα ήταν να προγραμματίζατε την ζωγραφιά σας από το να το κάνατε στο χέρι με το ένα λάθος να φέρνει το άλλο και το καλάθι των σκουπιδιών σας να έχει γεμίσει από τσαλακωμένα χαρτιά. Έστω πως θα θέλετε να φτιάξετε έναν κύκλο με περίγραμμα το οποίο θα αλλάζει χρώμα καθώς κοιτάτε προς το εσωτερικό του κύκλου. Θα μπορούσατε να το κάνετε αυτό με το χέρι; Κάποιοι από εσάς μπορεί να τα καταφέρνανε κάποιοι άλλοι όμως όχι. Ως πρώτο βήμα για να ξεκινήσουμε να ζωγραφίζουμε είναι να δημιουργήσουμε το αντικείμενο που θα κάνει την δουλειά του διαβήτη. Επειδή θέλουμε ο κύκλος μας να έχει πολύχρωμο περίγραμμα ένας ωραίος τρόπος να το πετύχουμε είναι να χρησιμοποιήσουμε το αντικείμενο(ας το ονομάσουμε color_nose) της Εικόνας 15.24 ως μύτη για τον διαβήτη μας.

Εικόνα 15.14 Τώρα η color_nose θα πρέπει να κινείται με τέτοιο τρόπο ώστε να σχηματίζει τον πολύχρωμο κύκλο που θέλουμε. Το μέγεθος του κύκλου μπορείτε να του δίνεται τυχαία τιμή ώστε να έχετε πολλά διαφορετικά μεγέθη. Ο κώδικας για να ζωγραφίσετε ένα τέτοιο κύκλο είναι ο εξής:

Εικόνα 15.15

Το παραπάνω πρόγραμμα (Βλέπε Εικόνα 15.15)θα μπορούσε να είχε τα εξής αποτελέσματα(Βλέπε Εικόνα 15.16). Εικόνα 15.16

Το παράδειγμα που χρησιμοποιούμε με κάποιες αλλαγές είναι από το: [|**//http://scratch.mit.edu/projects/Bloing_Gloing/4395//****//me//**]

(Τρέξε το αρχείο Κ15_2.2(2).sb)
 * //__ΠΑΡΑΔΕΙΓΜΑ__//** **//__2__//**
 * //__(Το ζάρι-Single Dice)__//**

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

Έστω ότι οι φίλοι σας θέλουν να αποφασίσουν να παίξουν pro(το γνωστό στους περισσότερους ποδόσφαιρο που μπορείτε να παίξετε είτε μόνοι σας, με αντίπαλο τον υπολογιστή, είτε με τους φίλου σας δημιουργώντας την δική σας ομάδα) αλλά όλοι θέλουν να ξεκινήσουν να παίζουν πρώτοι. Σκέφτεστε να ρίξετε τα ζάρια για να αποφασίσετε, αλλά έχετε ψάξει παντού στο σπίτι και δεν μπορείτε να τα βρείτε. Παρολ ‘αυτά όμως η λύση στο πρόβλημα σας βρέθηκε και είναι ο κώδικας της Εικόνας 2.2.1 ο οποίος ρίχνει τα ζάρια αντί να το κάνετε εσείς. Το αντικείμενο σας εδώ είναι το ζάρι το οποίο αλλάζει όψεις (δηλαδή ενδυμασίες στον κόσμο του scratch) τυχαία ώστε να μην υπάρχει πιθανότητα να θελήσει κάποιος από τους φίλους σας να σας «κλέψει», επειδή θέλει πάρα πολύ να παίξει. Παράλληλα μπορείτε να θέσετε στο ζάρι ταχύτητα περιστροφής ώστε να η αναμονή να σας κρατάει σε αγωνία και για να έχει και περισσότερο ενδιαφέρον. Ο κώδικας είναι ο εξής:

Εικόνα 15.17 Ας αναλύσουμε κάποια κομμάτια τα οποία μπορεί «να τα κοιτάτε και να σας κοιτάνε» όταν διαβάσετε τον κώδικα. Εικόνα 15.18

Το παράδειγμα που χρησιμοποιούμε είναι από το: __[|**//http://scratch.mit.edu/projects/MrShah/14574//**]__

1.
 * //__Ερωτήσεις Κατανόησης__//**

2.



3.

4.

Αφού εκτελέσετε το πρόγραμμα (κάποια από τα πιθανά αποτελέσματα που μπορεί να έχει η εκτέλεση του βρίσκονται στις Εικόνα 2.2.2) και σας ενοχλεί ακόμη ο Κύριος Απορίας με ερωτήσεις ‘γιατί έτσι και όχι έτσι;’ μπορείτε να κάνετε τα παρακάτω για να απαλλαγείτε τελείως από την παρουσία του. Αν δεν καταλάβατε γιατί είναι η απαραίτητη η χρήση της τυχαίας επιλογής αριθμών τροποποιήστε τον κώδικα και εκεί που χρησιμοποιείται η εντολή της τυχαίας επιλογής βάλτε απλώς μια τιμή και εκτελέστε πάλι το πρόγραμμα παραπάνω από μια φορές για να δείτε την διαφορά. Αν δεν μπορέσατε να καταλάβετε γιατί πρέπει η μεταβλητή Dice Speed να έχει μια τυχαία τιμή δώστε της πρώτα την τιμή 0.2 και μετά την τιμή 20 και παρατηρείστε τι συμβαίνει.

Εικόνα 15.19

**__( τυχαία διαδρομή αφήνοντας ίχνη )__** Για ακόμη μια φορά προσεγγίζουμε ένα παράδειγμα τυχαίων μεταβλητών. Στο παρών πρόγραμμα-παράδειγμά μας, το οποίο αποτελείται από ένα αντικείμενο (το sprite μας) αρχικοποιημένου μεγέθους, μια γάτα θα διαγράφει μια ορισμένη διαδρομή, αφήνοντας πίσω της ίχνη. Μόλις διαγράψει μια συγκεκριμένη πορεία ξεκινά πάλι από το σημείο που άρχισε η πρώτη της διαδρομή έχοντας επιλέξει αυτή την φορά ένα νέο χρώμα. Έχουμε λοιπόν μια γάτα (sprite) η οποία ξεκινά από το σημείο (0,0) με γωνία κίνησης αρχικοποιημένη σε 0. Συνεχίζοντας θα δούμε πως θα αρχίσει να διαγράφει μια "τυχαία" διαδρομή αφήνοντας ίχνη ενός χρώματος που επίσης επιλέχτηκε τυχαία μέσα από 360 διαφορετικά χρώματα. Αυτό γίνεται χάρη στη εντολή “τυχαία επιλογή από ... μέχρι ...”. Εν συνεχεία θα πρέπει να τονίσουμε πως πέρα από την τυχαιότητα στην επιλογή του εκάστοτε χρώματος το αντικείμενο μας μπορεί να αλλάξει την απόχρωσή του κάνοντας αυτό το παράδειγμα ακόμα πιο ενδιαφέρων και ακόμα πιο «μυστήριο» ως αναφορά το τελικό αποτέλεσμα που θα παρατηρήσουμε. Το μήκος της διαδρομής της γάτας μας είναι ένα ακόμα θέμα που αφήνουμε να επιλεχθεί στην τύχη θέτοντας φυσικά ένα περιορισμό βημάτων χρησιμοποιώντας την εντολή “επανέλαβε τυχαία επιλογή από 100 μέχρι 1000”. Παρακάτω παραθέτεται ο κώδικας αυτού που μόλις περιγράψαμε ενώ έχουμε κυκλώσει τα σημεία που ευθύνονται για την τυχαιότητα στο παράδειγμά μας.
 * //__Παράδειγμα 3__//**

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

Εικόνα 15.21
 * //Ερωτήσεις Κατανόησης//**

1. Έχοντας κατανοήσει πλήρως το πρόγραμμα θα μπορούσατε να απαντήσετε αν ξέρουμε πιο χρώμα ακολουθεί αν το πρώτο επιλεγμένο χρώμα μας είναι το κόκκινο;

2. Εφόσον το αντικείμενο (sprite) ακολουθεί τυχαία διαδρομή γιατί μόλις αλλάζει χρώμα στα ίχνη του ξεκινά από ένα και μοναδικό σημείο. Πως επηρεάζετε η τυχαιότητα της κίνησης του;

(Τρέξε το αρχείο Κ15_2.2(4).sb)  Πάμε να δούμε ένα παιχνίδι που έχει περισσότερο ενδιαφέρον από τα προηγούμενα παραδείγματα. Το παιχνίδι αυτό είναι το Tetris. Για όσους δε γνωρίζουν σκοπός του παιχνιδιού είναι να κάνουμε γραμμές χωρίς κενά τοποθετώντας τουβλάκια που μας έρχονται με τυχαίο τρόπο. Δεν θέλουμε να αναλύσουμε την λειτουργία του παιχνιδιού και ούτε πως κατασκευάζεται. Απλά θα μείνουμε στον τρόπο που επιλέγουμε με τυχαίο τρόπο τα τουβλάκια. Ας δούμε το παιχνίδι και να δοκιμάσουμε βρούμε τον τρόπο με τον οποίο μπορεί να γίνατε αυτή η τυχαία επιλογή. Εικόνα 15.22  Αφού δοκιμάσουμε το tetris μπορούμε να προτείνουμε τρόπους που γίνεται αυτή η τυχαία επιλογή; Μα φυσικά με την εντολή “τυχαία επιλογή από 1 μέχρι 7” μπορούμε να διαλέγουμε μεταξύ των 7 αντικειμένων που υπάρχουν για τα διαφορετικά τουβλάκια. Έτσι κάθε φορά που πέφτει ένα τουβλάκι απλά διαλέγουμε τυχαία το αντικείμενο που θα εμφανίσουμε. Το κομμάτι κώδικα που μας ενδιαφέρει είναι το εξής και βρίσκεται στο σκηνή: Εικόνα 15.23  Έτσι στην μεταβλητή next επιλέγουμε τον τυχαίο αριθμό και έπειτα επιλέγουμε ένα από τα παρακάτω αντικείμενα. Όπως βλέπουμε δεν διαφέρει η φιλοσοφία από τα δύο παραπάνω παραδείγματα με τη διαφορά του ότι εδώ έχουμε εφαρμογή σε ένα κανονικό παιχνίδι.
 * //__Παράδειγμα 4__//**

Το παράδειγμα που χρησιμοποιούμε είναι από το: http://scratch.mit.edu/projects/amyv/11292

(Τρέξε το αρχείο Κ15_2.2(5).sb) Οι περισσότεροι από εμάς θέλουμε να βρούμε ένα παιχνίδι το οποίο να μην το βαρεθούμε ποτέ και να διασκεδάζουμε συνέχεια παίζοντας το. Σκεφτείτε πόσο ενδιαφέρον θα ήταν ένα παιχνίδι στο οποίο θα μπορείτε να εξουδετερώνεται κοτόπουλα. Για να φτιάξουμε αυτό το παιχνίδι πρέπει να σκεφτούμε ως εξής: Το πρώτο βήμα είναι να σκεφτούμε, πως θα είναι το μέρος όπου θα εμφανίζονται τα κοτόπουλα, με ποιον τρόπο θα εμφανίζονται, και πως θα παρουσιάζουμε την σφεντόνα.
 * //__Παράδειγμα 5__//**
 * //__Chicken shoot__//**


 * //__ΑΝΤΙΚΕΙΜΕΝΑ__//**

Τα κοτόπουλα θα εμφανίζονται σε τυχαία θέση και προς διαφορετική κατεύθυνση. Καθώς πετάνε τα κοτόπουλα θα αλλάζουν και εμφάνιση. Κάθε φορά που το κοτόπουλο ακουμπάει με την σφεντόνα τότε αυτή θα εξαφανίζεται. Επίσης κάθε φορά που σκοτώνετε ένα κοτόπουλο θα αυξάνονται οι πόντοι του παιχνιδιού.
 * //Κοτόπουλα//**

Η σφεντόνα κάθε φορά που θα ακουμπάει το κοτόπουλο θα βγάζει ένα περίεργο ήχο. Η κίνηση της σφεντόνας θα γίνεται με την κίνηση του ποντικιού. Ο κώδικας για τα κοτόπουλα(βλέπε Εικόνα 15.24) με κάποιες επεξηγήσεις είναι ο εξής:
 * //Σφεντόνα//**

Εικόνα 15.24 Θα έχουμε κοτόπουλα και προς τις 2 κατευθύνσεις(Βλέπε Εικόνα 15.25,15.26)

Εικόνα 15.25 Εικόνα 15.26

Όλο των κώδικα του παιχνιδιού με κάποιες όμως αλλαγές μπορείτε να τον βρείτε στο
 * //__http://scratch.mit.edu/projects/Ochi/154277.__//**

1. Θέλουμε να κατασκευάσουμε μια εφαρμογή που θα παρουσιάζει 2 αντικείμενα από τα οποία το ένα θα επιλέγει με τυχαίο τρόπο ποια μαθηματική έκφραση θέλει να χρησιμοποιήσουν θα την ανακοινώνει στο άλλο αντικείμενο και στην συνέχεια το άλλο αντικείμενο με τυχαία επιλογή θα αποφασίζει πως θα χρησιμοποιήσει την μαθηματική έκφραση. Οι μαθηματικές εκφράσεις πρέπει να είναι οι εξής: · Y=X^2 · Y=X · Y=X^3 · (X-X0)^2+(Y-Y0)^2=ρ^2 (είναι ο γνωστός μας κύκλος) · Χ^2/α^2+Y^2/B^2=1 (είναι η έλλειψη) Και οι τυχαίες επιλογές που θα χρησιμοποιηθούν σε κάθε μαθηματική έκφραση είναι: · Γραφική παράσταση · Εμβαδόν · Περίμετρος Αν κάποιες από τις παραπάνω επιλογές δεν μπορεί να εφαρμοστεί σε κάποια από τις μαθηματικές εκφράσεις τότε να βγαίνει σχετικό μήνυμα. Για τα αντικείμενα σας μπορείτε να χρησιμοποιήσετε αυτά που σας δίνει το scratch. Όταν οι επιλογές μεταξύ τους δεν μπορούν να εφαρμοστούν και βγαίνει το σχετικό μήνυμα ωραίο θα ήταν να βγαίνει και ένας χαρακτηριστικός ήχος.
 * //__Δραστηριότητες__//**

2.Θέλουμε να κατασκευάσουμε μια εφαρμογή η οποία να χωρίζει το σκηνικό σε 4 μέρη με χρώματα(άσπρο,μαύρο,κόκκονο,μπλε).Ο χώρος μπορεί να χωριστεί με όποιο τρόπο επιθυμείτε,ενώ η επιλογή των χρωμάτων σε κάθε μέρος θα γίνεται τυχαία.Τοποθετείστε ενα αντικείμενο το οποίο θα κινείτε με τυχαίο τρόπο μεσα στο σκηνικό και θα αλλάζει κουστούμια ανάλογα με το χρώμα που θα ακουμπά!Ουσιαστικά επιλέξτε 4 διαφορετικά κουστούμια της αρεσκείας σας και προσέξτε όταν το αντικείμενο ακουμπά ταυτόχρονα σε παραπάνω απο ένα χρώμα του σκηνικού.Τώρα όσον αφορά την τυχαιότητα στην κίνηση δώστε στο αντικείμενο σας μια σταθερή κατευθυνση (συμβουλευτήτε το προηγούμενο παράδειγμα) κίνησης και αλλάξτε με τυχαίο τρόπο την γωνία καθώς και τον χρόνο που παραμένει σε αυτή την κατεύθυνση.

3.Θέλουμε να κατασκεύασουμε μια ψηφιακή κορνίζα.Επιλέξτε φωτογραφίες της αρεσκείας σας.Κάθε αντικείμενο είναι μια φωτογραφία.Φτιάξτε ένα προγραμμα το οποίο να εναλλάσει με τυχαίο τρόπο της φωτογραφίες και ο χρόνος μεταξύ 2 διαδοχικών φωτογραφιών να είναι 5 δευτερόλεπτα.Πειραματιστείτε με την δική σας ψηφιακή κορνίζα.

1. Γράψτε την εντολή που θα έδινε σε ένα αντικείμενο τυχαία θέση όταν αυτό εμφανίζεται. 2. Αναφέρετε 2 λόγους γιατί η εντολή της τυχαιότητας είναι απαραίτητη όταν προγραμματίζετε παιχνίδια. 3. Αναλύστε με λίγα λόγια τι θα συνέβαινε αν στο παιχνίδι με τα κοτόπουλα δεν χρησιμοποιούσαμε την εντολή της τυχαιότητας. 4. Συνεργαστείτε με τους συμμαθητές /τριες σας και υποθέστε ποια θα πρέπει να ήταν τα βήματα σας για να φτιάξετε το γνωστό σε όλους σας φιδάκι που θέλει να τρώει την τροφή του. 5.Δικαιολογήστε γιατί το γεγονός "Νίκη στο τζόκερ" είναι τυχαίο το γεγονός "Αναπνοή" δεν είναι τυχαίο. 6.Αναφέρεται έναν ορισμό του όρου τυχαιότητα. 7.Να καταγραφούν τα σημεία κώδικα,στα οποία υλοποιείται η τυχαιότητα στο παιχνίδι Tetris. 8.Περιγράψτε πως φαντάζεστε τα παιχνίδια με την απουσία της τυχαιότητας.
 * //__ΘΕΩΡΗΤΙΚΕΣ ΕΡΩΤΗΣΕΙΣ__//**



Παραδείγματα Για τα κεφάλαια 6,7,8 Παραδείγματα για τα κεφάλαια 4,9,15