Σημειώσεις Greenfoot. Νικολός Δημήτρης
|
|
- Θαλής Γιάγκος
- 8 χρόνια πριν
- Προβολές:
Transcript
1 Σημειώσεις Greenfoot Νικολός Δημήτρης
2 1. Πρόλογος Το Greenfoot είναι ένα Ολοκληρωμένο Περιβάλλον Ανάπτυξης Εφαρμογών (IDE) που έχει ως σκοπό τη διδασκαλία του Αντικειμενοστραφούς προγραμματισμού με τη γλώσσα Java. Με το Greenfoot μπορεί να δημιουργηθεί ένας κόσμος μέσα στον οποίο αλληλεπιδρούν μορφές (actors) με τις οποίες μπορούν να προγραμματιστούν παιχνίδια, προσομοιώσεις και άλλα προγράμματα με γραφικά. Ένας μαθητής Δευτεροβάθμιας θα πρέπει να αποκτήσει βασικές γνώσεις προγραμματισμού. Ο προγραμματισμός στο σχολείο είναι μια παγκόσμια τάση και παρά τις αντιρρήσεις που έχουν τεθεί πρόκειται για μια δεξιότητα που σίγουρα έχει κατακτήσει την θέση της στο σύνολο των δεξιοτήτων του 21ου αιώνα. Στην ιστορία των υπολογιστών στην εκπαίδευση τα προγραμματιστικά περιβάλλοντα εισήχθησαν με τη Logo. Στα επόμενα χρόνια η διδασκαλία της Logo ατόνησε και θεωρήθηκε πιο σημαντική η καλλιέργεια δεξιοτήτων χρήσης υπολογιστή με έμφαση στις εφαρμογές γραφείου. Στις μέρες μας επιχειρείται μια αντίστροφη πορεία, με τον προγραμματισμό στον πυρήνα του Προγράμματος Σπουδών της Πληροφορικής. Σήμερα η εποχή είναι διαφορετική. Οι εφαρμογές για κινητά τηλέφωνα και ταμπλέτες (mobile apps) βρίσκονται παντού και άνθρωποι που δεν σκέφτηκαν ποτέ να προγραμματίσουν, άρχιζαν να έχουν ιδέες για εφαρμογές και να ενδιαφέρονται για τον τρόπο με τον οποίο μπορούν να τις κάνουν πράξη. Οι δύο αυτές τάσεις οδηγούν εταιρείες και οργανισμούς στην ανάπτυξη λογισμικών για την εκμάθηση του προγραμματισμού. Τα λογισμικά αυτά είναι πλέον πάρα πολλά, για παράδειγμα: Alice Greenfoot Scratch Kodu BYOB AgentSheets Microworlds Pro GameMaker Blockly StarLogo TurtleArt Squeak etoys ενώ υπάρχουν και διαδικτυακές εφαρμογές:
3 Από όλα αυτά τα περιβάλλοντα γιατί να επιλεγεί το Greenfoot; Για να απαντηθεί αυτό το ερώτημα θα πρέπει να δούμε τη συνέχεια της Διδασκαλίας του Προγραμματισμό στο Πρόγραμμα Σπουδών Πληροφορικής. Στα Δημοτικά Σχολεία με ΕΑΕΠ διδάσκεται συνήθως Scratch στην Ε' και στην Στ' Δημοτικού, δεδομένου ότι είναι ένα λογισμικό εξελληνισμένο, δωρεάν και απευθύνεται στις αντίστοιχες ηλικίες. Μια αναζήτηση 1 στο Σχολικό Δίκτυο παράγει πληθώρα αποτελεσμάτων. Το λογισμικό Microworlds Pro χρησιμοποιείται σε όλα τα Γυμνάσια αφού υπάρχει στο αντίστοιχο σχολικό εγχειρίδιο δημιουργώντας μια παράδοση που δύσκολα θα αλλάξει. Με το νέο πιλοτικό πρόγραμμα Σπουδών στο Γυμνάσιο ο προγραμματισμός είναι αντικείμενο και στις τρεις τάξεις του Γυμνασίου. Το θέμα είναι να επιλεχθεί ένα λογισμικό που θα μπορεί να αποτελέσει την συνέχεια της ακολουθίας Scratch και Microworlds Pro. Η βασική διδακτική επιλογή που έγινε από τους δημιουργούς του Greenfoot είναι η προσέγγιση "πρώτα τα αντικείμενα" 2. Στην ουσία τόσο η Scratch όσο και το Microworlds Pro ακολουθώντας μια από τις αρχές της Logo, τα αντικείμενα σκέψης (objects to think with) έχουν επίσης σαν κεντρική ιδέα τα αντικείμενα. Και στο Greenfoot ο μαθητής προγραμματίζει την συμπεριφορά των αντικειμένων όπως έκανε και στα προηγούμενα περιβάλλοντα. Η σειρά Scratch Greenfoot μοιάζει πάρα πολύ με τη σειρά Alice Greenfoot που προτείνεται από την Oracle 3. Ο μαθητής προγραμματίζει σε Java. Δεν προγραμματίζει σε κάποια Java-like γλώσσα ή μια γλώσσα προγραμματισμού που είναι σχεδιασμένη αποκλειστικά για μαθητές. Προγραμματίζει σε μια επαγγελματική γλώσσα προγραμματισμού με την οποία μπορεί αργότερα να κατασκευάσει εφαρμογές υψηλών απαιτήσεων (οι εφαρμογές του Android προγραμματίζονται σε Java 4. Τέλος, το περιβάλλον παρέχεται δωρεάν ως λογισμικό ανοιχτού κώδικα και υποστηρίζεται από το Πανεπιστήμιο του Kent. 1 Αναζητείστε στο Google Scratch Δημοτικό site:sch.gr
4 2. Εισαγωγή στο Greenfoot Από την σελίδα του Greenfoot 5 μπορούμε να κατεβάσουμε το λογισμικό (Download). Το λογισμικό μπορεί να εκτελεστεί σε οποιοδήποτε σύστημα μπορεί να εγκατασταθεί το Java Development Kit (JDK). Παρά το ότι το σύστημά σας μπορεί να υποστηρίζει Java, π.χ. να τρέχει εφαρμογές Java ή να τρέχει Java μέσω του περιηγητή ιστού αυτό δεν σημαίνει ότι έχετε εγκατεστημένο το Java Development Kit. Ακολουθήστε λοιπόν ακριβώς τα βήματα που προτείνονται σε κάθε περίπτωση. Στη συνέχεια ανοίξτε το έτοιμο σενάριο wombats που θα βρείτε στον φάκελο scenarios μέσα στον φάκελο εγκατάστασης του Greenfoot. Δηλαδή επιλέξτε «Scenario Open» To Greenfoot θα σας ζητήσει να αποθηκεύστε το έργο που μόλις ανοίξατε για να μπορεί να κάνει αλλαγές. Αποθηκεύστε το στον φάκελο Greenfoot που βρίσκεται μέσα στον φάκελο «Τα έγγραφά μου». Πρόκειται για ένα σενάριο όπου το τρωκτικό Wombat κινείται μέσα στο πλέγμα του κόσμου WombatWorld και προσπαθεί να φάει τα φύλλα που πιθανόν υπάρχουν. Στο δεξί μέρος του περιβάλλοντος βλέπουμε την ιεραρχία των κλάσεων που αφορούν τον κόσμο (πάνω) και την ιεραρχία των Actor (κάτω). Κλάσεις είναι οι τύποι των αντικειμένων, π.χ. αν στον κόσμο υπάρχουν τρία ίδια φύλλα τότε αυτά ανήκουν στον ίδιο τύπο, στην ίδια κλάση αντικειμένων, την κλάση Leaf. Κάθε λειτουργικό σενάριο θα πρέπει να έχει τουλάχιστον έναν κόσμο, και κάποιες μορφές (Actors). Στην περίπτωση του σεναρίου wombats οι μορφές είναι δύο, μια μορφή με όνομα Wombat (ένα είδος τρωκτικού) και μια μορφή με όνομα Leaf (φύλλο)
5 Για να εκτελέσουμε το σενάριο θα πρέπει πρώτα να κάνουμε Compile (μεταγλώττιση) με το κουμπί που βρίσκεται κάτω δεξιά. Αμέσως εμφανίζεται το πλέγμα του κόσμου στον οποίο θα κινούνται οι μορφές της εφαρμογής μας. Ο κόσμος είναι άδειος. Μπορούμε να εισάγουμε ένα αντικείμενο τύπου Wombat. Αυτό γίνεται με δεξί κλικ πάνω στην κλάση του Wombat στην ιεραρχία των μορφών (Actor). Στη συνέχεια επιλέγουμε new Wombat(). Με το ποντίκι του υπολογιστή μπορούμε να το τοποθετήσουμε οπουδήποτε μέσα στον κόσμο. Ακολουθούμε την ίδια διαδικασία με τα φύλλα (κλάση Leaf και επιλέγουμε new Leaf()). Μπορούμε να τοποθετήσουμε παραπάνω από ένα φύλλα στον κόσμο μας, επαναλαμβάνοντας την διαδικασία. Για να εκτελέσουμε το σενάριο πατάμε το κουμπί Run. Βλέπουμε ότι το Wombat κινείται και μπορούμε να ρυθμίσουμε την ταχύτητα της εκτέλεσης με την μπάρα κύλισης Speed. Αν το Wombat βρει στον δρόμο του ένα φύλλο τότε το φύλλο εξαφανίζεται. Δοκιμάστε να βάλετε φύλλα σε αντίστοιχες θέσεις ώστε το wombat να τα φάει. Μπορείτε να εκτελείτε ένα βήμα κάθε φορά με το κουμπί Act, ουσιαστικά το κουμπί Run εκτελεί το Act πολλές φορές με την ταχύτητα Speed. Αν θέλετε να ξεκινήσετε από την αρχή πατήστε το κουμπί Reset. Για να δούμε τον κώδικα για το Wombat μπορούμε να κάνουμε δεξί κλικ πάνω στην κλάση και να επιλέξουμε Open editor. Φαίνεται ο παρακάτω κώδικας: if(foundleaf()) eatleaf(); else if(canmove()) move(); else turnleft(); Ο κώδικας αυτός σημαίνει πως το wombat αν βρει φύλλο, θα το φάει αλλιώς αν μπορεί να πάει μπροστά θα πάει και αν δεν μπορεί να πάει μπροστά θα στρίψει αριστερά. Υπάρχει δηλαδή αντιστοιχία μεταξύ του κώδικα και της συμπεριφοράς του Wombat. Ο κώδικας αυτός βρίσκεται «μέσα» στις αγκύλες που ακολουθούν το public void act(). Οτιδήποτε υπάρχει μέσα στο act() εκτελείται όταν πατηθούν τα κουμπιά Act ή Run. Στα επόμενα κεφάλαια θα βάλουμε τις δικές μας εντολές μέσα στην Act και θα φτιάξουμε τα δικά μας έργα. 5
6 3. Κίνηση! Σε κάθε έργο που ξεκινάμε πρέπει να δημιουργήσουμε μια υποκλάση της κλάσης World. Αυτό γίνεται κάνοντας δεξί κλικ στο εικονίδιο World και επιλέγοντας New subclass. Τη νέα υποκλάση μπορούμε να την ονομάσουμε background και να διαλέξουμε μια εικόνα για την αναπαράσταση του. Το Greenfoot έχει εγκαταστήσει κάποια υπόβαθρα τα οποία μπορούμε να χρησιμοποιήσουμε στις εφαρμογές μας και βρίσκονται στον φάκελο backgrounds. Δοκιμάστε όποιο θέλετε από αυτά. Μπορείτε να χρησιμοποιήσετε και εικόνες από τον υπολογιστή σας. Σε αυτό το έργο θα εισάγουμε μια μορφή (Actor) και θα την κάνουμε να κινείται μέσα στο πλέγμα του κόσμου που δημιουργήσαμε. Για να δημιουργήσουμε μια νέα μορφή κάνουμε δεξί κλικ στο εικονίδιο Actor και μετά New subclass. Το Greenfoot έχει εγκατεστημένες πολλές εικόνες που μπορούν να χρησιμοποιηθούν σε έργα, χωρισμένες σε κατηγορίες. Σε αυτό το έργο χρησιμοποιήστε κάποια εικόνα από την κατηγορία Animals και δώστε στην υποκλάση ένα αντίστοιχο όνομα. 6
7 Παρά το ότι στην ιεραρχία των μορφών εμφανίστηκε το wombat, δεν εμφανίστηκε κανένα αντικείμενο μέσα στον κόσμο. Για να εισάγουμε αντικείμενα θα κάνουμε δεξί κλικ στο εικονίδιο του wombat και new wombat(), αφού πρώτα κάνουμε Compile (Μεταγλώττιση). Με το ποντίκι του υπολογιστή μπορούμε να βάλουμε το αντικείμενό μας όπου θέλουμε μέσα στο πλέγμα του κόσμου. Αν πατήσουμε Run ή Act τίποτε δεν θα γίνει και αυτό γιατί δεν έχουμε προγραμματίσει το wombat να κάνει κάτι. Για να το προγραμματίσουμε κάνουμε δεξί κλικ στο εικονίδιο του wombat και Open editor (Άνοιγμα επεξεργαστή κειμένου). Το Greenfoot δημιουργεί κώδικα για τη νέα κλάση χωρίς να υπάρχει κάτι μέσα στην μέθοδο Act. Για να προγραμματίσουμε το wombat να κινείται μέσα στον κόσμο μπορούμε να βάλουμε στην μέθοδο act την εντολή move(1). Κώδικας 3.1: public void act() // Add your action code here. move(1); 7
8 Επέκταση 3.1: Αλλάξτε την παράμετρο της εντολής move από 1 σε κάποιο μεγαλύτερο άριθμο (π.χ. 3 ή και ακόμη μεγαλύτερο). Ποιο χαρακτηριστικό της κίνησης αλλάζει; 8
9 4. Τυχαία κίνηση Στο κεφάλαιο αυτό μια μορφή (Actor) του προγράμματός μας θα κινείται με τυχαίο τρόπο μέσα στο υπόβαθρο. Δημιουργήστε ένα νέο υπόβαθρο (background) και χρησιμοποιείστε την εικόνα cell.jpg όπως φαίνεται στο παρακάτω σχήμα Η εικόνα cell.jpg έχει μέγεθος 60x60 εικονοστοιχεία (pixel) και με αυτή μπορούμε να δημιουργήσουμε ένα πλέγμα με μεγάλα τετράγωνα. Ανοίξτε τον editor για το υπόβαθρο (εντολή «Open Editor») και αλλάξτε τις παραμέτρους τις εντολής super. Η εντολή super δημιουργεί το πλέγμα στο οποίο κινούνται οι μορφές. H σύνταξη της εντολής αυτής είναι η εξής: super(αριθ_κελιών_οριζόντια, αριθ_κελιών_κάθετα, μέγεθος) Αν το μέγεθος κελιού είναι 1 όπως μέχρι τώρα τότε τα αντικείμενα μπορούν να κινηθούν ελεύθερα μέσα στο πλέγμα. Επειδή χρησιμοποιούμε την εικόνα cell.jpg θα αλλάξουμε το μέγεθος του κελιού σε 60. Για αυτό τον λόγο θα χρησιμοποιήσουμε 8 κελιά στον οριζόντιο άξονα και 8 κελιά στον κάθετο άξονα. Θα πρέπει να αλλάξετε και το κείμενο που βρίσκεται στα σχόλια ώστε να συμφωνεί με την αλλαγή που κάνατε. Κώδικας 4.1: super(8,8,60); Τώρα μπορούμε να εισάγουμε ένα αντικείμενο μέσα στο πλέγμα. Δημιουργήστε μια νέα υποκλάση της κλάσης Actor με την εικόνα ενός ποντικιού, ονομάστε τη mouse. Έχουμε μάθει με ποιον τρόπο μπορεί μια μορφή (Actor) να κινηθεί μέσα στο πλέγμα. Δεδομένου ότι το πλέγμα μας έχει μέγεθος 8x8 κελιά θα χρησιμοποιήσουμε μικρές τιμές για την παράμετρο της εντολής move. Δοκιμάστε την εντολή move(1); Θα δείτε ότι το ποντίκι κινείται από κελί σε κελί και δεν κάνει μικρές κινήσεις όπως στα έργα που έχετε υλοποιήσει μέχρι τώρα. Επειδή το ποντίκι δεν στρίβει, σύντομα φτάνει στο τελευταίο κελί του πλέγματος και σταματάει. Μπορούμε να κάνουμε το ποντίκι να στρίβει με την εντολή turn. Αν χρησιμοποιήσουμε τις εντολές move(1); turn(90); το ποντίκι καλύπτει μόνο μια μικρή περιοχή του πλέγματος. 9
10 Μπορούμε να κάνουμε το ποντίκι να μην στρίβει κάθε φορά, αλλά να στρίβει μόνο τις μισές φορές και μάλιστα με τυχαίο τρόπο. Για να το καταφέρουμε θα χρειαστούμε την εντολή: Greenfoot.getRandomNumber(όριο) Η εντολή αυτή επιστρέφει έναν τυχαίο αριθμό από το 0 μέχρι το όριο. Το όριο είναι ένας ακέραιος αριθμός (int). Μπορείτε να δείτε πώς λειτουργεί η εντολή αυτή χρησιμοποιώντας την εντολή System.out.println Κώδικας 4.2: move(1); System.out.println(Greenfoot.getRandomNumber(100)); Αν εκτελέσετε τον παραπάνω κώδικα εμφανίζεται ένα νέο παράθυρο με τίτλο «Greenfoot: Terminal Window». Κάθε φορά που πατάτε Act μια νέα τυχαία τιμή εμφανίζεται σε αυτό το παράθυρο. Η τιμή αυτή είναι το αποτέλεσμα της μεθόδου Greenfoot.getRandomNumber. Επειδή το όριο είναι 100 οι αριθμοί αυτοί μπορεί να είναι από 0 έως 99. Μπορούμε να προγραμματίσουμε το ποντίκι να στρίβει μόνο αν ο αριθμός αυτός είναι μεγαλύτερος από το 50. Για να το κάνουμε αυτό θα χρειαστούμε την εντολή if (εάν). Κώδικας 4.3: move(1); if (Greenfoot.getRandomNumber(100)>50) turn(90); Το ποντίκι στρίβει μόνο αν ο τυχαίος αριθμός είναι μεγαλύτερος του 50. Όμως αυτή δεν ξέρουμε πότε θα συμβεί δεδομένου ότι η μέθοδος Greenfoot.getRandomNumber παράγει έναν τυχαίο αριθμό κάθε φορά. Έτσι το ποντίκι κάνει μια τυχαία κίνηση μέσα στο πλέγμα. Επέκταση 4.1: Μπορείτε να προγραμματίσετε το ποντίκι ώστε να μην στρίβει τόσο συχνά; Ποια παράμετρο του προγράμματός σας θα αλλάξετε; Επέκταση 4.2: Μπορείτε να βάλετε παραπάνω από ένα αντικείμενα να κινούνται με διαφορετικούς τρόπους (με διαφορετικές παραμέτρους στις τιμές move, turn αλλά και με διαφορετική πιθανότητα περιστροφής; 10
11 5. Αλληλεπίδραση αντικειμένων Στο Κεφάλαιο 4 προγραμματίσαμε ένα ποντίκι ώστε να κινείται με τυχαίο τρόπο. Σε αυτό το κεφάλαιο θα προσθέσουμε ένα τυράκι και θα πρέπει όταν το ποντίκι ακουμπήσει το τυράκι το τυράκι να εξαφανίζεται (τρώγεται). Εισάγετε μια νέα μορφή (Actor) με όνομα cheese και εικόνα pizza_cheese.png. Η μορφή αυτή δεν θα έχει κάποιο πρόγραμμα θα προγραμματίσουμε τη μορφή mouse να την εξαφανίζει όταν την ακουμπήσει. Για να καταλάβει η μορφή mouse αν ακουμπάει μια άλλη μορφή υπάρχει η μέθοδος istouching(). Για να περιορίσουμε την εντολή ώστε να ανιχνεύει αν αυτό που ακούμπησε ήταν αντικείμενο της κλάσης cheese μπορούμε να χρησιμοποιήσουμε τη μέθοδο ως εξής: istouching(cheese.class) Kώδικας 5.1: //Random movement move(1); if (Greenfoot.getRandomNumber(100)>50) turn(90); //Check if it is touching cheese if (istouching(cheese.class)) System.out.println("Touching"); Θα δείτε ότι την πρώτη φορά που θα ακουμπήσει η μορφή mouse την μορφή cheese θα εμφανιστεί ένα παράθυρο με τη λέξη Touching, από εκείνη τη στιγμή και μετά στο παράθυρο θα εμφανίζεται η λέξη κάθε φορά που το ποντίκι ακουμπάει το τυράκι. Αντί να εμφανίζεται η λέξη Touching το ποντίκι θα έπρεπε να εξαφανίζει το τυράκι. Αυτό μπορεί να γίνει με την εντολή removetouching που επίσης θα χρησιμοποιηθεί με όρισμα cheese.class. 11
12 Kώδικας 5.2: //Random movement move(1); if (Greenfoot.getRandomNumber(100)>50) turn(90); //Check if it is touching cheese if (istouching(cheese.class)) removetouching(cheese.class); Μπορούμε να χρησιμοποιήσουμε δικές μας μεθόδους για τις ομάδες των εντολών που επιτελούν μια συγκεκριμένη λειτουργία. Οι μέθοδοι εφόσον ασχολούνται μόνο με την κίνηση και δεν υπολογίζουν κάποιο αποτέλεσμα μπορούν να μην επιστρέφουν τίποτε. Έτσι δηλώνονται με void ονομα_συνάρτησης(). Οι νέες μέθοδοι θα δηλωθούν έξω από το σώμα της act(). Είναι η πρώτη φορά που θα γράψουμε κώδικα έξω από τη μέθοδο act οπότε θα χρειαστεί ιδιαίτερη προσοχή. Kώδικας 5.3: public void act() // Add your action code here. randommove(); touchingcheese(); void randommove() move(1); if (Greenfoot.getRandomNumber(100)>50) turn(90); void touchingcheese() if (istouching(cheese.class)) removetouching(cheese.class); Για να δημιουργήσουμε αντικείμενα μιας κλάσης, όπως θυμάστε, πατάμε δεξί κλικ στο εικονίδιο της κλάσης και στη συνέχεια new όνομα_κλάσης(). Έτσι, εμφανίζεται ένα αντικείμενο της επιλεγμένης κλάσης και το τοποθετούμε πάνω στο πλέγμα. Αυτό μπορεί να γίνει και με την εντολή addobject(), με την εντολή αυτή δεν θα χρειάζεται να βάζουμε τα αντικείμενα χειροκίνητα κάθε φορά αλλά θα εμφανίζονται αυτόματα κάθε φορά που πατάμε Compile. Η εντολή addobject εκτελείται μέσα στον constructor του world (δεξί κλικ στην υποκλάση του world και επιλέγετε Open Editor). 12
13 Η εντολή addobject() συντάσσεται ως εξής: addobject(new όνομα_κλάσης(),θέση_x,θέση_y); Με το new όνομα_κλάσης() δημιουργείται ένα αντικείμενο αυτής της κλάσης και με την εντολή addobject το αντικείμενο αυτό εισάγεται σε συγκεκριμένη θέση στο πλέγμα. Για παράδειγμα, μπορούμε να κάνουμε το ποντίκι να εμφανίζεται στη μέση της οθόνης κάθε φορά. Kώδικας 5.4: super(8, 8, 60); addobject(new mouse(), 4, 4); Ο κώδικας αυτός θα εισαχθεί στον constructor της υποκλάσης bkg που έχουμε δημιουργήσει Επέκταση 5.1: Μπορείτε να εισάγετε αυτόματα ένα τυράκι, σε συγκεκριμένη θέση; Π.χ. στην θέση 1,6. Επέκταση 5.2: Μπορείτε να εισάγετε αυτόματα τρία τυράκια, σε τυχαίες θέσεις; Θυμηθείτε τη μέθοδο Greenfoot.getRandomNumber(). Επέκταση 5.3: Μπορείτε να βάλετε τις εντολές addnewobject() που χρησιμοποιήσατε σε μια νέα μέθοδο με όνομα addobjects; Έτσι ο constructor της bkg θα έχει μόνο δύο εντολές, την super και την addobjects. Επέκταση 5.4: Προσθέστε το αντικείμενο lemur με εικόνα lemur.png. Προγραμματίστε το να κινείται και αυτό με τυχαίο τρόπο και όποτε αγγίζει το ποντίκι να το τρώει. 13
14 6. Το πρώτο παιχνίδι Ένα πρώτο βήμα για να γίνει η εφαρμογή που κατασκευάσατε στην επέκταση 5.4 παιχνίδι, είναι να κινείται το ποντίκι με τα πλήκτρα του πληκτρολογίου. Η εντολή που το επιτρέπει αυτό είναι η Greenfoot.isKeyDown(). Η φράση iskeydown σημαίνει «Είναι το πλήκτρο πατημένο» χωρίς να αναφέρεται σε κάποιο πλήκτρο συγκεκριμένα. Το πλήκτρο δηλώνεται μέσα στην παρένθεση και μπορεί να είναι οποιοδήποτε πλήκτρο του πληκτρολογίου. Για να χρησιμοποιήσουμε τα βελάκια μέσα στην παρένθεση θα βάλουμε τις λέξεις ("up","down","left","right"). Έτσι αντικαθιστούμε τη μέθοδο randommove με τη μέθοδο checkkeyboard μέσα στην act της κλάσης mouse. Kώδικας 6.1: public void act() Η μέθοδος checkkeyboard(); touchingcheese touchingcheese(); δεν αλλάζει. void checkkeyboard() if (Greenfoot.isKeyDown("left")) turn(-90); if (Greenfoot.isKeyDown("right")) turn(90); if (Greenfoot.isKeyDown("up")) move(1); Παρατηρείτε ότι με το αριστερό και το δεξί πλήκτρο το ποντίκι στρίβει, ενώ με το πάνω προχωράει προς την κατεύθυνση που έχει τη δεδομένη χρονική στιγμή. Μπορούμε να σταματήσουμε το παιχνίδι όταν το αντικείμενο lemur ακουμπήσει το ποντίκι. Αυτό μπορεί να γίνει με την εντολή Greenfoot.stop(). Η οποία θα πρέπει να εκτελεστεί όταν το lemur ακουμπήσει το mouse, και κατά συνέπεια πρέπει να μπει στον κώδικα του lemur. Kώδικας 6.2: void touchingmouse() if (istouching(mouse.class)) removetouching(mouse.class); Greenfoot.stop(); Το παιχνίδι θα πρέπει να σταματάει και στην περίπτωση που το ποντίκι φάει όλα τα τυράκια. Με κάποιο τρόπο θα πρέπει να ξέρουμε πόσα τυράκια έχουν φαγωθεί (το σκορ). Δεν είναι ανάγκη όλες οι μορφές να ξέρουν το σκορ, αρκεί να το υπολογίζει το αντικείμενο 14
15 της κλάσης mouse. Αρχικά το σκορ είναι 0 καθώς το ποντίκι τρώει τυράκια, το σκορ μπορεί να αυξάνεται. Τέλος το σκορ είναι ακέραιος αριθμός (δεν έχει δεκαδικά ψηφία). Έτσι δημιουργούμε μια μεταβλητή ακεραίου με όνομα score και αρχική τιμή 0 (εντολή int score = 0). Την εντολή αυτή τη βάζουμε πάνω από τις συναρτήσεις ώστε όλες οι συναρτήσεις να έχουν πρόσβαση στη μεταβλητή score. Κάθε φορά που το ποντίκι τρώει ένα τυράκι η τιμή score πρέπει να αυξηθεί. Έτσι στην τιμή score προσθέτουμε το 1 (score + 1). Αυτή πρέπει να είναι η νέα τιμή της μεταβλητής score (score = score +1). Η διαδικασία αυτή γίνεται όταν εξαφανίζουμε ένα τυράκι. Kώδικας 6.3: int score = 0; public void act() Η μέθοδος checkkeyboard checkkeyboard(); δεν αλλάζει. touchingcheese(); void touchingcheese() if (istouching(cheese.class)) removetouching(cheese.class); score = score + 1; System.out.println(score); Κάθε φορά που το ποντίκι «τρώει» ένα τυράκι, εμφανίζεται ένα παράθυρο με το σκορ. Ωστόσο, δεν είναι αυτή η λειτουργικότητα που επιθυμούμε. Μπορούμε να κάνουμε το παιχνίδι να τελειώσει όταν το score γίνει 3. Χρησιμοποιούμε την εντολή Greenfoot.stop() και ελέγχουμε αν η τιμή της μεταβλητής score είναι 3 χρησιμοποιώντας τον τελεστή ==. Kώδικας 6.4: void touchingcheese() if (istouching(cheese.class)) removetouching(cheese.class); score = score + 1; if (score == 3) Greenfoot.stop(); Επέκταση 6.1: Μπορείτε να εισάγετε κατάλληλες εντολές ώστε το ποντίκι να κάνει μεταβολή όταν πατηθεί το κάτω πλήκτρο του πληκτρολογίου. Επέκταση 6.2: Τι θα κάνετε για να βάλετε περισσότερα τυράκια στο παιχνίδι; Τι θα πρέπει να αλλάξετε στον κώδικα της κλάσης mouse; 15
16 7. Κλικ! Στα επόμενα κεφάλαια θα χτίσουμε μια εφαρμογή βήμα-βήμα. Ξεκινώντας από ένα παιχνίδι που ο χρήστης πατάει με το ποντίκι του ένα αστέρι, θα φτάσουμε σε μια εφαρμογή που μπορεί να απασχολήσει τον χρήστη για αρκετό χρόνο. Πρόκειται για την υλοποίηση σε Greenfoot ενός βιντεομαθήματος 6. Αρχικά δημιουργούμε έναν κόσμο space και την υποκλάση του Actor με όνομα star και αντίστοιχη εικόνα. Επειδή δεν υπάρχει προεγκατεστημένη εικόνα αστεριού στο περιβάλλον του Greenfoot θα χρησιμοποιήσετε μία εικόνα από το διαδίκτυο. Δώστε ιδιαίτερη σημασία στα πνευματικά δικαιώματα. Αν θέλετε να χρησιμοποιήσετε την ίδια εικόνα που βλέπετε μπορείτε να την βρείτε στη διεύθυνση Το προκαθορισμένο μέγεθος του κόσμου είναι 600x400 pixel (εικονοστοιχεία) το οποίο καλύπτει τις ανάγκες μας για αυτό το παιχνίδι. Τώρα πρέπει να εισάγετε το αστέρι στον κόσμο με την εντολή addobject. Kώδικας 7.1: addobject(new star(),300,200); Το επόμενο βήμα είναι να κάνουμε το αστέρι να εξαφανίζεται όταν γίνει κλικ πάνω του. Αυτό γίνεται με τον παρακάτω κώδικα. Kώδικας 7.2: if (Greenfoot.mouseClicked(this)) getworld().removeobject(this); Η λέξη this αναφέρεται στο αντικείμενο που εκτελεί τον κώδικα. Δηλαδή στη συγκεκριμένη περίπτωση αναφέρεται στο αντικείμενο του αστεριού που υπάρχει στον κόσμο. Το Greenfoot έχει υλοποιήσει μια μέθοδο mouseclicked η οποία μπορεί να ελέγχει αν έχει γίνει κλικ πάνω στο αντικείμενο. Το ίδιο συμβαίνει και με την μέθοδο removeobject(this) η οποία αφαιρεί από τον κόσμο το συγκεκριμένο αντικείμενο. Η μέθοδος removeobject ανήκει σε αντικείμενα της κλάσης World. Το κάθε αντικείμενο μπορεί να αναγνωρίσει τον κόσμο στον οποίο βρίσκεται με την εντολή getworld(). Το αντικείμενο εξαφανίζεται μόνο αν έχει πατηθεί το Run, αν δεν έχει πατηθεί το Run τότε δεν εκτελούμε το πρόγραμμα αλλά προγραμματίζουμε. Σε αυτή την περίπτωση όταν το ποντίκι του υπολογιστή βρίσκεται πάνω από το αστέρι εμφανίζεται το χεράκι και όχι ο δείκτης. Επέκταση 7.1: Μπορείτε να εισάγετε ένα δεύτερο αντικείμενο που να εξαφανίζεται όταν πατηθεί με το ποντίκι;
17 Επέκταση 7.2: Μπορείτε να προγραμματίσετε το αστέρι ώστε να πηγαίνει σε μια τυχαία θέση αντί να εξαφανίζεται; (Χρησιμοποιήστε την εντολή setlocation). 17
18 8. Σκορ Το επόμενο βήμα είναι να μετρήσουμε σε πόσα αστεράκια έκανε κλικ ο χρήστης. Έχουμε ήδη δει πώς υλοποιούμε το σκορ (Κεφάλαιο 6) αλλά σε αυτό το παιχνίδι χρειάζεται να γίνει αρκετά διαφορετικά ώστε ο χρήστης να βλέπει το σκορ στην οθόνη του. Αν το αστέρι εξαφανίζεται την πρώτη φορά που ο χρήστης το πατάει με το ποντίκι, δεν έχει νόημα να μετρήσουμε το σκορ. Για αυτό τον λόγο το σκορ θα το μετρήσουμε αφού πρώτα υλοποιήσουμε την επέκταση 7.2. Μια υλοποίηση είναι να αντικατασταθεί η εντολή getworld().removeobject(this) με τις εξής εντολές: Kώδικας 8.1: int worldwidth=getworld().getwidth(); int worldheight = getworld().getheight(); setlocation(greenfoot.getrandomnumber(worldwidth), Greenfoot.getRandomNumber(worldHeight)); Σε μια μεταβλητή υπολογίζουμε το πλάτος του κόσμου μας (worldwidth) και το ύψος του (worldheight). Μετά χρησιμοποιούμε την εντολή setlocation για να μετακινηθεί το αστέρι σε μια τυχαία θέση με μέγιστη τιμή το worldwidth όσον αφορά τον άξονα x, και σε μια τυχαία θέση με μέγιστη τιμή το worldheight όσον αφορά τον άξονα y. Ξέρουμε ότι το πλάτος του κόσμου (width) είναι 600 και το ύψος (height) 400 όμως δεν χρησιμοποιούμε αυτούς τους αριθμούς γιατί μπορεί να θέλουμε αργότερα να τους αλλάξουμε (π.χ. αν αποφασίσουμε ότι η εφαρμογή μας απευθύνεται σε κινητά). Με την προτεινόμενη υλοποίηση μπορούμε απλά να αλλάξουμε τις διαστάσεις στον κώδικα του World και δεν θα χρειαστεί να κάνουμε περαιτέρω αλλαγές. Επειδή το σκορ είναι το ίδιο σε όλο το παιχνίδι και δεν έχει κάθε αστέρι το δικό του θα χρησιμοποιήσουμε τη λέξη-κλειδί static για να ορίσουμε την μεταβλητή score. Δηλώνοντας την μεταβλητή score σαν στατική η τιμή της μεταβλητής δεν συνδέεται με το αντικείμενο της κλάσης, αλλά με την ίδια την κλάση. Δεν θέλουμε η μεταβλητή score να είναι ορατή από άλλες κλάσεις, γιατί θέλουμε να αλλάζει μόνο όταν ένα αστέρι αλλάζει θέση. Τέλος η μεταβλητή score θα είναι ακέραια, δηλαδή το σκορ δεν θα έχει δεκαδικά ψηφία. Τέλος η μεταβλητή score αρχικά είναι 0. Ορίζουμε λοιπόν την μεταβλητή score ως εξής: Kώδικας 8.2: private static int score = 0; Η μεταβλητή score αυξάνεται κατά 1 όταν το αστέρι αλλάζει θέση. Για να δούμε την τιμή της μεταβλητής score σε αυτή την φάση θα χρησιμοποιήσουμε την εντολή System.out.println(score); που θα εμφανίσει ένα παράθυρο με το σκορ. Σίγουρα θα ήταν καλύτερο το σκορ να εμφανίζεται μέσα στον κόσμο όπως γίνεται σε όλα τα παιχνίδια και όχι σε ξεχωριστό παράθυρο. Αυτό θα το κάνουμε στη συνέχεια. Kώδικας 8.3: setlocation(greenfoot.getrandomnumber(worldwidth), Greenfoot.getRandomNumber(worldHeight)); score = score + 1; System.out.println(score); 18
19 9. Γράψε στην Οθόνη Για να εισάγουμε στον κόσμο το σκορ, θα χρειαστούμε μια νέα κλάση αντικειμένων. Θα την ονομάσουμε Scoreboard. Μέσα σε αυτή την κλάση θα χρησιμοποιήσουμε τον παρακάτω κώδικα. Kώδικας 9.1: public class Scoreboard extends Actor private static final Color TEXT_COLOR = new Color(200, 0, 0); private static final Color TRANSPARENT_COLOR = new Color(0, 0, 0, 0); public Scoreboard() updateimage(); public void act() updateimage(); private void updateimage() String text = "Score:"; GreenfootImage image = new GreenfootImage(text, 30, TEXT_COLOR, TRANSPARENT_COLOR); setimage(image); Στο Greenfoot μπορεί να δημιουργηθεί η εικόνα ενός κειμένου με την εντολή GreenfootImage αρκεί αυτή να έχει ορίσματα το κείμενο (text), το μέγεθος του κειμένου (30 στη συγκεκριμένη περίπτωση) και δύο χρώματα ένα για το χρώμα των γραμμάτων και ένα για το χρώμα που θα φαίνεται στον φόντο. Τα χρώματα είναι αντικείμενα της κλάσης Color: new Color(200, 0, 0); Η εντολή αυτή σημαίνει πως δημιουργείται ένα χρώμα με πολύ κόκκινο χρώμα (τιμή 200 με μέγιστη τιμή 255), καθόλου πράσινο και καθόλου μπλε (μοντέλο RGB). Το χρώμα πίσω από τα γράμματα ορίζεται σε διαφανές αφού η τέταρτη τιμή που είναι το κατά πόσο το χρώμα είναι ορατό, είναι 0. Η εντολή setimage βάζει αυτή την εικόνα που δημιουργήθηκε σαν εικόνα της μορφής. Μπορείτε να βάλετε ένα αντικείμενο Scoreboard μέσα στον κόσμο και θα δείτε ότι όπου το τοποθετήσετε θα εμφανιστεί η λέξη Score. Αν θέλετε να εμφανίζεται αυτόματα θα πρέπει να εισάγετε μέσα στον κώδικα του κόσμου την εντολή: addobject(new Scoreboard(),500,350); Σε αυτή τη φάση το αντικείμενο Scoreboard δεν εμφανίζει το πραγματικό σκορ αλλά μόνο την λέξη Score. Χρειάζεται να πάρουμε το score από την κλάση star για να εμφανίζεται και αυτό. Μια λύση θα μπορούσε να ήταν να αλλάξουμε την δήλωση της μεταβλητής score 19
20 από private σε public και να αλλάξουμε την γραμμή String text = "Score: "; σε String text = "Score: " + star.score;. Μια τέτοια λύση δεν προτείνεται στον αντικειμενοστραφή προγραμματισμό με την Java όπου προσπαθούμε να περιορίσουμε τα πιθανά προβλήματα. Δεδομένου ότι το σκορ αλλάζει μόνο από αντικείμενα της κλάσης star, δεν είναι ανάγκη να δώσουμε την δυνατότητα σε άλλα αντικείμενα να αλλάξουν αυτή την μεταβλητή, χρησιμοποιώντας public μεταβλητές. Μια καλύτερη λύση είναι να γυρίσουμε στην κλάση star και να υλοποιήσουμε μια νέα μέθοδο, την getscore. Kώδικας 9.2: public static int getscore() return score; Μια μέθοδος μπορεί να επιστρέφει μια τιμή. Η μέθοδος getscore επιστρέφει τιμή ακεραίου και συγκεκριμένα την τιμή score (return score). Μάλιστα αφού η μεταβλητή score αφορά την κλάση star και όχι κάθε αντικείμενο ξεχωριστά το ίδιο δηλώνουμε και για την συνάρτηση getscore (δήλωση static). Τέλος η συνάρτηση getscore θέλουμε να καλείται και από άλλα αντικείμενα και γι αυτό τον λόγο την ορίζουμε public. Η τελική συνάρτηση updateimage της κλάσης Scoreboard φαίνεται παρακάτω: Kώδικας 9.3: private void updateimage() String text = "Score: " + star.getscore(); GreenfootImage image = new GreenfootImage(text, 30, TEXT_COLOR, TRANSPARENT_COLOR); setimage(image); Δεδομένου ότι η συνάρτηση getscore είναι δημόσια και στατική μπορούμε να την καλέσουμε με star.getscore(). Επέκταση 9.1: Αλλάξτε τους αριθμούς που σχηματίζουν τα χρώματα στις δηλώσεις new Color. Τι παρατηρείτε; Επέκταση 9.2: Βάλτε έναν τίτλο στο παιχνίδι σας. Εναλλακτικά μπορείτε να βάλετε το όνομά σας ή το ψευδώνυμό σας ώστε να φαίνεται στην οθόνη. Διαλέξτε μόνοι σας το μέγεθος και το χρώμα της γραμματοσειράς. 20
21 10. Εξαφάνιση Για να αυξήσουμε το ενδιαφέρον του χρήστη, θα κάνουμε το αστέρι να εξαφανίζεται μετά από κάποιο χρόνο και σε προκαθορισμένους χρόνους θα εμφανίζονται νέα αστέρια στα οποία ο χρήστης θα πρέπει να κάνει κλικ. Το περιβάλλον Greenfoot μας παρέχει έναν τρόπο να θέσουμε το κατά πόσο μια εικόνα θα έχει διαφάνεια ή όχι. Όταν η τιμή της διαφάνειας (transparency) είναι 255 η εικόνα φαίνεται πλήρως, όταν η διαφάνεια (transparency) πάρει την τιμή 0 τότε η εικόνα δεν φαίνεται καθόλου (πλήρης διαφάνεια). Κατασκευάσαμε μια νέα μέθοδο adjusttransparency, η οποία μειώνει την ορατότητα από την μέγιστη τιμή της (255) κατά μία μονάδα σε κάθε Act. Τη νέα τιμή transparency που υπολογίζει την εφαρμόζει στην εικόνα της μορφής star χρησιμοποιώντας την εντολή: getimage().settransparency(transparency) αφού πρώτα εξασφαλιστεί ότι η τιμή δεν είναι μικρότερη του μηδενός. Το Greenfoot δεν δέχεται αρνητική διαφάνεια και θα προκύψει πρόβλημα αν δεν κάνουμε αυτόν τον έλεγχο. Τέλος, για αυτή την άσκηση προγραμματίζουμε το αστεράκι να εξαφανίζεται όταν πατιέται με το ποντίκι και όχι να αλλάζει θέση. Kώδικας 10.1: private static int score = 0; private int transparency = 255; public void act() // Add your action code here. if (Greenfoot.mouseClicked(this)) getworld().removeobject(this); score += 1; adjusttransparency(); private void adjusttransparency() getimage().settransparency(transparency); if (transparency <=0) transparency = 0; else transparency = transparency - 1; public static int getscore() return score; Δοκιμάστε να προσθέσετε περισσότερα αστέρια με την εντολή addobject και δείτε τι συμβαίνει. Όλα τα αστέρια εμφανίζονται και εξαφανίζονται μαζί. Καλό θα ήταν να εμφανίζονται αστέρια σε συγκεκριμένα χρονικά διαστήματα (π.χ. κάθε 50 κύκλους Act). Εφόσον η εντολή addobject ανήκει στην κλάση World μπορούμε να εισάγουμε αυτόν τον 21
22 κώδικα στην υποκλάση space του κόσμου World. Θα ορίσουμε μάλιστα και μια συνάρτηση Act() μέσα στην υποκλάση space για να εκτελείται κάθε φορά που γίνεται Run. Kώδικας 10.2: private int numofframes = 50; public void act() int width = getwidth(); int height = getheight(); numofframes--; if (numofframes == 0) addobject(new star(), Greenfoot.getRandomNumber(width), Greenfoot.getRandomNumber(height)); numofframes = 50; Επέκταση 10.1: Εισάγετε έναν νέο τύπο αντικειμένων και δώστε την ίδια λειτουργία με τα αντικείμενα star. Προσπαθήστε να κάνετε το παιχνίδι πιο εύκολο ή πιο δύσκολο αλλάζοντας το πόσο συχνά εμφανίζονται τα αντικείμενα αυτά στην οθόνη. (Δεν χρειάζεται να αλλάζει το σκορ κάθε φορά που ο χρήστης πατάει το νέο αντικείμενο που θα εισάγετε). 22
23 11. Αντίστροφη μέτρηση Στα περισσότερα παιχνίδια, όταν ο χρήστης δεν κάνει τίποτε τότε μετά από κάποιο χρόνο χάνει. Αυτό δεν συμβαίνει ακόμη στο δικό μας παιχνίδι. Για να υλοποιήσουμε αυτή τη λειτουργία θα εισάγουμε αντίστροφη μέτρηση στο παιχνίδι μας. Θα εισάγουμε μια νέα υποκλάση Timer η οποία θα μετράει κάποια δευτερόλεπτα αντίστροφα και όταν αυτά τα δευτερόλεπτα περάσουν, το παιχνίδι θα τελειώσει. Η υποκλάση αυτή θα δείχνει τα δευτερόλεπτα στην οθόνη οπότε ο κώδικας που θα υλοποιήσουμε θα μοιάζει με αυτόν της κλάσης Scoreboard. Kώδικας 11.1: private static final Color TEXT_COLOR = new Color(200, 0, 0); private static final Color TRANSPARENT_COLOR = new Color(0, 0, 0, 0); public Timer() updateimage(); public void act() updateimage(); private void updateimage() String text = "Seconds left: "; GreenfootImage image = new GreenfootImage(text, 30, TEXT_COLOR, TRANSPARENT_COLOR); setimage(image); Για να υπολογίσουμε τον χρόνο του ενός δευτερολέπτου υπάρχει η μέθοδος currenttimemillis που ανήκει στην κλάση System. long System.currentTimeMillis() Η μέθοδος αυτή επιστρέφει αριθμούς τύπου long δηλαδή πολύ μεγάλους ακεραίους, συγκεκριμένα επιστρέφει τα χιλιοστά του δευτερολέπτου που έχουν περάσει από τα μεσάνυχτα της 1/1/1970. Αρχικά σε μια μεταβλητή θα αποθηκευτεί ο τρέχων χρόνος που θα είναι ο αρχικός χρόνος. timestarted = System.currentTimeMillis(); Σε κάθε act θα ελέγχουμε αν η διαφορά μεταξύ του τρέχοντος χρόνου και του αρχικού χρόνου είναι 1000 milliseconds. Όταν η διαφορά θα είναι μεγαλύτερη από 1000 milliseconds αυτό θα σημαίνει ότι έχει περάσει ένα δευτερόλεπτο. Θα πρέπει τότε να ορίσουμε τον αρχικό χρόνο στον τρέχων χρόνο για να μπορέσουμε να μετρήσουμε ένα νέο δευτερόλεπτο. if (System.currentTimeMillis()-timeStarted>1000) timestarted = System.currentTimeMillis(); Για να μετρήσουμε δέκα δευτερόλεπτα θα χρειαστούμε μια δεύτερη μεταβλητή με όνομα seconds. Την αρχικοποιούμε στο 10 και κάθε φορά που περνάει ένα δευτερόλεπτο τη μειώνουμε κατά 1. O χρήστης θα πρέπει να ενημερωθεί για την τιμή του μετρητή, για αυτό το λόγο θα πρέπει να αλλάξει η εντολή String text = "Seconds left: " σε String text = "Seconds left: " + seconds; ώστε να φαίνονται και τα δευτερόλεπτα που έχουν περάσει. 23
24 Kώδικας 11.2: private static final Color TEXT_COLOR = new Color(200, 0, 0); private static final Color TRANSPARENT_COLOR = new Color(0, 0, 0, 0); private long timestarted; private int seconds = 10; public Timer() updateimage(); timestarted = System.currentTimeMillis(); public void act() updateimage(); if (System.currentTimeMillis()-timeStarted>1000) seconds--; timestarted = System.currentTimeMillis(); private void updateimage() String text = "Seconds left: " + seconds; GreenfootImage image = new GreenfootImage(text, 30, TEXT_COLOR, TRANSPARENT_COLOR); setimage(image); Παρατηρούμε ότι το παιχνίδι δεν τελειώνει ποτέ, καθώς ο μετρητής συνεχίζει να μετράει αρνητικούς αριθμούς. Χρειάζεται να προσθέσουμε έναν τελευταίο έλεγχο στο παιχνίδι μας. Αν η μεταβλητή seconds γίνει 0 τότε θα πρέπει το παιχνίδι να σταματήσει. Το παιχνίδι σταματάει με την εντολή Greenfoot.stop(). Kώδικας 11.3: public void act() updateimage(); if (System.currentTimeMillis()-timeStarted>1000) seconds--; if (seconds == 0) Greenfoot.stop(); timestarted = System.currentTimeMillis(); Επέκταση 11.1: Δώστε περισσότερο χρόνο στον παίκτη. Τι θα αλλάξετε ώστε ο παίκτης να παίζει για 20 δευτερόλεπτα. 24
25 12. Σύμμαχος Θα εισάγουμε στο παιχνίδι μας μια νέα μορφή. Όταν ο χρήστης κάνει κλικ σε αυτή τη νέα μορφή τότε όλα τα αστέρια θα ξαναγυρίζουν σε πλήρη ορατότητα, για να μπορεί ο χρήστης να τα πατήσει πιο εύκολα. Αυτή η μορφή θα είναι ένα shamrock, που στο Greenfoot έχει την εικόνα του τετράφυλλου τριφυλλιού. Δημιουργείστε μια νέα υποκλάση της κλάσης Actor και βρείτε το shamrock στην κατηγορία nature. Και για το shamrock μπορούμε να χρησιμοποιήσουμε παρόμοιο κώδικα όπως και για το star. Μπορούμε να βάλουμε το shamrock να εξαφανίζεται πιο γρήγορα με διαφορετικό (μεγαλύτερο) TRANSPARENCY_STEP. Κώδικας 12.1 private static final int TRANSPARENCY_STEP = 3; private int transparency = 255; public void act() // Add your action code here. World world = getworld(); getimage().settransparency((int) transparency); transparency -= TRANSPARENCY_STEP; if (transparency <=0) getworld().removeobject(this); Όταν πατιέται το shamrock θα πρέπει να αλλάζει το transparency των αντικειμένων star. Οπότε σε αυτά τα αντικείμενα θα δημιουργήσουμε μια νέα μέθοδο και θα την ονομάσουμε restoretrasnparency. Κώδικας 12.2 public void restoretransparency() transparency = 255; Αφού θέλουμε η συνάρτηση restoretransparency να καλείται από αντικείμενα άλλης κλάσης την ορίζουμε ως public. 25
Σημειώσεις Greenfoot. Νικολός Δημήτρης
Σημειώσεις Greenfoot Νικολός Δημήτρης 1. Πρόλογος Το Greenfoot είναι ένα Ολοκληρωμένο Περιβάλλον Ανάπτυξης Εφαρμογών (IDE) που έχει ως σκοπό τη διδασκαλία του Αντικειμενοστραφούς προγραμματισμού με τη
1. Εισαγωγή στο Greenfoot
1. Πρόλογος Το Greenfoot είναι ένα Ολοκληρωμένο Περιβάλλον Ανάπτυξης Εφαρμογών (IDE) που έχει ως σκοπό τη διδασκαλία του Αντικειμενοστραφούς προγραμματισμού με τη γλώσσα Java. Με το Greenfoot μπορεί να
Βελώνης Γεώργιος Καθηγητής Πληροφορικής ΠΕ20 1 ο ΕΠΑΛ Κατερίνης Έκδοση 1 η Απρίλιος 2017
Βελώνης Γεώργιος Καθηγητής Πληροφορικής ΠΕ20 1 ο ΕΠΑΛ Κατερίνης Έκδοση 1 η Απρίλιος 2017 Τι είναι το Greenfoot Το Greenfoot είναι ένα Ολοκληρωμένο Περιβάλλον Ανάπτυξης Εφαρμογών (IDE) που έχει ως σκοπό
Μάθημα 1: Εισαγωγή. Κάνε κλικ την εντολή "κινήσου" και με το ποντίκι πατημένο μετέφερε τη στη περιοχή σεναρίων.
Μάθημα : Εισαγωγή 2 Κάνε κλικ την εντολή "κινήσου" και με το ποντίκι πατημένο μετέφερε τη στη περιοχή σεναρίων. Κάνοντας διπλό κλικ στην εντολή μπορείς να δεις ότι η γάτα κινείται στη σκηνή. Επίλεξε την
Games: Εξοικείωση με το περιβάλλον του Game Maker μέσα από την κατασκευή ενός παιχνιδιού
Games: Εξοικείωση με το περιβάλλον του Game Maker μέσα από την κατασκευή ενός παιχνιδιού Εκτιμώμενη διάρκεια: Τέσσερις διδακτικές ώρες Ένταξη στο πρόγραμμα σπουδών Στο νέο Πρόγραμμα Σπουδών του Γυμνασίου
Ιδιότητες αντικειμένων, συγγραφή κώδικα, συντακτικά λάθη
Ιδιότητες αντικειμένων, συγγραφή κώδικα, συντακτικά λάθη Πώς βλέπουμε τις ιδιότητες των αντικειμένων που έχουμε δημιουργήσει; Ανοίγουμε το σενάριο CarWorld και δημιουργούμε μερικά αντικείμενα των κλάσεων
21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι
21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB Αλγόριθμος Διαδικασία Παράμετροι Τι είναι Αλγόριθμος; Οι οδηγίες που δίνουμε με λογική σειρά, ώστε να εκτελέσουμε μια διαδικασία ή να επιλύσουμε ένα
Ταυτότητα εκπαιδευτικού σεναρίου
Ταυτότητα εκπαιδευτικού σεναρίου Τίτλος: Συμβάντα και ενέργειες - Το πολύχρωμο σκαθάρι Σύντομη περιγραφή: Ένα εκπαιδευτικό σενάριο για την διδασκαλία των συμβάντων και ενεργειών στον προγραμματισμό, με
Προγραμματισμός. Το περιβάλλον του scratch
Προγραμματισμός Η τέχνη του να μπορούμε να γράφουμε τα δικά μας προγράμματα ονομάζεται προγραμματισμός. Γενικότερα ως προγραμματιστικό πρόβλημα θεωρούμε κάθε ζήτημα που τίθεται προς επίλυση, κάθε κατάσταση
1ο μέρος 1. Φτιάχνουμε την πίστα. Μια ενδεικτική πίστα φαίνεται παρακάτω:
1ο μέρος 1. Φτιάχνουμε την πίστα. Μια ενδεικτική πίστα φαίνεται παρακάτω: Εικόνα 1 Για να φτιάξουμε το τείχος επιλέγουμε καταρχήν την καρτέλα Γραφικά (κάτω δεξιά) και έπειτα το γεμάτο τετράγωνο από την
Scratch Δημοτικό 2 : Εισαγωγή στις βασικές εντολές και λειτουργίες της Scratch
Scratch Δημοτικό 2 : Εισαγωγή στις βασικές εντολές και λειτουργίες της Scratch Εκτιμώμενη διάρκεια: Δύο διδακτικές ώρες Ένταξη στο πρόγραμμα σπουδών Στο Πρόγραμμα Σπουδών του Ολοήμερου Δημοτικού (ΦΕΚ 1139/28-7-2010)
Διδακτικοί στόχοι: Μετά την ολοκλήρωση του μαθήματος θα πρέπει να μπορείτε:
6 ο ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ ΤΙΤΛΟΣ: «Είναι καλά όταν παίζουμε παιχνίδια, αλλά είναι καλύτερα όταν τα δημιουργούμε!» ΤΑΞΗ: Γ Γυμνασίου ΕΝΟΤΗΤΑ: Προγραμματισμός με το Scratch Εκτιμώμενη Διάρκεια: 6 διδακτικές ώρες
Αγώνες αυτοκινήτου Παιχνίδι για 2 παίκτες
Αγώνες αυτοκινήτου Παιχνίδι για 2 παίκτες Άνοιξε το προγραμματιστικό περιβάλλον του Scratch 2.0. Επίλεξε το Σκηνικό. Επίλεξε την καρτέλα Υπόβαθρα. Επίλεξε το πινέλο, αύξησε το πλάτος της γραμμής του πινέλου
Τα Φύλλα Εργασίας αφορά την εκμάθηση της εκτέλεσης της δομής επιλογής μέσα από το περιβάλλον του SCRATCH.
15. ΠΕΡΙΓΡΑΦΗ ΚΑΙ ΑΝΑΛΥΣΗ ΦΥΛΛΩΝ ΕΡΓΑΣΙΑΣ Τα Φύλλα Εργασίας αφορά την εκμάθηση της εκτέλεσης της δομής επιλογής μέσα από το περιβάλλον του SCRATCH. 16. ΑΞΙΟΛΟΓΗΣΗ Οι βασικές διαδικασίες αξιολόγησης προέρχονται
Οδηγίες χρήσης και σύντομη εισαγωγή στην πλατφόρμα Greenfoot Version 1.1
Οδηγίες χρήσης και σύντομη εισαγωγή στην πλατφόρμα Greenfoot Version 1.1 Επιμέλεια Σημειώσεων 1 : Πατρικάκης Χαράλαμπος, Λάζαρος Τουμανίδης, Κόγιας Δημήτριος 1 Οι σημειώσεις βασίζονται στους αντίστοιχους
Ποιές εντολές του Scratch πρέπει να ξέρω;
Ποιές εντολές του Scratch πρέπει να ξέρω; ΕΝΤΟΛΕΣ ΚΙΝΗΣΗΣ κινήσου χ βήματα στρίψε χ μοίρες στρίψε χ μοίρες στρίψε προς την κατεύθυνση των χ μοιρών στρίψε προς το [] πήγαινε στη θέση χ:[] και y:[] πήγαινε
Πώς μπορούμε να δημιουργούμε γεωμετρικά σχέδια με τη Logo;
Κεφάλαιο 2 Εισαγωγή Πώς μπορούμε να δημιουργούμε γεωμετρικά σχέδια με τη Logo; Η Logo είναι μία από τις πολλές γλώσσες προγραμματισμού. Κάθε γλώσσα προγραμματισμού έχει σκοπό τη δημιουργία προγραμμάτων
> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό
5 ο Εργαστήριο Λογικοί Τελεστές, Δομές Ελέγχου Λογικοί Τελεστές > μεγαλύτερο = μεγαλύτερο ή ίσο!= διαφορετικό Οι λογικοί τελεστές χρησιμοποιούνται για να ελέγξουμε
Το τρίτο παιχνίδι ΛΑΒΥΡΙΝΘΟΣ ΜΕ ΕΜΠΟΔΙΑ
σύντομες σημειώσεις βασισμένες σε δουλειά των συναδέλφων Κ. Φλώρου και Μ. Μαντουβάλου Το τρίτο παιχνίδι ΛΑΒΥΡΙΝΘΟΣ ΜΕ ΕΜΠΟΔΙΑ Σκοπός του παιχνιδιού είναι ο παππούς να μπορέσει να κινηθεί μέσα έναν λαβύρινθο
Παλέτα Κίνηση. Καλό είναι πριν ξεκινήσετε το παρακάτω φυλλάδιο να έχετε παρακολουθήσει τα παρακάτω δύο videos: a) Εισαγωγή στο περιβάλλον του Scratch
Τάξη : Α Λυκείου Λογισμικό : Scratch Διάρκεια : 45 λεπτά Παλέτα Κίνηση Σε αυτό το φύλλο εργασίας θα εξοικειωθείτε με τις εντολές του Scratch που βρίσκονται στην παλέτα Κίνηση. Για τον σκοπό αυτό διαβάστε
αντίστοιχο γεγονός. Όταν όντως το κουμπί
Εισαγωγή στην αλληλεπίδραση Τα έργα που έχουμε αναπτύξει έως τώρα τρέχουν ένα σενάριο και σταματούν. Τα αντικείμενά μας αλλάζουν θέση και ενδυμασίες, παίζουν διαφορετικούς ήχους και ζωγραφίζουν διάφορα
Φύλλο Εργασίας: Παιχνίδι Λαβύρινθος (MAZE) Προγραμματιστικό Εργαλείο: GAME MAKER. Ονοματεπώνυμο:
Φύλλο Εργασίας: Παιχνίδι Λαβύρινθος (MAZE) Προγραμματιστικό Εργαλείο: GAME MAKER Ονοματεπώνυμο: Τμήμα: Σκοπός σας είναι να φτιάξετε ένα ηλεκτρονικό παιχνίδι για περιπλάνηση σε Λαβύρινθο (MAZE) χρησιμοποιώντας
Φύλλα εργασίας. MicroWorlds Pro. Πολυμεσικές Εφαρμογές με την χρήση της γλώσσας LOGO Στο Γυμνάσιο. Β. Χ. Χρυσοχοΐδης
Φύλλα εργασίας MicroWorlds Pro Πολυμεσικές Εφαρμογές με την χρήση της γλώσσας LOGO Στο Γυμνάσιο Β. Χ. Χρυσοχοΐδης Πρόεδρος Συλλόγου Εκπαιδευτικών Πληροφορικής Φλώρινας 2 «Σχεδίαση και ανάπτυξη δραστηριοτήτων
Τιμή Τιμή. σκορ. ζωές
Εισαγωγή στην έννοια των μεταβλητών Οι μεταβλητές Θα πρέπει να έχετε παρατηρήσει ότι έχουμε φτιάξει τόσα παιχνίδια μέχρι αυτό το σημείο και δεν έχουμε αναφερθεί πουθενά για το πως μπορούμε να δημιουργήσουμε
Το δεύτερο παιχνίδι ΤΟΥΒΛΑΚΙΑ
Το δεύτερο παιχνίδι ΤΟΥΒΛΑΚΙΑ Στο παιχνίδι υπάρχουν τουβλάκια διαφόρων χρωμάτων. Σκοπός του παιχνιδιού είναι να καταστραφούν όλα τα τουβλάκια. Ο παίκτης χειρίζεται από το πληκτρολόγιο μία ρακέτα. Ένα μπαλάκι
α) Πώς παίρνουμε αποφάσεις στην καθημερινή μας ζωή; Συμπληρώσετε τον παρακάτω πίνακα: τότε
1. ΠΕΡΙΓΡΑΦΗ ΚΑΙ ΑΝΑΛΥΣΗ ΦΥΛΛΩΝ ΕΡΓΑΣΙΑΣ (Ή ΚΑΙ ΑΛΛΟΥ ΔΙΔΑΚΤΙΚΟΥ ΥΛΙΚΟΥ) ΑΞΙΟΛΟΓΗΣΗ ΤΩΝ ΜΑΘΗΤΩΝ ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 1 «Η δομή επιλογής εάν» Δραστηριότητα 1 α) Πώς παίρνουμε αποφάσεις στην καθημερινή μας ζωή;
A7.2 Δημιουργία Απλής Γραφικής Εφαρμογής σε Περιβάλλον Scratch
A7.2 Δημιουργία Απλής Γραφικής Εφαρμογής σε Περιβάλλον Scratch Τι θα μάθουμε σήμερα: Να ενεργοποιούμε το λογισμικό Scratch Να αναγνωρίζουμε τα κύρια μέρη του περιβάλλοντος του Scratch Να δημιουργούμε/εισάγουμε/τροποποιούμε
ΣΗΜΕΙΩΣΕΙΣ. στη γλώσσα προγραμματισμού. Γκέτσιος Βασίλειος
ΣΗΜΕΙΩΣΕΙΣ στη γλώσσα προγραμματισμού Microsoft Worlds Pro Γκέτσιος Βασίλειος Σημειώσεις στη γλώσσα προγραμματισμού Microsoft Worlds Pro σελ. 1 Το περιβάλλον προγραμματισμού Microsoft Worlds Pro Μενού
Σενάριο 17: Παιχνίδι μνήμης με εικόνες
Σενάριο 17: Παιχνίδι μνήμης με εικόνες Φύλλο Εργασίας Τίτλος: Παιχνίδι μνήμης με εικόνες Γνωστικό Αντικείμενο: Εφαρμογές Πληροφορικής-Υπολογιστών Διδακτική Ενότητα: Διερευνώ - Δημιουργώ Ανακαλύπτω, Συνθετικές
Γραφικά υπολογιστών Εργαστήριο 10 Εισαγωγή στα Sprites
Γραφικά υπολογιστών Εργαστήριο 10 Εισαγωγή στα Sprites Σκοπός της 10ης άσκησης είναι να μάθουμε να χρησιμοποιούμε sprites και να φτιάξουμε ένα παιχνίδι που χρησιμοποιεί συγκρούσεις. Θα δούμε επίσης μερικά
Η Δραστηριότητα 1 του Φύλλου Εργασίας 1 έχει ως στόχο την εξοικείωση με το περιβάλλον του scratch και πιο συγκεκριμένα με τις μορφές και τα σκηνικά.
ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 1 Δραστηριότητα 1 Η Δραστηριότητα 1 του Φύλλου Εργασίας 1 έχει ως στόχο την εξοικείωση με το περιβάλλον του scratch και πιο συγκεκριμένα με τις μορφές και τα σκηνικά. Αρχικά θα μάθουμε να
Μαθήματα Scratch -Δραστηριότητα 1 Παλέτα Κίνηση
Μάθημα: Scrtach Τάξη: Ε/ΣΤ Παλέτα Κίνηση Προετοιμασία για το μάθημα: Καλό είναι πριν ξεκινήσουμε να παρακολουθήσουμε τα παρακάτω δύο videos: a) Εισαγωγή στο περιβάλλον του Scratch β) Εντολές κίνησης και
Σενάριο 16: Ο κόσμος του Robby
Σενάριο 16: Ο κόσμος του Robby Φύλλο Εργασίας Τίτλος: Ο κόσμος του Robby Γνωστικό Αντικείμενο: Εφαρμογές Πληροφορικής-Υπολογιστών Διδακτική Ενότητα: Διερευνώ - Δημιουργώ Ανακαλύπτω, Συνθετικές εργασίες.
Άσκηση 5 Firefox Αποθήκευση αρχείων
Άσκηση 5 Firefox Αποθήκευση αρχείων Παρουσίαση Γραμμών Εργαλείων Ανοίγουμε τον περιηγητή ιστού Firefox. Αποθήκευση εικόνων Ανοίγουμε την σελίδα www.google.gr Στην πάνω αριστερά γωνία κάνουμε αριστερό κλικ
Βυζαντινός Ρεπαντής Κολλέγιο Αθηνών 2010
Βυζαντινός Ρεπαντής Κολλέγιο Αθηνών 2010 Δημιουργία ενός απλού παιχνιδιού με το Gamemaker (μετάφραση από το http://www.stuffucanuse.com/downloads/gamemaker-introductionlessons/free_game_downloads_gamemaker.htm)
Slalom Race Computer Game on Scratch
Slalom Race Computer Game on Scratch Μπογιατζή Ελισάβετ ¹, Μεταξά Παυλίνα², Νεστοροπούλου Ευσεβεία³, Μαρόγλου Ευαγγελία 4 1 boelisabet@gmail.com 2 pavlinamet2@gmail.com 3 makis.nestoro@hotmail.com 4 euaggeliam2000@gmail.com
Αριστείδης Παλιούρας Ανακαλύψτε το Scratch 2
Παιχνίδι Bounce Ball Στη δραστηριότητα αυτή θα δημιουργήσεις το παιχνίδι Bounce Ball στο οποίο η μπάλα κινείται συνεχώς και ο χρήστης προσπαθεί με το ποντίκι του να μετακινεί την πράσινη μπάρα για να χτυπήσει
Δραστηριότητα 1 Σχεδιασμός σκηνικού
ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 3 Δραστηριότητα 1 Σχεδιασμός σκηνικού Ας κατασκευάσουμε την επόμενη σκηνή-room. Όμοια με προηγουμένως κατασκευάζουμε το σκηνικό-background «ΔΡΟΜΟΣ» και αφού δημιουργήσουμε τη σκηνή-room
Σενάριο 13: Προγραμματίζοντας ένα Ρομπότ
Σενάριο 13: Προγραμματίζοντας ένα Ρομπότ Φύλλο Εργασίας Τίτλος: Προγραμματίζοντας ένα Ρομπότ Γνωστικό Αντικείμενο: Πληροφορική Διδακτική Ενότητα: Ελέγχω-Προγραμματίζω τον Υπολογιστή Τάξη: Γ Γυμνασίου Διάρκεια:
Σχετική κίνηση αντικειμένων
Σχετική κίνηση αντικειμένων Πως θα μπορούσε να κινηθεί ένας χαρακτήρας προς την έξοδο ενός λαβύρινθου; Πως θα μπορούσε το αυτοκινητάκι μας να κινείται μέσα στην πίστα; Πως θα μπορούσαμε να αναπαραστήσουμε
Παλέτα Κίνηση. Για να μετακινήσουμε ένα αντικείμενο χρησιμοποιούμε την εντολή ΚΙΝΗΣΟΥ
Παλέτα Κίνηση Σε αυτό το φύλλο εργασίας θα εξοικειωθείτε με τις εντολές του Scratch που βρίσκονται στην παλέτα Κίνηση. Για τον σκοπό αυτό διαβάστε προσεκτικά τις οδηγίες, δοκιμάστε να χρησιμοποιήσετε τις
Σχεδίαση και ανάπτυξη δραστηριοτήτων στο προγραμματιστικό περιβάλλον MicroWorlds Pro
«Σχεδίαση και ανάπτυξη δραστηριοτήτων στο προγραμματιστικό περιβάλλον MicroWorlds Pro» Φύλλο Εργασίας 1 Ο μαθητής εξοικειώνεται με το περιβάλλον της Logo και του Microworlds Pro και μαθαίνει να δημιουργεί
Δομή Επιλογής. 1. Αν ο σκύλος ακουμπήσει ένα κόκαλο τότε το κόκαλο εξαφανίζεται και ο παίκτης κερδίζει 10 πόντους.
Τάξη : Α Λυκείου Λογισμικό : Scratch Ενδεικτική Διάρκεια : 45 λεπτά Δομή Επιλογής Μία από τις πιο σημαντικές δομές που χρησιμοποιείται στον προγραμματισμό είναι η δομή επιλογής. Η δομή αυτή μας δίνει την
ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΤΗΣ. Εργαλειοθήκη Παρουσιάζετε το έργο σας Εκκινείτε τα σενάριά σας Σταματάτε όλα τα σενάρια. Οι 8 ομάδες της Παλέτας εντολών
ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΤΗΣ Οι 8 ομάδες της Παλέτας εντολών Εργαλειοθήκη Παρουσιάζετε το έργο σας Εκκινείτε τα σενάριά σας Σταματάτε όλα τα σενάρια Σκηνή Εδώ ζωντανεύει το σενάριό σας Εντολές κάθε ομάδας Αυτή είναι
Καροτοκυνηγός. Αντικείμενα
Καροτοκυνηγός Το παιχνίδι λαμβάνει χώρα σε ένα κτήμα, όπου στη δεξιά του πλευρά του υπάρχει ένα χωράφι με καρότα τα οποία οριοθετούνται από μια λευκή ευθεία γραμμή αριστερά τους (βλ. επόμενη εικόνα). Το
Εργαστήριο 1-1 η Άσκηση - Ανάλυση
Εργαστήριο 1-1 η Άσκηση - Ανάλυση Εκφώνηση: Δημιουργείστε εφαρμογή σε Java Swing με χρήση του IDE NetBeans όπου θα παρουσιάζεται ποιο κουμπί πατήθηκε. Η εφαρμογή θα μοιάζει ως εξής: Πρώτο Βήμα: Αρχική
Τι θα απαντούσατε αλήθεια στην ίδια ερώτηση για την περίπτωση της επόμενης εικόνας;
Κίνηση με συντεταγμένες Στην προηγούμενη υποενότητα είδαμε πως μπορούμε να κάνουμε το χαρακτήρα σας να κινηθεί με την εντολή κινήσου...βήματα που αποτελεί και την απλούστερη εντολή της αντίστοιχης παλέτας
Κατερίνα Χατζηφωτεινού. Αλγοριθμικά παιχνίδια & Kodu
Κατερίνα Χατζηφωτεινού Αλγοριθμικά παιχνίδια & Kodu Αλγοριθμικά παιχνίδια Η μαγική σφαίρα http://users.uom.gr/~p2/sde/divers/psychic.swf Η μαγική σφαίρα http://users.uom.gr/~p2/sde/divers/psychic.swf Λύση:
Scratch Δημοτικό 4: Οι μεταβλητές στη γλώσσα προγραμματισμού Scratch (οι μεταβλητές σαν απαριθμητές)
Scratch Δημοτικό 4: Οι μεταβλητές στη γλώσσα προγραμματισμού Scratch (οι μεταβλητές σαν απαριθμητές) Εκτιμώμενη διάρκεια: Μία διδακτική ώρα Ένταξη στο πρόγραμμα σπουδών Στο Πρόγραμμα Σπουδών του Ολοήμερου
Εμφανίζονται 3 επιλογές με 3 εικονίδια, η «ζωγραφική», η «εισαγωγή» και η «κάμερα».
Σχεδιάζοντας ένα σκηνικό Το σκηνικό είναι στην ουσία το φόντο που βρίσκεται στην σκηνή μας το οποίο είναι αρχικά λευκό. Το Scratch μας δίνει τη δυνατότητα να εισάγουμε είτε ένα έτοιμο σκηνικό είτε να ζωγραφίσουμε
18.ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 1 Δραστηριότητα 1
18.ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 1 Δραστηριότητα 1 Στόχος της δραστηριότητας είναι να δημιουργήσουμε το σκηνικό της πόλης στο SCRATCH, να εισάγουμε ένα ελικόπτερο και στη συνέχεια να το προγραμματίσουμε ώστε να κινείτε
Tank Rescue Computer Game σε Scratch
Tank Rescue Computer Game σε Scratch Μπέλτσος Νικόλαος 1, Παναγιωτόπουλος Ευάγγελος 2, Παπαδόπουλος Βασίλης 3, Παπουδάρης Κωνσταντίνος 4 1 sokin2@yahoo.gr 2 vaggelispan@yahoo.gr 3 papadopoulos_vasilis@yahoo.gr
ΣΚΗΝΙΚΟ ΥΠΟΒΑΘΡΑ ΑΡΧΙΚΗ
Scratch 1. Σκηνικό (Αρχική Έχασες Κέρδισες). Η πρώτη μου δουλειά όταν φτιάχνω ένα παιχνίδι είναι πάω στο ΣΚΗΝΙΚΟ - ΥΠΟΒΑΘΡΑ και να σχεδιάσω (ή να αντιγράψω μια εικόνα από το διαδίκτυο ή από οπουδήποτε
Breakdance Computer Game σε Scratch.
Breakdance Computer Game σε Scratch. Ταστίογλου Μαριάννα 1, Τραντοπούλου Μαργαρίτα 2 1 Μαθήτρια Γ Τάξης, 2 ο Γυμνάσιο Ευόσμου atas94@otenet.gr 2 Μαθήτρια Γ Τάξης, 2 ο Γυμνάσιο Ευόσμου daizy@in.gr Δασκαλάκης
Δημιουργία μιας εφαρμογής Java με το NetBeans
Δημιουργία μιας εφαρμογής Java με το NetBeans Για να δημιουργήσετε μια εφαρμογή Java πρέπει να ακολουθήσετε τα εξής βήματα : Αρχικά πρέπει να δημιουργηθεί ένα project το οποίο θα περιέχει όλα τα αρχεία
Αριστείδης Παλιούρας Ανακαλύψτε το Scratch 2
Λαβύρινθος Στη δραστηριότητα αυτή θα δημιουργήσεις το παιχνίδι «Λαβύρινθος» στο οποίο ο χρήστης οδηγεί μια γάτα, χρησιμοποιώντας τα βελάκια του πληκτρολογίου, για να βγει από έναν λαβύρινθο με κόκκινους
Εφαρμογή δημιουργίας σεναρίων Sctatch
Εφαρμογή δημιουργίας σεναρίων Sctatch Δημιουργία Σεναρίων με το Scratch - τάξη Β Το Scratch είναι μια γλώσσα οπτικού προγραμματισμού οδηγούμενου από γεγονότα. Τα έργα (project) στο Scratch οικοδομούνται
ΟΔΗΓΙΕΣ ΓΙΑ ΤΟ ΠΑΙΧΝΙΔΙ.
ΟΔΗΓΙΕΣ ΓΙΑ ΤΟ ΠΑΙΧΝΙΔΙ. Το πρώτο πράγμα που βλέπουμε μόλις ξεκινάμε το παιχνίδι είναι μια λίστα με όλα τα διαθέσιμα βίντεο με τα οποία μπορούμε να εξασκηθούμε. Σε αυτή περιλαμβάνονται επίσης πληροφορίες
Τα στοιχεία του παιχνιδιού : Σκηνικό
Περιγραφή των φύλλων δραστηριοτήτων διδασκαλίας γνωστικού αντικειμένου Φύλλο δραστηριοτήτων 1 Αναφέρεται στο στόχο σχεδίασης του παιχνιδιού. (Στόχος Α) Σκηνικό Τα στοιχεία του παιχνιδιού : (Ρακέτα) Χαρακτήρες
Ενότητα: GameMaker Τα βασικά. Δημιουργώντας ένα παιχνίδι µε το GameMaker
Μάθημα: Εφαρμογές Πληροφορικής Ημ/νια: 13-1-2016 Φύλλο Εργασίας Τάξη: A Λυκείου Ενότητα: GameMaker Τα βασικά Δραστηριότητα 1η Δημιουργώντας ένα παιχνίδι µε το GameMaker Το GameMaker είναι µία εφαρμογή
Φύλλο Εργασίας: Παιχνίδι Λαβύρινθος (MAZE) Προγραμματιστικό Εργαλείο: SCRATCH. Ονοματεπώνυμο:
Φύλλο Εργασίας: Παιχνίδι Λαβύρινθος (MAZE) Προγραμματιστικό Εργαλείο: SCRATCH Ονοματεπώνυμο: Τμήμα: Σκοπός σας είναι να φτιάξετε ένα ηλεκτρονικό παιχνίδι για έξοδο από Λαβύρινθο (MAZE) χρησιμοποιώντας
Κεφάλαιο 1: Κίνηση και γεωμετρικά σχήματα
Ασκήσεις της Ενότητας 2 : Ζωγραφίζοντας με το ΒΥΟΒ -1- α. Η χρήση της πένας Κεφάλαιο 1: Κίνηση και γεωμετρικά σχήματα Υπάρχουν εντολές που μας επιτρέπουν να επιλέξουμε το χρώμα της πένας, καθώς και το
Εγχειρίδιο Χρήσης του «Μαθη.Συ.»
Εργαστήριο Εκπαιδευτικής Τεχνολογίας Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών Φιλοσοφική Σχολή Τμήμα Φ.Π.Ψ., Τομέας Παιδαγωγικής Διευθυντής: Καθ. Χ. Κυνηγός Εγχειρίδιο Χρήσης του «Μαθη.Συ.» Πίνακας
Αντανάκλαση κειμένου (Text Reflection)
Αντανάκλαση κειμένου (Text Reflection) Έννοιες που θα χρησιμοποιηθούν 1) Layers (Επίπεδα εικόνας) 2) Colors Palette (Παλέτα χρωμάτων) 3) Text Tool (Εργαλείο εισαγωγής) 4) Move Selection (Μετακίνηση επιλεγμένης
Οδηγίες Εγκατάστασης της εφαρμογής Readium και Readium για μαθητές με αμβλυωπία για την ανάγνωση βιβλίων epub σε Υπολογιστή.
Οδηγίες Εγκατάστασης της εφαρμογής Readium και Readium για μαθητές με αμβλυωπία για την ανάγνωση βιβλίων epub σε Υπολογιστή. Βήμα 1 ο : Εγκατάσταση εφαρμογής ανάγνωσης Readium και Readium για μαθητές με
Σενάριο 14: Προγραμματίζοντας ένα Ρομπότ ανιχνευτή
Σενάριο 14: Προγραμματίζοντας ένα Ρομπότ ανιχνευτή Φύλλο Εργασίας Τίτλος: Προγραμματίζοντας ένα Ρομπότ ανιχνευτή Γνωστικό Αντικείμενο: Πληροφορική Διδακτική Ενότητα: Ελέγχω-Προγραμματίζω τον Υπολογιστή
Η εντολή «επανέλαβε Χ»
Η εντολή «επανέλαβε Χ» Όπως είδαμε πιο πάνω, η εντολή για πάντα είναι χρήσιμη σε διάφορα προγράμματα όταν π.χ. θέλουμε να δείξουμε την κίνηση της γης γύρω από τον ήλιο ή για να αναπαραστήσουμε το δίλημμα
Scratch Δημοτικό 5: Οι μεταβλητές σαν ιδιότητες αντικειμένων στη γλώσσα προγραμματισμού Scratch
Scratch Δημοτικό 5: Οι μεταβλητές σαν ιδιότητες αντικειμένων στη γλώσσα προγραμματισμού Scratch Εκτιμώμενη διάρκεια: Μία διδακτική ώρα Ένταξη στο πρόγραμμα σπουδών Στο Πρόγραμμα Σπουδών του Ολοήμερου Δημοτικού
Μέρος Α Γνωριμία με το περιβάλλον προγραμματισμού του ρομπότ OTTO
OTTO ROBOT Εκπαιδευτικές Δραστηριότητες Μέρος Α Γνωριμία με το περιβάλλον προγραμματισμού του ρομπότ OTTO Δραστηριότητα 1 - Γνωριμία, περιγραφή Otto Τι είναι το ρομπότ Otto; Είναι ένα αλληλεπιδραστικό
Εισαγωγή στην επανάληψη
Εισαγωγή στην επανάληψη Στο κεφάλαιο αυτό ήρθε η ώρα να μελετήσουμε την επανάληψη στον προγραμματισμό λίγο πιο διεξοδικά! Έχετε ήδη χρησιμοποιήσει, χωρίς πολλές επεξηγήσεις, σε προηγούμενα κεφάλαια τις
Το σκηνικό μας είναι πλέον έτοιμο για εισάγουμε τα υπόλοιπα αντικείμενα του έργου μας.
Εισαγωγή έτοιμου σκηνικού Όπως είδαμε και στο προηγούμενο κεφάλαιο, το Scratch παρέχει επίσης μία πληθώρα από έτοιμα σκηνικά. Για να εισάγουμε ένα έτοιμο σκηνικό, πηγαίνουμε στην καρτέλα Υπόβαθρα του σκηνικού
4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος
4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος Μεταβλητές Συστήματος Η Processing χρησιμοποιεί κάποιες μεταβλητές συστήματος, όπως τις ονομάζουμε, για να μπορούμε να παίρνουμε πληροφορίες από το
3 ο εργαστήριο Scratch for NinjaCoders
3 ο εργαστήριο Scratch for NinjaCoders Τίτλος εφαρμογής: Space Invaders (Διαστημικοί εισβολείς) Περιγραφή στόχων, σενάριο εφαρμογής, παρουσίαση scratch, μεταβλητές, συμβάντα, προγραμματιστικές δομές 0
Οδηγίες για το CABRI - GEOMETRY II Μωυσιάδης Πολυχρόνης - Δόρτσιος Κώστας
Οδηγίες για το CABRI - GEOMETRY II Μωυσιάδης Πολυχρόνης - Δόρτσιος Κώστας Εκτελώντας το πρόγραμμα παίρνουμε ένα παράθυρο εργασίας Γεωμετρικών εφαρμογών. Τα βασικά κουμπιά και τα μενού έχουν την παρακάτω
ΒΑΣΙΚΑ ΜΑΘΗΜΑΤΑ ΝΤΟΥΛΑΚΗΣ - ΜΕΝΙΟΥΔΑΚΗΣ ΕΠΑ.Λ ΕΛ. ΒΕΝΙΖΕΛΟΥ
ΒΑΣΙΚΑ ΜΑΘΗΜΑΤΑ ΠΕΡΙΕΧΟΜΕΝΑ ΠΕΡΙΕΧΟΜΕΝΑ... 2 ΠΡΟΛΟΓΟΣ... 3 ΕΙΣΑΓΩΓΗ... 4 Η ΑΝΑΠΤΥΞΗ ΤΗΣ ΟΘΟΝΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ... 4 Ο ΕΚΠΑΙΔΕΥΤΗΣ ΡΟΜΠΟΤ... 5 ΤΟ ΠΑΡΑΘΥΡΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ... 5 ΤΑ ΚΟΥΜΠΙΑ ΚΑΙ ΤΑ ΜΠΛΟΚ...
Γ ΓΥΜΝΑΣΙΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΗ ΓΛΩΣΣΑ MicroWorlds Pro
Για να μπορέσουμε να εισάγουμε δεδομένα από το πληκτρολόγιο αλλά και για να εξάγουμε εμφανίσουμε αποτελέσματα στην οθόνη του υπολογιστή χρησιμοποιούμε τις εντολές Εισόδου και Εξόδου αντίστοιχα. Σύνταξη
Περιεχόμενα ΓΕΩΠΥΛΗ ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΚΕΝΤΡΙΚΟ SITE. ΧΑΡΤΗΣ... 2 Είσοδος στην εφαρμογή «Χάρτης»... 2 Λειτουργίες εφαρμογής «Χάρτης»...
Περιεχόμενα ΧΑΡΤΗΣ... 2 Είσοδος στην εφαρμογή «Χάρτης»... 2 Λειτουργίες εφαρμογής «Χάρτης»....2 Πλοήγηση στο χάρτη... 3 Σχεδίαση στο χάρτη... 4 Εκτύπωση του χάρτη... 6 Μετρήσεις επάνω στο χάρτη... 9 Εμφάνιση
Lego WeDo - Αεροπλάνο
Lego WeDo - Αεροπλάνο Το σετ κατασκευής Lego WeDo δίνει τη δυνατότητα στους μαθητές του δημοτικού (ηλικίες 7 11) να κατασκευάσουν απλά μοντέλα Lego και στη συνέχεια να τα συνδέσουν με έναν υπολογιστή για
App Inventor 5ο Μάθημα (Κορώνα γράμματα - επέκταση)
App Inventor 5ο Μάθημα (Κορώνα γράμματα - επέκταση) Λογικός τελεστής not Δομή επιλογής If then else Λογικές μεταβλητές Animation Θα επεκτείνουμε την εφαρμογή Κορώνα Γράμματα που δόθηκε σαν δραστηριότητα
ΚΑΤΑΣΚΕΥΗ ΠΑΡΑΛΛΗΛΟΓΡΑΜΜΩΝ ΜΕ ΧΡΗΣΗ LOGO
1 ΚΑΤΑΣΚΕΥΗ ΠΑΡΑΛΛΗΛΟΓΡΑΜΜΩΝ ΜΕ ΧΡΗΣΗ LOGO ΦΥΛΛΑ ΕΡΓΑΣΙΑΣ ΜΑΘΗΤΗ ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 1 1. Τοποθέτησε μια χελώνα στην επιφάνεια εργασίας. 2. Με ποια εντολή γράφει η χελώνα μας;.. 3. Γράψε την εντολή για να πάει
Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών
Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να καταλάβουν την διαφορά ανάμεσα σε τοπικές και καθολικές μεταβλητές. Nα κάνουν αποσφαλμάτωση
Η κίνηση και η δομή επιλογής στο Scratch
Η κίνηση και η δομή επιλογής στο Scratch Ας ξεκινήσουμε Θα σου δείξω πώς θα με κάνεις να κινηθώ 10 βήματα! Σύρε την εντολή ΚΙΝΗΣΟΥ από τη παλέτα Κίνηση μέσα στην περιοχή σεναρίων. Κάνε κλικ πάνω στην εντολή
Οδηγίες για smartphone ή tablet με λογισμικό Android
Οδηγίες για smartphone ή tablet με λογισμικό Android Οδηγίες εγκατάστασης της εφαρμογής Gitden Reader για την ανάγνωση βιβλίων epub σε smartphone ή tablet Βήμα 1 ο : Εγκατάσταση της εφαρμογής ανάγνωσης
Ορισμός του χρώματος όρισε το χρώμα πένας σε [06_π03.sb] άλλαξε χρώμα πένας κατά. άλλαξε χρώμα πένας κατά άλλαξε χρώμα πένας κατά [06_π04.
Ορισμός του χρώματος Δεν θα ήταν πιο ενδιαφέρον να μπορούμε να προσδιορίσουμε το χρώμα της πένας κατά τη διάρκεια του έργου σας; Δεν είναι πιθανό να θέλετε να σχεδιάσετε ένα κόκκινο αυτοκίνητο και ένα
Φτιάξε ένα απλό παιχνίδι
Φτιάξε ένα απλό παιχνίδι Άνοιξε το προγραμματιστικό περιβάλλον του Scratch 2.0 κάνοντας κλικ στο εικονίδιο στην επιφάνεια εργασίας. Κάνε κλικ στο κουμπί «Εισαγωγή αντικειμένου» για να εισάγεις ένα νέο
ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ: Εντολές κίνησης και στροφής στο προγραμματιστικό περιβάλλον Scratch. ΟΝΟΜΑΤΕΠΩΝΥΜΟ:
ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ: Εντολές κίνησης και στροφής στο προγραμματιστικό περιβάλλον Scratch. ΟΝΟΜΑΤΕΠΩΝΥΜΟ: 1. Ανοίξτε τον φυλλομετρητή Mozilla Firefox και στην γραμμή διευθύνσεων πληκτρολογήστε την διεύθυνση:
Ο Προγραμματισμός στην Πράξη
Ο Προγραμματισμός στην Πράξη Το περιβάλλον προγραμματισμού MicroWorlds Pro Μενού επιλογών Γραμμή εργαλείων Επιφάνεια εργασίας Περιοχή Καρτελών Κέντρο εντολών Καρτέλες Οι πρώτες εντολές Εντολές εμφάνισης
Κεφάλαιο 6: Ζωγραφική
Κεφάλαιο 6: Ζωγραφική... Σε αυτό το κεφάλαιο: 6.1 Ζωγραφική 6.2 Απλά ζωγράφισε 6.3 Χρώμα, σκιά και μέγεθος 6.4 Παράδειγμα... «Ζωγραφίζω πράγματα που σκέφτομαι, όχι πράγματα που βλέπω!» (Πικάσο) 6.1 Ζωγραφική
1. Το ηλεκτρικό ρεύμα και τα ηλεκτρικά κυκλώματα
1. Το ηλεκτρικό ρεύμα και τα ηλεκτρικά κυκλώματα Φύλλο Εργασίας Τίτλος: Το ηλεκτρικό ρεύμα και τα ηλεκτρικά κυκλώματα Γνωστικό Αντικείμενο: Ερευνώ το Φυσικό Κόσμο Διδακτική Ενότητα: Ηλεκτρισμός Τάξη: Ε'
Δομή Επανάληψης. 3. Επανέλαβε την κίνηση του αυτοκινήτου ώσπου αυτό να ακουμπήσει στο κόκκινο χρώμα.
Τάξη : Α Λυκείου Λογισμικό : Scratch Ενδεικτική Διάρκεια : 45 λεπτά Δομή Επανάληψης Μία από τις πιο βασικές δομές στον προγραμματισμό είναι η δομή επανάληψης. Η δομή αυτή μας δίνει την δυνατότητα να επαναλαμβάνουμε
Βασικές εντολές σχεδίασης στη γλώσσα προγραμματισμού Logo Εντολή επανάληψης
Βασικές εντολές σχεδίασης στη γλώσσα προγραμματισμού Logo Εντολή επανάληψης Επαρκές Σενάριο Γνωστικό αντικείμενο: Πληροφορική Δημιουργός: Αθηνά Κοκκόρη ΙΝΣΤΙΤΟΥΤΟ ΕΚΠΑΙΔΕΥΤΙΚΗΣ ΠΟΛΙΤΙΚΗΣ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ,
Παράδειγμα «Ημίτονο και ζωγραφική!»: Έχει δει στα μαθηματικά τη γραφική παράσταση της συνάρτησης του ημιτόνου; Σας θυμίζει κάτι η παρακάτω εικόνα;
Τελεστές, συνθήκες και άλλα! Όπως έχει διαφανεί από όλα τα προηγούμενα παραδείγματα, η κατασκευή κατάλληλων συνθηκών στις εντολές εάν, εάν αλλιώς, για πάντα εάν, περίμενε ώσπου, επανέλαβε ώσπου, είναι
Σενάριο 14: Προγραμματίζοντας ένα Ρομπότ ανιχνευτή
Σενάριο 14: Προγραμματίζοντας ένα Ρομπότ ανιχνευτή Ταυτότητα Σεναρίου Τίτλος: Προγραμματίζοντας ένα Ρομπότ ανιχνευτή Γνωστικό Αντικείμενο: Πληροφορική Διδακτική Ενότητα: Ελέγχω-Προγραμματίζω τον Υπολογιστή
Πώς το λένε Computer game στο Scratch
Πώς το λένε Computer game στο Scratch Μιχαηλία Γκαλλέ¹, Χριστόδουλος Σατραζέμης², 1 Μαθήτρια Γ Τάξης, 2 ο Γυμνάσιο Ευόσμου mixaelagalle@gmail.com 2 Μαθητής Γ Τάξης, 2 ο Γυμνάσιο Ευόσμου linosatra@gmail.com
ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ GPRS 1. ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ GOOGLE EARTH
Αχαρναί 20.7.09 ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ GPRS 1. ΟΔΗΓΙΕΣ ΕΓΚΑΤΑΣΤΑΣΗΣ GOOGLE EARTH Για τη σωστή λειτουργία του προγράμματος πρέπει να έχετε εγκαταστήσει στον υπολογιστή σας το λογισμικό χαρτογράφησης
Παραδείγματα μεταβλητών
Παραδείγματα μεταβλητών Παράδειγμα Bouncing Balls: Στη σκηνή υπάρχουν τρείς μπάλες και κάθε μία έχει διαφορετικό μέγεθος από τις άλλες. Όλες οι μπάλες χοροπηδούν ταυτόχρονα προς όλες τις κατευθύν-σεις.
Οδηγίες για προσθήκη Web Frames Tools to the Quick Access Bar σε μεταγενέστερη έκδοση του Word
Οδηγίες για προσθήκη Web Frames Tools to the Quick Access Bar σε μεταγενέστερη έκδοση του Word Επειδή οι μεταγενέστερες εκδόσεις του Word δεν περιλαμβάνουν στο μενού τη δυνατότητα δημιουργίας πολλαπλών
Παιδαγωγική προσέγγιση: Πρόταση για την διδασκαλία της έννοιας αλγόριθµός στο περιβάλλον MicroWorlds Pro
Παιδαγωγική προσέγγιση: Πρόταση για την διδασκαλία της έννοιας αλγόριθµός στο περιβάλλον MicroWorlds Pro Το «Φύλλο Εργασίας» για τους µαθητές Το παρακάτω φύλλο εργασίας µπορεί να χρησιµοποιηθεί ως εισαγωγικό
Δημιουργώντας ένα παιχνίδι λαβυρίνθου(maze game) με εμπόδια
Φύλλο Εργασίας Δημιουργώντας ένα παιχνίδι λαβυρίνθου(maze game) με εμπόδια Δραστηριότητα 1η Σε αυτό το φύλλο εργασίας θα δημιουργήσουμε βήμα βήμα ένα παιχνίδι με λαβύρινθο (maze game) με εμπόδια. Το παιχνίδι
1ο Φύλλο Εργασίας. της παλέτας Ήχος. Πώς μπορούμε να εισάγουμε και να αναπαράγουμε έναν ήχο;
1ο Φύλλο Εργασίας της παλέτας Ήχος Πώς μπορούμε να εισάγουμε και να αναπαράγουμε έναν ήχο; Για να εισάγουμε ένα ή περισσότερα μουσικά κλιπ σε ένα αντικείμενο, επιλέγουμε από το μεσαίο παράθυρο του Scratch