ΥΛΟΠΟΙΗΣΗ ΠΑΙΧΝΙΔΙΟΥ ΛΑΒΥΡΙΝΘΟΥ ΣΕ ΓΛΩΣΣΑ ACTIONSCRIPT ΜΕΣΩ ΠΕΡΙΒΑΛΛΟΝΤΟΣ FLASH

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΥΛΟΠΟΙΗΣΗ ΠΑΙΧΝΙΔΙΟΥ ΛΑΒΥΡΙΝΘΟΥ ΣΕ ΓΛΩΣΣΑ ACTIONSCRIPT ΜΕΣΩ ΠΕΡΙΒΑΛΛΟΝΤΟΣ FLASH"

Transcript

1 ΑΝΩΤΑΤΟ ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ ΚΡΗΤΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΕΦΑΡΜΟΣΜΕΝΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΠΟΛΥΜΕΣΩΝ ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ ΥΛΟΠΟΙΗΣΗ ΠΑΙΧΝΙΔΙΟΥ ΛΑΒΥΡΙΝΘΟΥ ΣΕ ΓΛΩΣΣΑ ACTIONSCRIPT ΜΕΣΩ ΠΕΡΙΒΑΛΛΟΝΤΟΣ FLASH Μ ΑΘΙΟΥΛΑΚΗΣ ΜΑΡΚΟΣ ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ: ΑΘΑΝΑΣΙΟΣ ΜΑΛΑΜΟΣ Ηράκλειο 2008

2 Περιεχόμενα 1. Εισαγωγή Λαβύρινθος Λαβύρινθοι στην καθημερινότητα Λαβύρινθοι στην επιστήμη υπολογιστών Ρομποτική Εισαγωγή στην Actionscript Αλγόριθμοι Δημιουργίας Λαβυρίνθων Αλγόριθμος Αναζήτησης Πρώτα σε Βάθος (Depth First Search algorithm) Μία περισσότερο αναλυτική περιγραφή του αλγορίθμου DFS : Breadth First Search (ΒFS) αλγόριθμος Αλγόριθμος Επαναληπτικής Εκβάθυνσης (ID) Συμπεράσματα χρήσης αλγορίθμων Εισαγωγή στην εφαρμογή του Παιχνιδιού του Λαβυρίνθου Ανάλυση του γραφικού περιβάλλοντος Flash του Παιχνιδιού Περιγραφή του Intro scene Περιγραφή του main scene Περιγραφή scene επιτυχούς λύσης του λαβυρίνθου Ανάλυση του προγράμματος από την πλευρά του κώδικα actionscript Κώδικας υπεύθυνος για την κίνηση του sprite μέσα στον λαβύρινθο Κώδικας actionscript υπεύθυνος για την παραγωγή του λαβυρίνθου Κώδικας υπεύθυνος για την σχεδίαση του λαβυρίνθου Συμπεράσματα Παράρτημα Κώδικας κίνησης του sprite Κώδικας παραγωγής του λαβυρίνθου Κώδικας σχεδίασης του λαβυρίνθου μέσα στο περιβάλλον Flash

3 7.4 Βιβλιογραφία Ευρετήριο εικόνων

4 1. Εισαγωγή Σκοπός αυτής της εργασίας είναι η υλοποίηση ενός αλγορίθμου, ο οποίος θα κατασκευάζει έναν λαβύρινθο (κυριολεκτικά ένα maze). Στη συνέχεια ο αλγόριθμος αυτός θα τοποθετείται σε ένα γραφικό περιβάλλον για να δημιουργηθεί μία διαδραστική εφαρμογή, στην οποία ο χρήστης θα πρέπει με την βοήθεια των πλήκτρων κατεύθυνσης του πληκτρολογίου του, να καταφέρει μέσα σε συγκεκριμένο χρόνο να δρομολογηθεί από την είσοδο του λαβυρίνθου προς την έξοδό του. Ο αλγόριθμος θα κατασκευαστεί σε γλώσσα προγραμματισμού actionscript, η οποία είναι μία γλώσσα που χρησιμοποιείται κυρίως σε εφαρμογές ανάπτυξης ιστοσελίδων, σε εφαρμογές που χρησιμοποιούν την πλατφόρμα Adobe Flash Player αλλά και σε ρομποτικές εφαρμογές. Η actionscript αρχικά αναπτύχθηκε από την Macromedia το 1998 για τον έλεγχο απλών δισδιάστατων γραφικών κατασκευασμένων σε flash. Το γραφικό περιβάλλον στο οποίο θα τοποθετηθεί ο αλγόριθμος είναι ένα περιβάλλον κατασκευασμένο σε flash, κάτι που είναι πολύ κοινό όσον αφορά εφαρμογές κατασκευασμένες σε γλωσσά προγραμματισμού actionscript. Ο αλγόριθμος που θα χρησιμοποιήσουμε στην παρούσα εφαρμογή είναι ένας αλγόριθμος τύπου DFS (Depth First Search). Υιοθετούμε έναν λαβύρινθο τέτοιου τύπου για λόγους που θα αναφερθούν παρακάτω. 4

5 2. Λαβύρινθος Όταν ακούμε την λέξη λαβύρινθος στο νου μας έρχεται η εικόνα ενός χώρου ή ενός οικοδομήματος το οποίο έχει πολύπλοκους διαδρόμους και που είναι δύσκολος ο προσανατολισμός ή η έξοδος από αυτό. 2.1 Λαβύρινθοι στην καθημερινότητα Στην Ελληνική μυθολογία, ο λαβύρινθος ήταν ένα περίπλοκο δόμημα το οποίο ήταν κατασκευασμένο από τον θρυλικό τεχνίτη Δαίδαλο για τον Βασιλιά της Κρήτης Μίνωα στην Κνωσσό. Ο σκοπός του λαβυρίνθου ήταν να κρατάει στους δαιδαλώδεις διαδρόμου του τον Μινώταυρο, ένα μυθικό πλάσμα το οποίο ήταν μισός άνθρωπος και μισός ταύρος και που ο οποίος τελικά σκοτώθηκε από τον Αθηναίο ήρωα Θησέα. Ο Δαίδαλος είχε κατασκευάσει τον λαβύρινθο τόσο επιδέξια και πανούργα που και ο ίδιος μπορούσε δύσκολα να βγει από μέσα μετά από την στιγμή που τελείωσε την κατασκευή του. Τον Θησέα όμως τον βοήθησε η Αριάδνη, κόρη του Βασιλιά Μίνωα, η οποία του έδωσε ένα κουβάρι κλωστής, τον λεγόμενο Μίτο της Αριάδνης, που με τη βοήθεια του οποίου ο Θησέας κατάφερε να βγει τυλίγοντάς τον από τον λαβύρινθο. Ο όρος λαβύρινθος (labyrinth) συχνά χρησιμοποιείται εναλλακτικά με τον δαίδαλο (maze), αλλά οι ειδικοί του θέματος στους καιρούς μας χρησιμοποιούν έναν πιο αυστηρό διαχωρισμό. Κατά τους ίδιους, ο δαίδαλος είναι ένας γρίφος υπό τη μορφή ενός πολύπλοκου διακλαδωτού διαδρόμου με επιλογές διαφορετικού μονοπατιού και κατεύθυνσης, ενώ ο λαβύρινθος αποτελείται από ένα μοναδικό μονοπάτι προς το κέντρο του. Ο λαβύρινθος λοιπόν έχει ένα αναμφισβήτητο μονοπάτι προς το κέντρο του και πίσω στην αρχή και δεν είναι σχεδιασμένος να είναι δύσκολος κατά την πλοήγησή του. Το σχέδιο μοναδικού μονοπατιού του λαβυρίνθου του Μινώταυρου ήταν διαδεδομένο σε καλλιτεχνικές αναπαραστάσεις, αν και η λογική και μυθολογικές περιγραφές δείχνουν ξεκάθαρα ότι ο Μινώταυρος ήταν παγιδευμένος σε έναν λαβύρινθο με πολλά μονοπάτια, δηλαδή σε έναν δαίδαλο (δαιδαλώδης λαβύρινθος). 5

6 Εικόνα Ρωμαϊκό μωσαϊκό Ο λαβύρινθος μπορεί να αναπαρασταθεί και συμβολικά αλλά και φυσικά. Συμβολικά, αναπαρίσταται στην τέχνη σχεδίων σε σπηλιές, σε σχέδια πάνω σε κεραμικά σκεύη, σε τατουάζ πάνω στο ανθρώπινο σώμα κ.α. Φυσικές αναπαραστάσεις είναι κοινές ανά τον κόσμο και συνήθως κατασκευάζονται πάνω στο έδαφος έτσι ώστε να είναι δυνατόν να τους διασχίσει κάποιος από την είσοδο προς το κέντρο και ξανά πίσω στην αρχή. Ιστορικά, έχουν χρησιμοποιηθεί και για ομαδικές τελετές αλλά και για προσωπικό διαλογισμό. Εικόνα Λαβύρινθος στο δάπεδο του καθεδρικού ναού του Σάρτρ, Γαλλία Προϊστορικοί λαβύρινθοι πιστεύεται ότι εξυπηρετούσαν ως παγίδες για μοχθηρά πνεύματα ή ως καθορισμένα μονοπάτια τελετουργικών χορών. Στον μεσαίωνα, ο λαβύρινθος συμβόλιζε το δύσκολο μονοπάτι προς το Θεό με ένα ξεκάθαρα καθορισμένο κέντρο (Θεός) και μία είσοδο (γέννηση). Τους λαβύρινθους μπορούμε να τους φανταστούμε σαν συμβολικές μορφές προσκυνήματος όπου ο άνθρωπος περπατώντας στο μονοπάτι, ανέρχεται προς την 6

7 λύτρωση και τον διαφωτισμό. Πολλοί άνθρωποι δεν ήταν σε θέση να ταξιδέψουν σε ιερούς τόπους, οπότε οι λαβύρινθοι και οι προσευχές υποκαθιστούσαν τέτοια ταξίδια. Αργότερα, η θρησκευτική σπουδαιότητα των λαβυρίνθων ξεχάστηκε, και συνήθως εξυπηρετούσαν κυρίως ως μορφές ψυχαγωγίας, αν και τελευταία, έχει παρατηρηθεί μία ανόρθωση της πνευματικής πλευρά τους. Πολλοί πρόσφατα κατασκευασμένοι λαβύρινθοι υπάρχουν σήμερα, σε εκκλησίες και πάρκα. Επίσης, πολλές ταινίες υιοθετούν την έννοια του λαβυρίνθου, όπως το Pan s Labyrinth, μία ταινία του 2006 που εξιστορεί την φανταστική περιπέτεια ενός μικρού κοριτσιού σε έναν κατάφυτο εγκαταλελειμμένο λαβύρινθο όπου συναντά φανταστικά πλάσματα. Εικόνα Κινηματογραφικό Αφίσα της ταινίας Ο Λαβύρινθος του Πάνα. Μία επίσης καταπληκτική κλασσική ταινία του 1973, που υιοθετεί την έννοια του λαβυρίνθου στην τελική σκηνή της, είναι το Enter The Dragon με πρωταγωνιστή τον άσσο των πολεμικών τεχνών, Bruce Lee. Στο τέλος της ταινία, η τελική μάχη λαμβάνει χώρα σε ένα μεγάλο σκοτεινό δωμάτιο με καθρέφτες, όπου ο ήρωας προσπαθεί να βρει τον αντίπαλό του πριν τον βρει εκείνος. 7

8 Εικόνα Σκηνή από την ταινία Enter The Dragon. Λαβύρινθοι χρησιμοποιούνται και από μοντέρνους μυστικιστές για να επιτύχουν μία κατάσταση πνευματικής ανύψωσης. Περπατώντας κατά μήκος των γυρισμάτων ενός λαβυρίνθου, κάποιος χάνει την αίσθηση της κατεύθυνσης και του έξω κόσμου οπότε ηρεμεί το μυαλό και το πνεύμα του. Αυτό είναι μία μορφή διαλογισμού. Πολλοί είναι που πιστεύουν ότι ο διαλογισμός έχει ευεργετικές ιδιότητες για την υγεία αλλά και για την πνευματική κατάσταση του ανθρώπου. 2.2 Λαβύρινθοι στην επιστήμη υπολογιστών Οι λαβύρινθοι αποτελούν ένα μεγάλο τμήμα της πληροφορικής και της επιστήμης υπολογιστών γενικά. Χρησιμοποιούνται σε πολλούς τομείς όπως στην Ρομποτική, τον 8

9 προγραμματισμό, την κατασκευή ηλεκτρονικών παιχνιδιών και στη ηλεκτρονική, που είναι μερικά μόνο από τα παραδείγματα. Ακόμα και το ίδιο το Internet αποτελεί στην ουσία έναν τεράστιο σε έκταση τύπο λαβυρίνθου που αποτελείται από προσωπικούς υπολογιστές, κόμβους, servers κ.α. Εικόνα Μία εικαστική αναπαράσταση του Internet Ρομποτική Στην τεχνολογία της ρομποτικής, είναι κοινά τα ρομπότ που κατασκευάζονται και που είναι σε θέση να μπορούν να μετακινηθούν από ένα σημείο προς ένα άλλο δια 9

10 μέσω ενός χώρου με εμπόδια. Με τη βοήθεια πολλαπλών αισθητήρων αλλά κυρίως με τον απαραίτητο προγραμματισμό, μπορούν να μετακινηθούν και να επιλύσουν έναν λαβύρινθο. Ένας διαδεδομένος τρόπος προγραμματισμού ενός ρομπότ για να βρει τον δρόμο μέσω ενός λαβυρίνθου, είναι με έναν αλγόριθμο τύπου wall follower, χρησιμοποιώντας είτε τον κανόνα του αριστερού είτε του δεξιού χεριού. Περεταίρω ανάλυση του κανόνα αυτού θα γίνει αργότερα. Εικόνα Εικονογραφημένη λογική του right-hand wall-follower αλγορίθμου Εικόνα Μαθητές δοκιμάζουν το ρομπότ επίλυσης λαβύρινθου που κατασκεύασαν. 3. Εισαγωγή στην Actionscript H actionscript είναι μια αντικειμενοστρεφής γλώσσα προγραμματισμού (OOP), που σχεδιάστηκε συγκεκριμένα για τη δημιουργία animation σε ιστοσελίδες. Αρχικά κυκλοφόρησε με τη Macromedia flash 4 και ενισχύθηκε για τη flash 5. Η actionscript 10

11 είναι μια περίπλοκη έκδοση της γλώσσας script που εισάχθηκε στη flash 3, και που καθιστά δυνατή για τον σχεδιαστή την δημιουργία γραφικών περιβαλλόντων επί οθόνης (όπως παιχνίδια, εφαρμογές ηλεκτρονικού εμπορίου κ.α.) που μπορούν να αποκριθούν στο χρήστη με την εισαγωγή δεδομένων μέσω του πληκτρολογίου ή του ποντικιού. Μεταγενέστερες εκδόσεις έκαναν δυνατή τη χρήση της actionscript για την κατασκευή web-based παιχνιδιών και αρκετών εφαρμογών internet με πλούσιο πολυμεσικό περιεχόμενο όπως βίντεο και ήχο Η actionscript είναι μια βασισμένη σε γλώσσα, ακριβώς όπως συμβαίνει στην πραγματική ζωή, όπου οι ενέργειες προκαλούνται από γεγονότα. Η ActionScript μοιάζει πολύ με την JavaScript, κάτι το οποίο η Macromedia έκανε σκόπιμα. Μια προδιαγραφή η ECMA-262, γράφτηκε για να παρέχει διεθνή πρότυπα για τη γλώσσα JavaScript και η ActionScript στην Flash MX είναι βασισμένη στην προδιαγραφή αυτή. Η ActionScript επιτρέπει στον προγραμματιστή να παρέχει action-oriented οδηγίες(κάνε - αυτό) και logic-oriented οδηγίες (έλεγξε αυτό και έπειτα κάνε κάτι) στην flash εφαρμογή του. Ο ακόλουθος κώδικας, που λειτουργεί σε οποιοδήποτε συμβατό player, δημιουργεί ένα πεδίο κειμένου σε βάθος 0, στη θέση (0, 0) στην οθόνη (που μετριέται σε pixels), η οποία είναι 100 pixels σε ύψος και πλάτος. Κατόπιν η παράμετρος του κειμένου ορίζεται σε "Hello, World!", και αυτό στη συνέχεια προβάλλεται στον player.: Εικόνα 3.1 Κώδικας σε Actionscript 2.0 Αν τώρα θέλουμε να κατασκευάσουμε εξωτερικά class αρχεία actionscript, τότε το προηγούμενο παράδειγμα, με την ονομασία Greeter.as, γράφεται ως εξής : 11

12 Εικόνα 3.2 Κώδικας σε Actionscript 2.0 Η actionscript από τότε που πρωτοεμφανίστηκε, έχει υποστεί αλλαγές και έτσι, από την actionscript 1.0, έχουμε περάσει στην actionscript 3.0. Το πρώτο μας παράδειγμα που είναι σε actionscript 2.0, σε actionscript 3.0 γίνεται ως εξής : Εικόνα 3.3 Κώδικας σε Actionscript Αλγόριθμοι Δημιουργίας Λαβυρίνθων 12

13 Υπάρχουν διάφοροι διαφορετικοί αλγόριθμοι δημιουργίας λαβυρίνθων. Ένας λαβύρινθος είναι βασικά μια γραφική παράσταση που παρουσιάζει μια διάβαση μεταξύ δύο σημείων. Εάν οι περιοχές του γράφου δεν είναι συνδεμένες, θα υπάρχουν περιοχές του γράφου που σπαταλιούνται επειδή δεν συμβάλλουν στην περιοχή αναζήτησης. Εάν ο γράφος περιέχει βρόχους, τότε μπορεί να υπάρξουν πολλαπλά μονοπάτια μεταξύ των επιλεγμένων πορειών. Λόγω αυτού, η παραγωγή ενός λαβυρίνθου προσεγγίζεται συχνά σαν την παραγωγή ενός τυχαίου δέντρου μέσα σε ένας συνδεδεμένο γράφο. Οι βρόχοι που μπορούν να συγχύσουν του επιλυτές λαβυρίνθων μπορούν να εισαχθούν με την προσθήκη τυχαίων ακρών στο αποτέλεσμα κατά τη διάρκεια του αλγορίθμου. 4.1 Αλγόριθμος Αναζήτησης Πρώτα σε Βάθος (Depth First Search algorithm) Αυτός ο αλγόριθμος είναι μια τυχαία έκδοση του Depth-First-Search αλγόριθμου αναζήτησης. 1. Άρχισε από ένα συγκεκριμένο κελί και αποκάλεσέ το "έξοδο." 2. Χαρακτήρισε το τρέχον κύτταρο σαν visited, και πάρε μία λίστα των γειτονικών κελιών του. Για κάθε γείτονα, αρχίζοντας από έναν τυχαία επιλεγμένο γείτονα. 2.1 Εάν εκείνος ο γείτονας δεν έχει επισκεφτεί, αφαιρέστε τον τοίχο μεταξύ αυτού του κελιού και εκείνου του γείτονα, και έπειτα επανέλαβε την ίδια διαδικασία με εκείνο τον γείτονα ως τρέχον κελί. 4.2 Μία περισσότερο αναλυτική περιγραφή του αλγορίθμου DFS : 13

14 «Ο αλγόριθμος αναζήτησης πρώτα σε βάθος (Depth - First Search - DFS) επιλέγει προς επέκταση την κατάσταση που βρίσκεται πιο βαθιά στο δένδρο.» 1. Βάλε την αρχική κατάσταση στο μέτωπο της αναζήτησης. 2. Αν το μέτωπο της αναζήτησης είναι κενό τότε σταμάτησε. 3. Βγάλε την πρώτη κατάσταση από το μέτωπο της αναζήτησης. 4. Αν είναι η κατάσταση μέλος του κλειστού συνόλου τότε πήγαινε στο βήμα Αν η κατάσταση είναι μία από τις τελικές, τότε ανέφερε τη λύση. 6. Αν θέλεις και άλλες λύσεις πήγαινε στο βήμα 2. Αλλιώς σταμάτησε. 7. Εφάρμοσε τους τελεστές μετάβασης για να βρεις τις καταστάσεις-παιδιά. 8. Βάλε τις καταστάσεις-παιδιά στην αρχή του μετώπου της αναζήτησης. 9. Βάλε την κατάσταση-γονέα στο κλειστό σύνολο. 10. Πήγαινε στο βήμα 2. Εικόνα Ο αλγόριθμος DFS σε μορφή ψευδοκώδικα 14

15 Εικόνα Εφαρμογή αλγορίθμου BFS Σχόλια για τον Αναζήτησης-Πρώτα σε Βάθος αλγόριθμο: 1. Το μέτωπο της αναζήτησης είναι μια δομή στοίβας (Stack LIFO, Last in First Out). 2. Η εξέταση αμέσως προηγουμένων (χρονικά) καταστάσεων ονομάζεται χρονική οπισθοδρόμηση (chronological backtracking). Πλεονεκτήματα: 1. Έχει μικρές απαιτήσεις σε χώρο διότι το μέτωπο της αναζήτησης δε μεγαλώνει πάρα πολύ. Μειονεκτήματα: 1. Δεν εγγυάται ότι η πρώτη λύση που θα βρεθεί είναι η βέλτιστη (μονοπάτι με το μικρότερο μήκος ή με μικρότερο κόστος). 2. Εν γένει θεωρείται ατελής (αν δεν υπάρχει έλεγχος βρόχων ή αν ο χώρος αναζήτησης είναι μη πεπερασμένος) 15

16 4.3 Breadth First Search (ΒFS) αλγόριθμος «Ο αλγόριθμος αναζήτησης πρώτα σε πλάτος (Breadth First Search - BFS) εξετάζει πρώτα όλες τις καταστάσεις που βρίσκονται στο ίδιο βάθος και μετά συνεχίζει στην επέκταση καταστάσεων στο αμέσως επόμενο επίπεδο.» Ανάλυση του αλγορίθμου BFS : 1. Βάλε την αρχική κατάσταση στο μέτωπο της αναζήτησης. 2. Αν το μέτωπο της αναζήτησης είναι κενό τότε σταμάτησε. 3. Βγάλε την πρώτη κατάσταση από το μέτωπο της αναζήτησης. 4. Αν είναι η κατάσταση μέλος του κλειστού συνόλου τότε πήγαινε στο βήμα Αν η κατάσταση είναι μία τελική τότε ανέφερε τη λύση. 6. Αν θέλεις και άλλες λύσεις πήγαινε στο βήμα 2. Αλλιώς σταμάτησε. 7. Εφάρμοσε τους τελεστές μεταφοράς για να βρεις τις καταστάσεις-παιδιά. 8. Βάλε τις καταστάσεις-παιδιά στο τέλος του μετώπου της αναζήτησης. 9. Βάλε την κατάσταση-γονέα στο κλειστό σύνολο. 10. Πήγαινε στο βήμα 2. Εικόνα Ο αλγόριθμος BFS σε μορφή ψευδοκώδικα 16

17 Εικόνα Εφαρμογή αλγορίθμου BFS Σχόλια για τον αλγόριθμο Αναζήτησης-Πρώτα σε Βάθος: 1 Το μέτωπο της αναζήτησης είναι μια δομή ουράς (Queue FIFO, δηλαδή First In First Out). Πλεονεκτήματα: 1. Βρίσκει πάντα την καλύτερη λύση (μικρότερη σε μήκος). 2. Είναι πλήρης. Μειονεκτήματα: 1. Το μέτωπο της αναζήτησης μεγαλώνει πολύ σε μέγεθος. 17

18 4.4 Αλγόριθμος Επαναληπτικής Εκβάθυνσης (ID) «Ο αλγόριθμος επαναληπτικής εκβάθυνσης (Iterative Deepening - ID) συνδυάζει με τον καλύτερο τρόπο τους DFS και BFS.» Ο αλγόριθμος ID: 1. Όρισε το αρχικό βάθος αναζήτησης (συνήθως 1). 2. Εφάρμοσε τον αλγόριθμο DFS μέχρι αυτό το βάθος αναζήτησης. 3. Αν έχεις βρει λύση σταμάτησε. 4. Αύξησε το βάθος αναζήτησης (συνήθως κατά 1). 5. Πήγαινε στο βήμα 2. Εικόνα Ο αλγόριθμος ID σε μορφή ψευδοκώδικα 18

19 Εικόνα Εφαρμογή αλγορίθμου ID Σχόλια για τον αλγόριθμο Επαναληπτικής Εκβάθυνσης Πλεονεκτήματα: 1. Είναι πλήρης. 2. Αν το βάθος αυξάνεται κατά 1 σε κάθε κύκλο και ο ID βρει λύση, τότε αυτή η λύση θα είναι η καλύτερη. Μειονεκτήματα: 1. Όταν αρχίζει ο DFS με διαφορετικό βάθος δε θυμάται τίποτα από την προηγούμενη αναζήτηση. 19

20 4.5 Συμπεράσματα χρήσης αλγορίθμων Οι αλγόριθμοι που αναφέρθηκαν παραπάνω είναι μόνο μερικοί από όσους υπάρχουν για τη δημιουργία λαβυρίνθων. Όπως φαίνεται από τα σχεδιαγράμματα εφαρμογής των τριών αλγορίθμων που αναφέρθηκαν, αυτός με τα λιγότερα βήματα επίλυσης και άρα μικρότερες απαιτήσεις σε χώρο είναι ο αλγόριθμος Αναζήτησης Πρώτα σε Βάθος (DFS). Έτσι λοιπόν, για τον λόγω του ότι τέτοιου είδους εφαρμογές χρησιμοποιούνται συνήθως σε σελίδες web του διαδικτύου, το μέγεθος του αλγορίθμου, και συνάμα του αρχείου της εφαρμογής θέλουμε να είναι όσο το δυνατόν μικρότερο. Χρησιμοποιεί τη γνωστή θεωρία DFS των spanning-trees και είναι έτσι απλούστερο να to καταλάβει και να το εφαρμόσει κάποιος. Επίσης, χρησιμοποιεί όλες τις συνδέσεις του δικτύου για τη δρομολόγηση (έτσι διανέμει καλύτερα το φορτίο), και εγγυάται ότι μερικές πορείες που διαπερνούνται είναι μικρότερου μήκους. 20

21 5. Εισαγωγή στην εφαρμογή του Παιχνιδιού του Λαβυρίνθου Η εφαρμογή του λαβυρίνθου υλοποιήθηκε σε περιβάλλον Flash, με τη βοήθεια του προγράμματος Macromedia Flash MX Το πρόγραμμα αυτό είναι ένα κορυφαίο πρόγραμμα δημιουργίας και επεξεργασίας διανυσματικών γραφικών και animation για χρήση στο Internet και για τη δημιουργία πολυμεσικών εφαρμογών υψηλού επιπέδου. Με το Flash, η εταιρία Macromedia συνδύασε πολλές ισχυρές ιδέες και τεχνολογίες σε ένα και μόνο πρόγραμμα, το οποίο δίνει στους χρήστες τη δυνατότητα να δημιουργήσουν ολοκληρωμένες παρουσιάσεις πολυμέσων και να τις δημοσιεύσουν στο Web. Τα αρχεία που δημιουργούμε με το Flash αποκαλούνται Movie Clips και έχουν την επέκταση.fla, ενώ τα εκτελέσιμα αρχεία flash, αυτά δηλαδή που μπορούν να ενσωματωθούν σε μία ιστοσελίδα ή να μπορούν να τρέξουν αυτόνομα, έχουν την επέκταση.swf. Αν και το Flash έχει σχεδιαστεί έτσι ώστε να βοηθά τους αρχάριους να δημιουργήσουν απλά κινούμενα γραφικά, οποιοσδήποτε είναι εξοικειωμένος με την τεχνολογία των κινουμένων εικόνων μπορεί να χρησιμοποιήσει τα εργαλεία του Flash για να δημιουργήσει ιδιαίτερα περίπλοκες κινούμενες εικόνες. Η γλώσσα σεναρίων του Flash που ονομάζεται ActionScript είναι αρκετά απλή στη χρήση της έτσι ώστε και αρχάριοι να μπορούν να προσθέτουν εύκολα απλά χειριστήρια αλληλεπίδρασης, αλλά και αρκετά ισχυρή ώστε να μπορούν και οι έμπειροι χρήστες να δημιουργούν αλληλεπιδραστικά στοιχεία υψηλού επιπέδου. Το Flash ικανοποιεί την ανάγκη των σχεδιαστών για περισσότερα γραφικά και μεγαλύτερο έλεγχο αυτών των γραφικών παρέχοντας τον τρόπο για τη μετάδοση διανυσματικών εικόνων (vector images) μέσω του Ιστού. Η χρήση διανυσματικών εικόνων, από τη μία μεριά διατηρεί μικρό το μέγεθος των αρχείων, και από την άλλη επιτρέπει την αλλαγή της κλίμακας (scaling) των εικόνων χωρίς απώλειες. Οι δυνατότητες δημιουργίας κινουμένων εικόνων του Flash δεν περιορίζονται μόνο σε χαρακτήρες κινουμένων σχεδίων. Οι κινούμενες εικόνες του Flash περιλαμβάνουν και στοιχεία πλοήγησης όπως κουμπιά και μενού. Εξάλλου, το Flash δεν περιορίζεται αποκλειστικά για τον Ιστό. Υπάρχει και η δυνατότητα διανομής ταινιών Flash σε CD. Είναι δυνατή επίσης η δημιουργία αυτόνομων προβολών και η διανομή τους μέσω ηλεκτρονικού ταχυδρομείου ή σε δίσκους δεδομένων, καθώς και μετατροπή 21

22 δημιουργιών του Flash σε άλλες μορφές όπως για παράδειγμα σε ταινίες Quick Time, AVI, mpeg και άλλες. 5.2 Ανάλυση του γραφικού περιβάλλοντος Flash του Παιχνιδιού Για τη δημιουργία του παιχνιδιού, τέσσερις είναι οι κύριες scenes που έχουμε προσθέσει στο stage, δηλαδή στον χώρο όπου δουλεύουμε στο Flash MX. Το stage θα μπορούσε να χαρακτηριστεί σαν τον καμβά ενός ζωγράφου, ο οποίος πάνω εκεί προσθέτει ότι επιθυμεί για να φτιάξει το έργο του. 22

23 5.2.1 Περιγραφή του Intro scene Εικόνα Το αρχικό scene της εφαρμογής. Στην αρχική σκηνή της εφαρμογής, βλέπουμε ένα χρωματιστό φόντο πάνω στο οποίο είναι τοποθετημένα ορισμένα αντικείμενα. Από αυτά, τα ποιο σημαντικά είναι τα εξής : 3 πεδία στα οποία μπορούμε αν εισάγουμε αριθμητικά δεδομένα, τα οποία χρησιμοποιεί η εφαρμογή για να κατασκευάσει δυναμικά τον λαβύρινθο. Ο λαβύρινθος είναι στην ουσία ένα Grid αποτελούμενο από παραλληλεπίπεδα κελιά. 23

24 Εικόνα Αρχικό στάδιο του λαβυρίνθου. Στο πρώτο πεδίο Δωμάτια X βάζουμε τον αριθμό των κελιών που επιθυμούμε να έχει ο λαβύρινθος στον x άξονα. Στο πεδίο Δωμάτια Y τοποθετούμε τον αριθμό των κελιών που θέλουμε να υπάρχουν στον y άξονα. Τέλος, στο πεδίο Πάχος Τοίχων βάζουμε έναν αριθμό ο οποίος αλλάζει το πάχος των τοιχωμάτων μεταξύ των κελιών έτσι ώστε, αν τα κελιά γίνουν πολλά, να είμαστε σε θέση να αλλάζουμε το πάχος των τοιχωμάτων έτσι ώστε η μετακίνηση μέσα στον λαβύρινθο να μην γίνει δύσκολη. Ένα Start button το οποίο πατώντας το δίνει αρχικές τιμές στον λαβύρινθο και αρχίζει την διαδικασία παραγωγής του. Εικόνα ActionScript κώδικας του Start button. Στην εικόνα 5.2.2, βλέπουμε τον κώδικα που εκτελείται αφού πατηθεί και ελευθερωθεί το κουμπί Start. 24

25 1. ορίζει την μεταβλητή mydate σαν μεταβλητή τύπου ημερομηνίας, δίνοντας της αρχική τιμή την τιμή της τρέχουσας ημερομηνίας. 2. ορίζει τις global μεταβλητές userroomx, userroomy και userwalls και τους δίνει τις τιμές εκείνες που υπάρχουν στα πεδία του αρχικού scene της εφαρμογής, τα roomx_txt, roomy_txt και roomwalls_txt αντίστοιχα. 3. ορίζει τη μεταβλητή starttimer και της δίνει την τιμή του χρόνου που παίρνει από τη μεταβλητή τύπου Date, mydate. 4. τέλος, το play() δίνει το έναυσμα για να αρχίσει να τρέχει ο αλγόριθμος. 25

26 5.2.2 Περιγραφή του main scene Εικόνα Το κύριο scene της εφαρμογής Στην scene αυτή της εφαρμογής βλέπουμε κατά κύριο λόγο τον λαβύρινθο που έχει κατασκευάσει ο αλγόριθμος DFS. Αν προσπαθήσουμε να τον λύσουμε, θα διαπιστώσουμε ότι είναι ένας τέλειος λαβύρινθος. Τέλειος λαβύρινθος αποκαλείται ένας λαβύρινθος ο οποίος διαθέτει ένα και μοναδικό σημείο εισόδου και ένα και μοναδικό σημείο εξόδου. Από κάθε οποιοδήποτε σημείο του λαβυρίνθου, υπάρχει ένα και μόνο μοναδικό μονοπάτι προς ένα οποιοδήποτε άλλο σημείο. Επίσης, σε έναν τέλειο λαβύρινθο δεν υπάρχουν κλειστές διαδρομές (βρόχοι) ούτε και ανοιχτές περιοχές. Συνεπεία αυτού του ορισμού, είναι ότι όλα τα κελιά σε έναν τέλειο λαβύρινθο είναι προσβάσιμα από την αφετηρία μέσω κάποιας μοναδικής διαδρομής, που σημαίνει ότι οι τέλειοι λαβύρινθοι είναι εγγυημένοι ότι έχουν μια μοναδική λύση. Στον λαβύρινθο μέσα βλέπουμε τον χαρακτήρα τον οποίο προσπαθούμε να οδηγήσουμε έξω από το λαβύρινθο. Τα sprite αυτό αποτελεί έναν χαρακτήρα παιχνιδιών υπολογιστών, ο οποίος αναπτύχθηκε από την Ιαπωνική εταιρία 26

27 ηλεκτρονικών παιχνιδιών Capcom το 1987 και έχει το όνομα Megaman. Μία εικονογραφημένη όψη του χαρακτήρα αυτού φαίνεται στην ακόλουθη εικόνα : Εικόνα Ο χαρακτήρας Megaman Άλλα στοιχεία πάνω στο scene έχουμε : Πάνω αριστερά, βλέπουμε τον διαθέσιμο χρόνο που έχουμε, και που σταδιακά μειώνεται, μέσα στον οποίο θα πρέπει να έχουμε καταφέρει να βγούμε από τον λαβύρινθο. Ο χρόνος αυτός είναι καθορισμένος με έναν δείκτη δυσκολίας (Difficulty) εσωτερικά του κώδικα. Εικόνα Κώδικας ActionScript που ορίζει τον διαθέσιμο χρόνο παιχνιδιού Πάνω δεξιά έχουμε 2 buttons, το Back και το Regenerate. Το Back μας μεταφέρει στην αρχική σκηνή όπου μπορούμε να επιλέξουμε αριθμό κελιών και γενικά γεωμετρία του λαβυρίνθου. Το Regenerate εκτελεί τον αλγόριθμο DFS εκείνη τη στιγμή αλλάζοντας τη μορφή του λαβυρίνθου, τα μονοπάτια και γενικά τις διαδρομές συμπεριλαμβανομένης και της λύσης. Το sprite δεν επιστρέφει στην αρχική του θέση αλλά με την ανανέωση του λαβυρίνθου μένει στην θέση όπου βρισκόταν όταν πατήθηκε το κουμπί. 27

28 Εσωτερικά του λαβυρίνθου, βλέπουμε εκτός των κελιά και το sprite, δύο χρωματιστά σημάδια τα οποία αντιπροσωπεύουν την είσοδο και την έξοδο του λαβυρίνθου. Το πράσινο είναι η είσοδος και το κόκκινο η έξοδος, στο οποίο μόλις βρεθεί πάνω του το sprite, το παιχνίδι τελειώνει με τη νίκη του παίκτη. Τέλος, κάτω από τον λαβύρινθο, βλέπουμε ορισμένες πληροφορίες για την γεωμετρία του λαβυρίνθου, δηλαδή όπως φαίνεται και από την εικόνα δείχνει τον αριθμό των κελιών του x και του y άξονα. Επίσης, φαίνονται και τα βήματα τα οποία χρειάστηκε ο αλγόριθμος DFS για να δημιουργήσει τον λαβύρινθο. Αν αυξήσουμε τον αριθμό των κελιών στους δύο άξονες, θα δούμε ότι και ο αριθμός αυτός που αντιπροσωπεύει τα βήματα του αλγορίθμου αυτού, επίσης θα αυξηθεί. 28

29 5.2.3 Περιγραφή scene επιτυχούς λύσης του λαβυρίνθου. Εικόνα Το End scene της εφαρμογής Αν καταφέρουμε και λύσουμε τον λαβύρινθο μέσα στο καθορισμένο χρονικό διάστημα που μας δίνεται, τότε δρομολογούμαστε σε αυτήν την τελική σκηνή της εφαρμογής. Τα κύρια components της scene αυτής είναι τα ακόλουθα : Στην κύρια περιοχή της σκηνής, βλέπουμε μία γραφική αναπαράσταση επίλυσης του λαβυρίνθου και μερικά λόγια ανταμοιβής για την επιτυχία. Το πιο σημαντικό από όλα τα στοιχεία τα οποία απεικονίζονται στη σκηνή, είναι ο χρόνος που φαίνεται και που είναι ο χρόνος τον οποίο χρειαστήκαμε για να μεταβούμε από την αρχή του λαβυρίνθου, μέσω μοναδικού μονοπατιού, προς την έξοδο του. 29

30 Εικόνα Ο κώδικας σε ActionScript που τυπώνει τον χρόνο επίλυσης Από τον κώδικα, βλέπουμε ότι ορίζονται δύο μεταβλητές, η endtime που είναι τύπου ημερομηνίας και η totaltime που είναι αριθμητικού τύπου. Στη συνέχεια, στο πεδίο της σκηνής time_txt τυπώνεται η μεταβλητή totaltime που ισούται με τη διαφορά μίας ήδη ορισμένης από πριν global μεταβλητής, της starttimer από την ίδιου τύπου μεταβλητή endtime και που η διαφορά αυτή μας δίνει τα δευτερόλεπτα που χρειαστήκαμε για να βγούμε από το λαβύρινθο. Τέλος, έχουμε στα αριστερά της σκηνής, δύο κουμπιά που όπως υποδηλώνει το κείμενο πάνω από το κάθε ένα, το πρώτο μας επιστρέφει στην αρχική σκηνή της εφαρμογής, για την περίπτωση που θελήσουμε να αρχίσουμε νέο παιχνίδι, ενώ στην περίπτωση που θέλουμε να κλείσουμε την εφαρμογή, πατάμε το δεύτερο κουμπί το οποίο απλά κλείνει την εφαρμογή. Εικόνα Κώδικας που κλείνει το παράθυρο της εφαρμογής 5.3 Ανάλυση του προγράμματος από την πλευρά του κώδικα actionscript. Στο κεφάλαιο αυτό θα αναλυθούν τα τρία κύρια τμήματα κώδικα τα οποία αποτελούν το παιχνίδι του λαβυρίνθου. Το πρώτο τμήμα αφορά να ελέγχει το sprite που κινείται μέσα στον λαβύρινθο. Το δεύτερο τμήμα θα παράγει τον λαβύρινθο. Τέλος, το τρίτο τμήμα θα τον σχεδιάζει πάνω στο κεντρικό scene παίρνοντας τα δεδομένα από τον κώδικα που έκανε την παραγωγή του λαβυρίνθου. 30

31 5.3.1 Κώδικας υπεύθυνος για την κίνηση του sprite μέσα στον λαβύρινθο. Το παρακάτω μέρος κώδικα, αναλαμβάνει να καταστήσει ικανό το sprite να κινηθεί μέσα στο λαβύρινθο και επίσης να μετράει αντίστροφα το χρόνο που έχει στη διάθεσή του ο παίκτης για να οδηγήσει το sprite στην έξοδο του όπως επίσης και να σταματήσει το παιχνίδι όταν ο παίκτης φτάσει στην έξοδο του λαβυρίνθου. Το sprite, ανάλογα με το πλήκτρο κατεύθυνσης που πατάμε, προχωράει κατά τέσσερις θέσεις στον x ή τον y άξονα κατά τη θετική ή την αρνητική κατεύθυνση του άξονα. Έτσι έχουμε κίνηση στον x άξονα για τα πλήκτρα left και right και κίνηση στον y άξονα για τα πλήκτρα up και down. Η κίνηση γίνεται ανά τέσσερις θέσεις. Αν κατά τη διάρκεια της κίνησης αυτής, το sprite βρεθεί μέσα σε ένα από τα τοιχώματα των κελιών του λαβυρίνθου, τότε ο κώδικας του λέει να μετακινηθεί πάνω στον άξονα που κινιόταν πριν κατά 4 θέσεις, άλλες τέσσερις θέσεις αλλά προς την αρνητική κατεύθυνση. Εικόνα Κίνηση του sprite στους τέσσερις άξονες if(elapsed_time<=0) { _root.gotoandstop(4,0); if(key.isdown(key.left)) { this.play(); this._x -= 4; if (_root.labpanel_mc.hittest(this._x, this._y, true)) { this._x += 4; if(key.isdown(key.right)) { 31

32 this.play(); this._x += 4; if (_root.labpanel_mc.hittest(this._x, this._y, true)) { this._x -= 4; if((this._x>612) && (this._y>420)) {_root.play(); if(key.isdown(key.down)) { this.play(); this._y += 4; if (_root.labpanel_mc.hittest(this._x, this._y, true)) { this._y -= 4; if((this._x>612) && (this._y>420)) { _root.play(); if(key.isdown(key.up)) { this.play(); this._y -= 4; if (_root.labpanel_mc.hittest(this._x, this._y, true)) { this._y += 4; Ποιο συγκεκριμένα, στο παρακάτω τμήμα αυτό του κώδικα, το sprite κινείται αριστερά στον νοητό άξονα μετά από το πάτημα του πλήκτρου LEFT όπου εκτελείται το this.play(). Περιοδικά, όσο είναι πατημένο το πλήκτρο, το sprite κινείται κατά - 4 θέσεις αριστερά (κίνηση αριστερά στον άξονα, άρα y), κάτι που είναι συνεχόμενο οπότε δεν φαίνονται μεμονωμένες τετραπλές κινήσεις. Αν κατά τη διάρκεια της κίνησής του αυτής κατά 4 θέσεις αριστερά, καταλήξει μέσα σε κάποιο από τα τοιχώματα ή τα όρια του λαβυρίνθου, τότε ο έλεγχος if γίνεται true οπότε και εκτελείται ο κώδικας this._x +=4;, κάτι που κάνει το sprite να μετακινηθεί προς την αντίθετη κατεύθυνση από όπου ήρθε κατά +4 θέσεις και έτσι να βγει από τα όρια του λαβυρίνθου ή μέσα από κάποιο τοίχωμα. Εικόνα Κώδικας για κίνηση του sprite στον άξονα yy προς αριστερά 32

33 5.3.2 Κώδικας actionscript υπεύθυνος για την παραγωγή του λαβυρίνθου. Το μέρος αυτό του κώδικα, κατασκευάζει ένα πλέγμα από κελιά τα οποία στη συνέχεια τοποθετεί σε ένα πίνακα. Μετά, ο αλγόριθμος επεξεργάζεται τα στοιχεία του πίνακα και κατασκευάζει το λαβύρινθο. Παρακάτω θα γίνει πιο λεπτομερής επεξήγηση της ακολουθίας των βημάτων του αλγορίθμου, ώστε να κατασκευάσει από το πλέγμα ένα σύνολο διαδρομών μοναδικών από σημείο σε σημείο και χωρίς κλειστούς βρόχους, ή μη προσβάσιμα κελιά. Κατά την κατασκευή του λαβυρίνθου, η class generatemaze δεν κατασκευάζει είσοδο ή έξοδο στο λαβύρινθο. Κάτι τέτοιο δεν είναι και τόσο απαραίτητο, αν σκεφτούμε το εξής; Ότι από κάθε σημείο ενός τέλειου λαβυρίνθου προς ένα οποιοδήποτε άλλο σημείο του λαβυρίνθου αυτού, υπάρχει μοναδική διαδρομή. Άρα, μπορούμε να υιοθετήσουμε ένα οποιοδήποτε σημείο του λαβυρίνθου είτε για είσοδο, είτε για έξοδο. Αλγόριθμός DFS με χρήση αναδρομής. Αυτός είναι ο απλούστερος τρόπος δημιουργίας λαβύρινθου. Ο λαβύρινθος δεν έχει είσοδο ή έξοδο. Δεν φυλάσσονται στοιχεία σωστής διαδρομής από την είσοδο στην έξοδο(λύση του λαβυρίνθου) ούτε αναδρομικές διαδρομές. Η σειρά των δωματίων είναι : ΠΑΝΩ ΔΕΞΙΑ ΚΑΤΩ ΑΡΙΣΤΕΡΑ. 33

34 Μία τεχνική που επινοήσαμε για την κατασκευή των διαδρόμων από κελί σε κελί είναι η εξής : Στο δυαδικό σύστημα έχουμε τα ακόλουθα : Εικόνα Πίνακας αντιστοιχιών Αρχικά, μπορούμε να δώσουμε την τιμή 1111 σε όλα τα κελιά τα οποία έχουν και τις τέσσερις πλευρές τους κλειστές. Δηλαδή, για να δείξουμε ότι το ένα τοίχωμα ενός κελιού βρίσκεται στη θέση του, μπορούμε να του δώσουμε την τιμή 1 (δυαδική) και αν είναι ανοιχτό την τιμή 0 (δυαδικό). Έτσι, αρχικοποιούμε τον πίνακα με την function initialize_maze(), δίνοντας σε όλα τα κελιά την τιμή 15, δηλαδή στο δυαδικό την τιμή 1111, κάτι που όπως φαίνεται από τα παραπάνω, δείχνει ότι το κελί που έχει την τιμή 1111(δυαδικό) έχει όλες τις πλευρές του κλειστές. Παίρνουμε λοιπόν και τις τιμές 8, 4, 2, 1 των οποίων οι αντίστοιχες δυαδικές είναι οι 1000, 0100, 0010 και 0001 και παρομοιάζουμε αντίστοιχα τις πλευρές κάθε κελιού με τa string Ν, S, E, W. Ο αλγόριθμος λοιπόν, δίνει μία από αυτές τις τιμές στα γειτονικά κελιά ενός κελιού που επιλέχθηκε τυχαία και εφόσον η τιμή του είναι 15, δηλαδή να μην έχει επισκεφθεί από τον αλγόριθμο πριν. 34

35 Στη συνέχεια, έχουμε τέσσερις περιπτώσεις : Αν το κελί έχει το value Ν (North), τότε ο κώδικας : κάνει την πράξη XOR μεταξύ του (x,y) του κελιού με το 8 (1000) για να ανοίξει τον πάνω τοίχο του κελιού και έπειτα την πράξη XOR των [x, (y-1)] με το 2 (0010) για να ανοίξει τον κάτω τοίχο του πάνω κελιού έτσι ώστε να ανοίξει το μονοπάτι από το κάτω κελί στο πάνω κάνοντας δυνατή την κίνηση προς North. Το παραπάνω τμήμα κώδικα, ανοίγει το μονοπάτι προς το κάτω κελί. Παρόμοια, γίνεται το αντίστοιχο για τις κατευθύνσεις W (West) και E (East). Αν το κελί έχει σαν γειτονικά του, άλλα κελιά με την τιμή 15, τότε τους δίνει την τιμή N, S, W ή E και τα τοποθετεί στο table. Μετά, ανάλογα με την value του κάθε κελιού (N, S, W, E) ανοίγει το κατάλληλο μονοπάτι από και προς το κάθε κελί του πίνακα. Με τον τρόπο αυτό, δημιουργείται ένας πίνακας που περιέχει τις τιμές 1-14 που αντιπροσωπεύουν, αν μετατραπούν στο δυαδικό, όλους τους δυνατούς συνδυασμούς εξόδων των δωματίων. 35

36 5.3.3 Κώδικας υπεύθυνος για την σχεδίαση του λαβυρίνθου. Η class mazedrawer, σχεδιάζει το περίγραμμα του λαβυρίνθου, λαμβάνοντας σαν ορίσματα, ένα αντικείμενο τύπου MovieClip, πάνω στο οποίο θα σχεδιαστεί ο λαβύρινθος, και ένα πίνακα μέσα στον οποίο υπάρχει η περιγραφή του λαβυρίνθου. Τον πίνακα αυτό τον πήραμε ως αποτέλεσμα από την class generatemaze. Η συνάρτηση draw_room είναι που σχεδιάζει τις γραμμές ενός δωματίου του λαβυρίνθου. Σχεδιάζει τις γραμμές προς την φορά των δεικτών του ρολογιού, αρχίζοντας από την πάνω πρώτα, μετά την δεξιά, κάτω και τέλος την αριστερή. var findroombinary:string = room_type.tostring(2); το παραπάνω τμήμα κώδικα, μετατρέπει τα αριθμητικά δεδομένα του πίνακα ορίσματος σε String, υπό μορφή δυαδικού συστήματος, δηλαδή γίνονται οι εξής μετατροπές : 1 > > > > > > > > > > > > > > 1110 Οι τιμές 0000 και 1111, δηλαδή η 0 και η 15 δεν υπάρχουν στα δεδομένα μας, μιας και ένας τέλειος λαβύρινθος δεν έχει κλειστά δωμάτια (1111) ή ανοιχτούς χώρους (0000). Οπότε, έχουμε ένα string από 0 και 1. Στη συνέχεια με τέσσερις ελέγχους if βρίσκουμε τι βρίσκεται σε κάθε θέση του string. Ο παρακάτω έλεγχος γίνεται για την πρώτη θέση που είναι η θέση μηδέν (0). Αν υπάρχει 1 στη θέση αυτή τότε σημαίνει ότι εκείνη η πλευρά δεν πρέπει να έχει άνοιγμα, οπότε με το.lineto() σχεδιάζει μία γραμμή κλείνοντας την πλευρά 36

37 εκείνη. Αν υπάρχει όμως 0 στην θέση αυτή, τότε δεν πρέπει να σχεδιαστεί η πλευρά εκείνη ώστε να ανοίξει ο διάδρομος, οπότε με το.moveto() προσπερνάει την πλευρά αυτή χωρίς να σχεδιάσει τίποτα. if (findroombinary.charat(0) == "1") { moviecliptodraw.lineto(room_x+room_length, room_y); else { moviecliptodraw.moveto(room_x+room_length, room_y); Με τον ίδιο τρόπο γίνονται και για τις υπόλοιπες τρεις πλευρές του δωματίου, if (findroombinary.charat(1) == "1") { moviecliptodraw.lineto(room_x+room_length, room_y+room_height); else { moviecliptodraw.moveto(room_x+room_length, room_y+room_height); if (findroombinary.charat(2) == "1") { moviecliptodraw.lineto(room_x, room_y+room_height); else { moviecliptodraw.moveto(room_x, room_y+room_height); if (findroombinary.charat(3) == "1") { moviecliptodraw.lineto(room_x, room_y); else { moviecliptodraw.moveto(room_x, room_y); ενώ παρακάτω βλέπουμε παραστατικά πως μετακινείται το ενεργό pixel κατά την σχεδίαση ενός δωματίου του λαβυρίνθου, δηλαδή πως μετακινείται καθώς σχεδιάζει μία πλευρά ή πως μετακινείται κατά ένα διάστημα όταν θέλει να αφήσει κενό χώρο. 37

38 6. Συμπεράσματα. Ολοκληρώνοντας την παρουσίαση των χαρακτηριστικών του προγράμματος που υλοποιήθηκε στα πλαίσια της διπλωματικής εργασίας, έχουμε τα εξής συμπεράσματα: Το πρόγραμμα αυτό του λαβυρίνθου που υλοποιήσαμε, ήταν ένα σχετικώς απλό πρόγραμμα από πλευρά σχεδίασης και προγραμματιστικής απόψεως. Με τη γλώσσα actionscript μπορούμε να κατασκευάσουμε αρκετά πιο πολύπλοκα προγράμματα ενώ η Flash μας επιτρέπει να τα εκδώσουμε με τη μορφή ενός μικρού αρχείου. Τέτοιου είδους αρχεία στον καιρό μας είναι πολύ διαδεδομένα σε όλη την έκταση του World Wide Web είτε σαν downloadable αρχεία, είτε περισσότερο συχνά, ενσωματωμένα σε κάποια ιστοσελίδα όπου ο κάθε επισκέπτης μπορεί κατευθείαν με τη βοήθεια πληκτρολογίου και ποντικιού να αλληλεπιδράσει με την εφαρμογή. Κυκλοφορούν πολλά τέτοιου είδους παιχνίδια σήμερα στον κυβερνοχώρο. Από απλά παιχνίδια λαβυρίνθων, banners αλληλεπίδρασης ιστοσελίδων, παιχνίδια ένδυσης χαρακτήρων για μικρά παιδιά, μέχρι πολυσύνθετα παιχνίδια ρόλων (Role Playing Games) που εμπεριέχουν πλοκή, μάχες και εναλλακτικές καταλήξεις με βάση τις επιλογές του παίκτη. Τέτοιου είδους διασκέδασή βρίσκει καλή ανταπόκριση από ένα μεγάλο μέρος των χρηστών του Διαδικτύου για τον λόγω του ότι στη σημερινή μας εποχή των γρήγορων ρυθμών, ο ελεύθερος χρόνος του ατόμου είναι περιορισμένος, οπότε αυτή η μικρής διάρκειας διασκέδαση είναι εφικτή. Στη σημερινή μας εποχή της εξέλιξης, το Διαδίκτυο έχει επεκταθεί από τον προσωπικό μας υπολογιστή σε μία πληθώρα συσκευών ικανές να παρέχουν πρόσβαση στον κυβερνοχώρο, όπως πλέον η πλειοψηφία των κινητών τηλεφωνικών συσκευών, PDA s, palmtops και διάφορες άλλες. Επίσης, η ηλεκτρονική τεχνολογία επιτρέπει στις εν λόγω συσκευές να είναι ικανές να εκτελέσουν αρχεία τύπου Flash και έτσι ο κάθε χρήστης να μπορεί να έχει πρόσβαση σε τέτοιου είδους διασκέδαση οπουδήποτε οποτεδήποτε. Ο κλάδος αυτός λοιπόν της υλοποίησης τέτοιων προγραμμάτων/παιχνιδιών γνωρίζει σημαντική άνθηση εξαιτίας της αυξανόμενης ζήτησής τους από το κοινό και από εταιρίες δημιουργίας ιστοσελίδων. Αποτελεί λοιπόν ένα προσοδοφόρο επάγγελμα για τον νέο προγραμματιστή. 38

39 7. Παράρτημα. 7.1 Κώδικας κίνησης του sprite Στο παράρτημα αυτό, παραθέτουμε ολοκληρωμένο των κώδικα actionscript που είναι υπεύθυνος για την κίνηση του sprite μέσα στον λαβύρινθο χρησιμοποιώντας τα πλήκτρα κίνησης του πληκτρολογίου.... on(release) { stopdrag(); onclipevent(enterframe) { var nowtime:date=new Date; var difficulty=0.1; var timetolose= (_global.userroomx*_global.userroomx*difficulty*1000); var elapsed_time:number=math.round((timetolose- (nowtime.gettime() - _global.starttimer))/1000); _root.thetime_txt.text="χρονοσ: " + elapsed_time+ " seconds"; if(elapsed_time<=0) { _root.gotoandstop(4,0); if(key.isdown(key.left)) { this.play(); this._x -= 4; if (_root.labpanel_mc.hittest(this._x, this._y, true)) { this._x += 4; if(key.isdown(key.right)) { this.play(); this._x += 4; if (_root.labpanel_mc.hittest(this._x, this._y, true)) { this._x -= 4; if((this._x>612) && (this._y>420)) {_root.play(); if(key.isdown(key.down)) { this.play(); this._y += 4; if (_root.labpanel_mc.hittest(this._x, this._y, true)) { this._y -= 4; 39

40 if((this._x>612) && (this._y>420)) { _root.play(); if(key.isdown(key.up)) { this.play(); this._y -= 4; if (_root.labpanel_mc.hittest(this._x, this._y, true)) { this._y += 4;... 40

41 7.2 Κώδικας παραγωγής του λαβυρίνθου Στο μέρος αυτό του παρατήματος, έχουμε ολοκληρωμένο τον κώδικα actionscript που κατασκευάζει τον λαβύρινθο σε έναν πίνακα, πρώτα σαν ένα πλέγμα κελιών και έπειτα αφαιρώντας γειτονικά τοιχώματα κατασκευάζει τις διαδρομές μεταξύ τους.... class generatemaze { // Αλγόριθμός DFS με χρήση αναδρομής. // Αυτός είναι ο απλούστερος τρόπος δημιουργίας λαβύρινθου. // Ο ΛΑΒΥΡΙΝΘΟΣ ΔΕΝ ΕΧΕΙ ΕΙΣΟΔΟ ΚΑΙ ΕΞΟΔΟ // ΔΕΝ ΦΥΛΑΣΣΟΝΤΑΙ ΣΤΟΙΧΕΙΑ ΣΩΣΤΗΣ ΔΙΑΔΡΟΜΗΣ ΑΠΟ ΤΗΝ ΕΙΣΟΔΟ ΣΤΗΝ ΕΞΟΔΟ (ΛΥΣΗ) // ΟΥΤΕ Η ΑΝΑΔΡΟΜΙΚΕΣ ΔΙΑΔΡΟΜΕΣ (BACKTRACK) // // ΣΕΙΡΑ ΔΩΜΑΤΙΩΝ: ΠΑΝΩ ΔΕΞΙΑ ΚΑΤΩ ΑΡΙΣΤΕΡΑ var roomstack:array = new Array(); var themaze:array = new Array(); var totalrooms:number; var roomsx:number; var roomsy:number; var totalsteps:number=0; function generatemaze(rows:number, cols:number) { totalrooms = rows*cols; roomsx=cols; roomsy=rows; initialize_maze(rows, cols); mazedfs(); function getmaze():array { return themaze; function getnumberofsteop():number { return totalsteps; function mazedfs():void { var visitedrooms:number = 1; var unvisitedneighbors:string; var currentroomx:number = random(roomsx-1); var currentroomy:number = random(roomsy-1); roomstack.push(currentroomx +"," + currentroomy); while(visitedrooms<totalrooms) { totalsteps++; unvisitedneighbors=""; var currentroom:string = roomstack[(roomstack.length-1)]; var roomdetails:array = currentroom.split(",", 2); currentroomx = Number(roomDetails[0]); 41

42 currentroomy = Number(roomDetails[1]); // Βρίσκω τα γειτονικά κελία που δεν έχουν ακόμα επισκεφθεί. Η τιμή 15 δεν μπορεί // να υπάρχει σε έναν τέλειο λαβύρινθο οπότε αν το κελί έχει τιμή 15 δεν έχει ακόμα επισκεφθεί. if(themaze[currentroomx][currentroomy-1]==15) { unvisitedneighbors += "N"; if(themaze[currentroomx][currentroomy+1]==15) { unvisitedneighbors += "S"; if(themaze[currentroomx+1][currentroomy]==15) { unvisitedneighbors += "E"; if(themaze[currentroomx-1][currentroomy]==15) { unvisitedneighbors += "W"; if(unvisitedneighbors.length > 0) { visitedrooms++; // Επιλέγω ένα κελί στην τύχη και σπάω τους μεταξύ τους τοίχους. var nextcelltovisit:number = random(unvisitedneighbors.length); var nextcelltovisitposition:string= unvisitedneighbors.charat(nextcelltovisit); // ΠΑΝΩ ΔΕΞΙΑ ΚΑΤΩ ΑΡΙΣΤΕΡΑ // // // XOR ^ if(nextcelltovisitposition=="n") { themaze[currentroomx][currentroomy] = (themaze[currentroomx][currentroomy] ^ 8); themaze[currentroomx][currentroomy-1] = (themaze[currentroomx][currentroomy-1] ^ 2 ); roomstack.push(currentroomx +"," + (currentroomy-1)); if(nextcelltovisitposition=="s") { themaze[currentroomx][currentroomy] = (themaze[currentroomx][currentroomy] ^ 2); themaze[currentroomx][currentroomy+1] = (themaze[currentroomx][currentroomy+1] ^ 8 ); roomstack.push(currentroomx +"," + (currentroomy+1)); if(nextcelltovisitposition=="e") { themaze[currentroomx][currentroomy] = (themaze[currentroomx][currentroomy] ^ 4); themaze[currentroomx+1][currentroomy] = (themaze[currentroomx+1][currentroomy] ^ 1 ); roomstack.push((currentroomx+1) +"," + currentroomy); if(nextcelltovisitposition=="w") { themaze[currentroomx][currentroomy] = (themaze[currentroomx][currentroomy] ^ 1); themaze[currentroomx-1][currentroomy] = (themaze[currentroomx-1][currentroomy] ^ 4 ); 42

43 else { roomstack.push((currentroomx-1) +"," + currentroomy); // POP στη λίστα και πάω πίσω. roomstack.pop(); function initialize_maze(rows:number, cols:number):void { var i:number; var j:number; for (i=0; i<cols; i++) { var templine:array = new Array(); themaze[i] = templine; for (j=0; j<rows; j++) { themaze[i][j] = 15;.. 43

44 7.3 Κώδικας σχεδίασης του λαβυρίνθου μέσα στο περιβάλλον Flash. Εδώ, έχουμε ολόκληρο τον κώδικα ο οποίος σχεδιάζει τον λαβύρινθο, παίρνοντας τα δεδομένα από το array δεδομένων που κατασκεύασε η function generatemaze.... class mazedrawer extends MovieClip { // Κλάση για σχεδίαση του περιγράμματος του λαβυρίνθου. Ο κατασκευαστής λαμβάνει // ως όρισμα ένα αντικείμενο τύπου MovieClip πάνω στο οποίο θα σχεδιαστεί ο λαβύρινθος // και ένα πίνακα στον οποίο υπάρχει η περιγραφή του λαβύρινθου. var moviecliptodraw:movieclip; var room_length:number; var room_height:number; function mazedrawer(movieclip_mc:movieclip, mazedata:array, roomx:number, roomy:number, sx:number, sy:number, linetype:number) { moviecliptodraw = movieclip_mc; room_length = roomx; room_height = roomy; var i:number; var j:number; var maze_x:number = mazedata.length; var maze_y:number = mazedata[0].length; for (i=0; i<maze_x; i++) { for (j=0; j<maze_y; j++) { draw_room(mazedata[i][j], sx+(i*room_length), sy+(j*room_height), linetype); private function draw_room(room_type:number, room_x:number, room_y:number, linetype:number):void { // Συνάρτηση που ζωγραφίζει ένα δωμάτιο (xxxx: ΠΑΝΩ ΔΕΞΙΑ ΚΑΤΩ ΑΡΙΣΤΕΡΑ). var findroombinary:string = room_type.tostring(2); var mask:string = "0000"; mask = mask.substr(0,(4-findroombinary.length)); mask = mask + findroombinary; findroombinary=mask; moviecliptodraw.moveto(room_x, room_y); moviecliptodraw.linestyle(linetype, 0x000000, 100); if (findroombinary.charat(0) == "1") { moviecliptodraw.lineto(room_x+room_length, room_y); else { moviecliptodraw.moveto(room_x+room_length, room_y); if (findroombinary.charat(1) == "1") { 44

45 moviecliptodraw.lineto(room_x+room_length, room_y+room_height); else { moviecliptodraw.moveto(room_x+room_length, room_y+room_height); if (findroombinary.charat(2) == "1") { moviecliptodraw.lineto(room_x, room_y+room_height); else { moviecliptodraw.moveto(room_x, room_y+room_height); if (findroombinary.charat(3) == "1") { moviecliptodraw.lineto(room_x, room_y); else { moviecliptodraw.moveto(room_x, room_y);... 45

46 7.4 Βιβλιογραφία. Εισαγωγή στην ActionScript 2.0 των Nathan Derksen και Jeff Berg, εκδόσεις Wiley Publishing, Ink Online ActionScript and Director Scripting Reference help center web page: Wikipedia the free encyclopedia, θεωρητικά τμήματα: Wikipedia the free encyclopedia, παραδείγματα εκδόσεων actionscript: Flash MX and ActionScript documentation and reference guide: Flash MX Tutorials, first edition 2002, published by Macromedia. Flash MX and Actionscript tutorial guide. 46

47 7.5 Ευρετήριο εικόνων. Εικόνα Ρωμαϊκό μωσαϊκό...6 Εικόνα Λαβύρινθος στο δάπεδο του καθεδρικού ναού του Σάρτρ, Γαλλία...6 Εικόνα Κινηματογραφικό Αφίσα της ταινίας Ο Λαβύρινθος του Πάνα...7 Εικόνα Σκηνή από την ταινία Enter The Dragon...8 Εικόνα Μία εικαστική αναπαράσταση του Internet...9 Εικόνα Εικονογραφημένη λογική του right-hand wall-follower αλγορίθμου.10 Εικόνα Μαθητές δοκιμάζουν το ρομπότ επίλυσης λαβύρινθου που κατασκεύασαν...10 Εικόνα 3.1 Κώδικας σε Actionscript Εικόνα 3.2 Κώδικας σε Actionscript Εικόνα 3.3 Κώδικας σε Actionscript Εικόνα Ο αλγόριθμος DFS σε μορφή ψευδοκώδικα...14 Εικόνα Εφαρμογή αλγορίθμου BFS...15 Εικόνα Ο αλγόριθμος BFS σε μορφή ψευδοκώδικα...16 Εικόνα Εφαρμογή αλγορίθμου BFS...17 Εικόνα Ο αλγόριθμος ID σε μορφή ψευδοκώδικα...18 Εικόνα Εφαρμογή αλγορίθμου ID...19 Εικόνα Το αρχικό scene της εφαρμογής...23 Εικόνα Αρχικό στάδιο του λαβυρίνθου Εικόνα ActionScript κώδικας του Start button...24 Εικόνα Το κύριο scene της εφαρμογής...26 Εικόνα Ο χαρακτήρας Megaman...27 Εικόνα Κώδικας ActionScript που ορίζει τον διαθέσιμο χρόνο παιχνιδιού...27 Εικόνα Το End scene της εφαρμογής...29 Εικόνα Ο κώδικας σε ActionScript που τυπώνει τον χρόνο επίλυσης...30 Εικόνα Κώδικας που κλείνει το παράθυρο της εφαρμογής...30 Εικόνα Κίνηση του sprite στους τέσσερις άξονες...31 Εικόνα Κώδικας για κίνηση του sprite στον άξονα yy προς αριστερά...32 Εικόνα Πίνακας αντιστοιχιών

Επίλυση Προβλημάτων 1

Επίλυση Προβλημάτων 1 Επίλυση Προβλημάτων 1 Επίλυση Προβλημάτων Περιγραφή Προβλημάτων Αλγόριθμοι αναζήτησης Αλγόριθμοι τυφλής αναζήτησης Αναζήτηση πρώτα σε βάθος Αναζήτηση πρώτα σε πλάτος (ΒFS) Αλγόριθμοι ευρετικής αναζήτησης

Διαβάστε περισσότερα

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή raniah@hua.gr 1 Αλγόριθμοι Τυφλής Αναζήτησης Οι αλγόριθμοι τυφλής αναζήτησης εφαρμόζονται σε

Διαβάστε περισσότερα

Κεφάλαιο 3. Αλγόριθµοι Τυφλής Αναζήτησης. Τεχνητή Νοηµοσύνη - Β' Έκδοση. Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η.

Κεφάλαιο 3. Αλγόριθµοι Τυφλής Αναζήτησης. Τεχνητή Νοηµοσύνη - Β' Έκδοση. Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η. Κεφάλαιο 3 Αλγόριθµοι Τυφλής Αναζήτησης Τεχνητή Νοηµοσύνη - Β' Έκδοση Ι. Βλαχάβας, Π. Κεφαλάς, Ν. Βασιλειάδης, Φ. Κόκκορας, Η. Σακελλαρίου Αλγόριθµοι Τυφλής Αναζήτησης Οι αλγόριθµοι τυφλής αναζήτησης (blind

Διαβάστε περισσότερα

αντίστοιχο γεγονός. Όταν όντως το κουμπί

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

Διαβάστε περισσότερα

Αλγόριθμοι Τυφλής Αναζήτησης

Αλγόριθμοι Τυφλής Αναζήτησης Τεχνητή Νοημοσύνη 04 Αλγόριθμοι Τυφλής Αναζήτησης Αλγόριθμοι Τυφλής Αναζήτησης (Blind Search Algorithms) Εφαρμόζονται σε προβλήματα στα οποία δεν υπάρχει πληροφορία που να επιτρέπει αξιολόγηση των καταστάσεων.

Διαβάστε περισσότερα

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα)

Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Αλγόριθμοι και Δομές Δεδομένων (IΙ) (γράφοι και δένδρα) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Αφηρημένες

Διαβάστε περισσότερα

Δημιουργώντας ένα παιχνίδι λαβυρίνθου(maze game) με εμπόδια

Δημιουργώντας ένα παιχνίδι λαβυρίνθου(maze game) με εμπόδια Φύλλο Εργασίας Δημιουργώντας ένα παιχνίδι λαβυρίνθου(maze game) με εμπόδια Δραστηριότητα 1η Σε αυτό το φύλλο εργασίας θα δημιουργήσουμε βήμα βήμα ένα παιχνίδι με λαβύρινθο (maze game) με εμπόδια. Το παιχνίδι

Διαβάστε περισσότερα

Το τρίτο παιχνίδι ΛΑΒΥΡΙΝΘΟΣ ΜΕ ΕΜΠΟΔΙΑ

Το τρίτο παιχνίδι ΛΑΒΥΡΙΝΘΟΣ ΜΕ ΕΜΠΟΔΙΑ σύντομες σημειώσεις βασισμένες σε δουλειά των συναδέλφων Κ. Φλώρου και Μ. Μαντουβάλου Το τρίτο παιχνίδι ΛΑΒΥΡΙΝΘΟΣ ΜΕ ΕΜΠΟΔΙΑ Σκοπός του παιχνιδιού είναι ο παππούς να μπορέσει να κινηθεί μέσα έναν λαβύρινθο

Διαβάστε περισσότερα

Περιεχόμενα ΓΕΩΠΥΛΗ ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΚΕΝΤΡΙΚΟ SITE. ΧΑΡΤΗΣ... 2 Είσοδος στην εφαρμογή «Χάρτης»... 2 Λειτουργίες εφαρμογής «Χάρτης»...

Περιεχόμενα ΓΕΩΠΥΛΗ ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΚΕΝΤΡΙΚΟ SITE. ΧΑΡΤΗΣ... 2 Είσοδος στην εφαρμογή «Χάρτης»... 2 Λειτουργίες εφαρμογής «Χάρτης»... Περιεχόμενα ΧΑΡΤΗΣ... 2 Είσοδος στην εφαρμογή «Χάρτης»... 2 Λειτουργίες εφαρμογής «Χάρτης»....2 Πλοήγηση στο χάρτη... 3 Σχεδίαση στο χάρτη... 4 Εκτύπωση του χάρτη... 6 Μετρήσεις επάνω στο χάρτη... 9 Εμφάνιση

Διαβάστε περισσότερα

Γραφικά υπολογιστών Εργαστήριο 10 Εισαγωγή στα Sprites

Γραφικά υπολογιστών Εργαστήριο 10 Εισαγωγή στα Sprites Γραφικά υπολογιστών Εργαστήριο 10 Εισαγωγή στα Sprites Σκοπός της 10ης άσκησης είναι να μάθουμε να χρησιμοποιούμε sprites και να φτιάξουμε ένα παιχνίδι που χρησιμοποιεί συγκρούσεις. Θα δούμε επίσης μερικά

Διαβάστε περισσότερα

Games: Εξοικείωση με το περιβάλλον του Game Maker μέσα από την κατασκευή ενός παιχνιδιού

Games: Εξοικείωση με το περιβάλλον του Game Maker μέσα από την κατασκευή ενός παιχνιδιού Games: Εξοικείωση με το περιβάλλον του Game Maker μέσα από την κατασκευή ενός παιχνιδιού Εκτιμώμενη διάρκεια: Τέσσερις διδακτικές ώρες Ένταξη στο πρόγραμμα σπουδών Στο νέο Πρόγραμμα Σπουδών του Γυμνασίου

Διαβάστε περισσότερα

Επίλυση προβλημάτων με αναζήτηση

Επίλυση προβλημάτων με αναζήτηση Επίλυση προβλημάτων με αναζήτηση Περιεχόμενα Μέθοδοι (πράκτορες) επίλυσης προβλημάτων Προβλήματα και Λύσεις Προβλήματα παιχνίδια Προβλήματα του πραγματικού κόσμου Αναζήτηση λύσεων Δέντρο αναζήτησης Στρατηγικές

Διαβάστε περισσότερα

> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό

> μεγαλύτερο <= μικρότερο ή ίσο < μικρότερο == ισότητα >= μεγαλύτερο ή ίσο!= διαφορετικό 5 ο Εργαστήριο Λογικοί Τελεστές, Δομές Ελέγχου Λογικοί Τελεστές > μεγαλύτερο = μεγαλύτερο ή ίσο!= διαφορετικό Οι λογικοί τελεστές χρησιμοποιούνται για να ελέγξουμε

Διαβάστε περισσότερα

Αναπαραγωγή με αρχεία ήχου

Αναπαραγωγή με αρχεία ήχου Αναπαραγωγή με αρχεία ήχου Ανοίγει η παρουσίαση και εμφανίζεται η διαφάνεια τίτλου, "Πειράματα με αρχεία ήχου". Άσκηση 1: Εισαγωγή ήχου για συνεχή αναπαραγωγή Βήμα 1: Εισαγωγή ήχου Στη διαφάνεια 1, με

Διαβάστε περισσότερα

Scratch 2.0 Προκλήσεις

Scratch 2.0 Προκλήσεις Scratch 2.0 Προκλήσεις Οι µαθητές, εκτός από τα φύλλα εργασίας και τις ασκήσεις, προτείνεται να υλοποιούν και µία προγραµµατιστική πρόκληση σε κάθε ένα από τα 12 µαθήµατα. Οι προγραµµατιστικές προκλήσεις

Διαβάστε περισσότερα

Δημιουργία δισδιάστατου παιχνιδιού, τύπου Pacman. 1ο μέρος.

Δημιουργία δισδιάστατου παιχνιδιού, τύπου Pacman. 1ο μέρος. Μάθημα 4ο Δημιουργία δισδιάστατου παιχνιδιού, τύπου Pacman. 1ο μέρος. Σε αυτό το μάθημα θα δημιουργήσουμε ένα απλό παιχνίδι με τη βοήθεια του Director. Το παιχνίδι θα είναι στο ύφος του γνωστού Pacman,

Διαβάστε περισσότερα

7.Α.1 Παρουσιάσεις. 7.Α.2 Περιγραφή περιεχομένων της εφαρμογής

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

Διαβάστε περισσότερα

Εισαγωγή στην επανάληψη

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

Διαβάστε περισσότερα

Το δεύτερο παιχνίδι ΤΟΥΒΛΑΚΙΑ

Το δεύτερο παιχνίδι ΤΟΥΒΛΑΚΙΑ Το δεύτερο παιχνίδι ΤΟΥΒΛΑΚΙΑ Στο παιχνίδι υπάρχουν τουβλάκια διαφόρων χρωμάτων. Σκοπός του παιχνιδιού είναι να καταστραφούν όλα τα τουβλάκια. Ο παίκτης χειρίζεται από το πληκτρολόγιο μία ρακέτα. Ένα μπαλάκι

Διαβάστε περισσότερα

Σχετική κίνηση αντικειμένων

Σχετική κίνηση αντικειμένων Σχετική κίνηση αντικειμένων Πως θα μπορούσε να κινηθεί ένας χαρακτήρας προς την έξοδο ενός λαβύρινθου; Πως θα μπορούσε το αυτοκινητάκι μας να κινείται μέσα στην πίστα; Πως θα μπορούσαμε να αναπαραστήσουμε

Διαβάστε περισσότερα

A7.2 Δημιουργία Απλής Γραφικής Εφαρμογής σε Περιβάλλον Scratch

A7.2 Δημιουργία Απλής Γραφικής Εφαρμογής σε Περιβάλλον Scratch A7.2 Δημιουργία Απλής Γραφικής Εφαρμογής σε Περιβάλλον Scratch Τι θα μάθουμε σήμερα: Να ενεργοποιούμε το λογισμικό Scratch Να αναγνωρίζουμε τα κύρια μέρη του περιβάλλοντος του Scratch Να δημιουργούμε/εισάγουμε/τροποποιούμε

Διαβάστε περισσότερα

Παράδειγμα «Ημίτονο και ζωγραφική!»: Έχει δει στα μαθηματικά τη γραφική παράσταση της συνάρτησης του ημιτόνου; Σας θυμίζει κάτι η παρακάτω εικόνα;

Παράδειγμα «Ημίτονο και ζωγραφική!»: Έχει δει στα μαθηματικά τη γραφική παράσταση της συνάρτησης του ημιτόνου; Σας θυμίζει κάτι η παρακάτω εικόνα; Τελεστές, συνθήκες και άλλα! Όπως έχει διαφανεί από όλα τα προηγούμενα παραδείγματα, η κατασκευή κατάλληλων συνθηκών στις εντολές εάν, εάν αλλιώς, για πάντα εάν, περίμενε ώσπου, επανέλαβε ώσπου, είναι

Διαβάστε περισσότερα

Breakdance Computer Game σε Scratch.

Breakdance Computer Game σε Scratch. Breakdance Computer Game σε Scratch. Ταστίογλου Μαριάννα 1, Τραντοπούλου Μαργαρίτα 2 1 Μαθήτρια Γ Τάξης, 2 ο Γυμνάσιο Ευόσμου atas94@otenet.gr 2 Μαθήτρια Γ Τάξης, 2 ο Γυμνάσιο Ευόσμου daizy@in.gr Δασκαλάκης

Διαβάστε περισσότερα

Επίλυση Προβλημάτων. Αποτελεί ένα από τα βασικά χαρακτηριστικά γνωρίσματα της νοημοσύνης.

Επίλυση Προβλημάτων. Αποτελεί ένα από τα βασικά χαρακτηριστικά γνωρίσματα της νοημοσύνης. Επίλυση Προβλημάτων Αποτελεί ένα από τα βασικά χαρακτηριστικά γνωρίσματα της νοημοσύνης. Τεχνητή Νοημοσύνη = Αναπαράσταση Γνώσης + Αλγόριθμοι Αναζήτησης Κατηγορίες Προβλημάτων Aναζήτησης Πραγματικά και

Διαβάστε περισσότερα

Πώς μπορούμε να δημιουργούμε γεωμετρικά σχέδια με τη Logo;

Πώς μπορούμε να δημιουργούμε γεωμετρικά σχέδια με τη Logo; Κεφάλαιο 2 Εισαγωγή Πώς μπορούμε να δημιουργούμε γεωμετρικά σχέδια με τη Logo; Η Logo είναι μία από τις πολλές γλώσσες προγραμματισμού. Κάθε γλώσσα προγραμματισμού έχει σκοπό τη δημιουργία προγραμμάτων

Διαβάστε περισσότερα

Ταυτότητα εκπαιδευτικού σεναρίου

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

Διαβάστε περισσότερα

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 1 ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΚΕΦΑΛΑΙΟ 3ο: ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΚΑΙ ΑΛΓΟΡΙΘΜΟΙ ΜΕΡΟΣ 2 ο : ΣΤΟΙΒΑ & ΟΥΡΑ ΙΣΤΟΣΕΛΙΔΑ ΜΑΘΗΜΑΤΟΣ: http://eclass.sch.gr/courses/el594100/ ΣΤΟΙΒΑ 2 Μια στοίβα

Διαβάστε περισσότερα

Οδηγίες σχεδίασης στο περιβάλλον Blender

Οδηγίες σχεδίασης στο περιβάλλον Blender Οδηγίες σχεδίασης στο περιβάλλον Blender Στον πραγματικό κόσμο, αντιλαμβανόμαστε τα αντικείμενα σε τρεις κατευθύνσεις ή διαστάσεις. Τυπικά λέμε ότι διαθέτουν ύψος, πλάτος και βάθος. Όταν θέλουμε να αναπαραστήσουμε

Διαβάστε περισσότερα

Αριστείδης Παλιούρας Ανακαλύψτε το Scratch 2

Αριστείδης Παλιούρας Ανακαλύψτε το Scratch 2 Λαβύρινθος Στη δραστηριότητα αυτή θα δημιουργήσεις το παιχνίδι «Λαβύρινθος» στο οποίο ο χρήστης οδηγεί μια γάτα, χρησιμοποιώντας τα βελάκια του πληκτρολογίου, για να βγει από έναν λαβύρινθο με κόκκινους

Διαβάστε περισσότερα

Φτιάξε ένα απλό παιχνίδι

Φτιάξε ένα απλό παιχνίδι Φτιάξε ένα απλό παιχνίδι Άνοιξε το προγραμματιστικό περιβάλλον του Scratch 2.0 κάνοντας κλικ στο εικονίδιο στην επιφάνεια εργασίας. Κάνε κλικ στο κουμπί «Εισαγωγή αντικειμένου» για να εισάγεις ένα νέο

Διαβάστε περισσότερα

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή

Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή Τεχνητή Νοημοσύνη (ΥΠ23) 6 ο εξάμηνο Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Ουρανία Χατζή raniah@hua.gr 1 Αναζήτηση Δοθέντος ενός προβλήματος με περιγραφή είτε στον χώρο καταστάσεων

Διαβάστε περισσότερα

Τεχνητή Νοημοσύνη. 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος. http://www.aueb.gr/users/ion/

Τεχνητή Νοημοσύνη. 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος. http://www.aueb.gr/users/ion/ Τεχνητή Νοημοσύνη 2η διάλεξη (2015-16) Ίων Ανδρουτσόπουλος http://www.aueb.gr/users/ion/ 1 Οι διαφάνειες αυτής της διάλεξης βασίζονται στα βιβλία: Τεχνητή Νοημοσύνη των Βλαχάβα κ.ά., 3η έκδοση, Β. Γκιούρδας

Διαβάστε περισσότερα

4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος

4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος 4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος Μεταβλητές Συστήματος Η Processing χρησιμοποιεί κάποιες μεταβλητές συστήματος, όπως τις ονομάζουμε, για να μπορούμε να παίρνουμε πληροφορίες από το

Διαβάστε περισσότερα

Τα Φύλλα Εργασίας αφορά την εκμάθηση της εκτέλεσης της δομής επιλογής μέσα από το περιβάλλον του SCRATCH.

Τα Φύλλα Εργασίας αφορά την εκμάθηση της εκτέλεσης της δομής επιλογής μέσα από το περιβάλλον του SCRATCH. 15. ΠΕΡΙΓΡΑΦΗ ΚΑΙ ΑΝΑΛΥΣΗ ΦΥΛΛΩΝ ΕΡΓΑΣΙΑΣ Τα Φύλλα Εργασίας αφορά την εκμάθηση της εκτέλεσης της δομής επιλογής μέσα από το περιβάλλον του SCRATCH. 16. ΑΞΙΟΛΟΓΗΣΗ Οι βασικές διαδικασίες αξιολόγησης προέρχονται

Διαβάστε περισσότερα

21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι

21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB. Αλγόριθμος Διαδικασία Παράμετροι 21. ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 4 - ΔΗΜΙΟΥΡΓΩΝΤΑΣ ΜΕ ΤΟ BYOB BYOB Αλγόριθμος Διαδικασία Παράμετροι Τι είναι Αλγόριθμος; Οι οδηγίες που δίνουμε με λογική σειρά, ώστε να εκτελέσουμε μια διαδικασία ή να επιλύσουμε ένα

Διαβάστε περισσότερα

Η εργασία που επέλεξες θα σου δώσει τη δυνατότητα να συνεργαστείς με συμμαθητές σου και να σχεδιάσετε μια εικονική εκδρομή με το Google Earth.

Η εργασία που επέλεξες θα σου δώσει τη δυνατότητα να συνεργαστείς με συμμαθητές σου και να σχεδιάσετε μια εικονική εκδρομή με το Google Earth. Μια εικονική εκδρομή με το Google Earth Αγαπητέ μαθητή, Η εργασία που επέλεξες θα σου δώσει τη δυνατότητα να συνεργαστείς με συμμαθητές σου και να σχεδιάσετε μια εικονική εκδρομή με το Google Earth. Εσύ

Διαβάστε περισσότερα

Τιμή Τιμή. σκορ. ζωές

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Tank Rescue Computer Game σε 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

Διαβάστε περισσότερα

Δομή Επιλογής. 1. Αν ο σκύλος ακουμπήσει ένα κόκαλο τότε το κόκαλο εξαφανίζεται και ο παίκτης κερδίζει 10 πόντους.

Δομή Επιλογής. 1. Αν ο σκύλος ακουμπήσει ένα κόκαλο τότε το κόκαλο εξαφανίζεται και ο παίκτης κερδίζει 10 πόντους. Τάξη : Α Λυκείου Λογισμικό : Scratch Ενδεικτική Διάρκεια : 45 λεπτά Δομή Επιλογής Μία από τις πιο σημαντικές δομές που χρησιμοποιείται στον προγραμματισμό είναι η δομή επιλογής. Η δομή αυτή μας δίνει την

Διαβάστε περισσότερα

ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ. Από τον κατάλογο που εμφανίζεται επιλέγω: Αποστολή προς Δισκέτα (3,5)

ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ. Από τον κατάλογο που εμφανίζεται επιλέγω: Αποστολή προς Δισκέτα (3,5) ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΣΕ ΔΙΣΚΕΤΑ ΑΝΤΙΓΡΑΦΗ ΑΡΧΕΙΟΥ ΑΠΟ ΔΙΣΚΕΤΑ Τοποθετώ μια δισκέτα στον οδηγό τη δισκέτας του υπολογιστή. Τοποθετώ τη δισκέτα που έχει το αρχείο μου στον οδηγό τη δισκέτας του υπολογιστή.

Διαβάστε περισσότερα

Εισαγωγή στην επανάληψη

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

Διαβάστε περισσότερα

Slalom Race Computer Game on Scratch

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

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

Διαβάστε περισσότερα

Επίλυση προβληµάτων. Περιγραφή προβληµάτων Αλγόριθµοι αναζήτησης

Επίλυση προβληµάτων. Περιγραφή προβληµάτων Αλγόριθµοι αναζήτησης Επίλυση προβληµάτων Περιγραφή προβληµάτων Αλγόριθµοι αναζήτησης! Αλγόριθµοι τυφλής αναζήτησης Αλγόριθµοι ευρετικής αναζήτησης Παιχνίδια δύο αντιπάλων Προβλήµατα ικανοποίησης περιορισµών Αλγόριθµοι τυφλής

Διαβάστε περισσότερα

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

Διαβάστε περισσότερα

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις

Διαβάστε περισσότερα

Πιθανοτικός Συμπερασμός: Πού βρίσκομαι στο πλέγμα; [ΠΛΗ 513] Αυτόνομοι πράκτορες - Project Εξαμήνου ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ

Πιθανοτικός Συμπερασμός: Πού βρίσκομαι στο πλέγμα; [ΠΛΗ 513] Αυτόνομοι πράκτορες - Project Εξαμήνου ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ Πιθανοτικός Συμπερασμός: Πού βρίσκομαι στο πλέγμα; [ΠΛΗ 513] Αυτόνομοι πράκτορες - Project Εξαμήνου Γεωργαρά Αθηνά (A.M. 2011030065) ΠΟΛΥΤΕΧΝΕΙΟ ΚΡΗΤΗΣ ΤΜΗΜΑ ΗΛΕΚΤΡΟΝΙΚΩΝ ΜΗΧΑΝΙΚΩΝ & ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ

Διαβάστε περισσότερα

Περιεχόμενα Ορισμός και λειτουργία των μηχανών Turing Θεωρία Υπολογισμού Ενότητα 20: Μηχανές Turing: Σύνθεση και Υπολογισμοί Επ. Καθ. Π. Κατσαρός Τμήμ

Περιεχόμενα Ορισμός και λειτουργία των μηχανών Turing Θεωρία Υπολογισμού Ενότητα 20: Μηχανές Turing: Σύνθεση και Υπολογισμοί Επ. Καθ. Π. Κατσαρός Τμήμ Θεωρία Υπολογισμού Ενότητα 20: Μηχανές Turing: Σύνθεση και Υπολογισμοί Τμήμα Πληροφορικής Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό,

Διαβάστε περισσότερα

Εισαγωγή στη Ρομποτική και τον Προγραμματισμό με τη χρήση του ρομπότ Thymio & του λογισμικού Aseba

Εισαγωγή στη Ρομποτική και τον Προγραμματισμό με τη χρήση του ρομπότ Thymio & του λογισμικού Aseba 5 ο Πανελλήνιο Επιστημονικό Συνέδριο Ένταξη και Χρήση των ΤΠΕ στην Εκπαιδευτική Διαδικασία Εισαγωγή στη Ρομποτική και τον Προγραμματισμό με τη χρήση του ρομπότ Thymio & του λογισμικού Aseba Κόμης Βασίλης

Διαβάστε περισσότερα

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων

Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Ειδικά θέματα Αλγορίθμων και Δομών Δεδομένων (ΠΛΕ073) Απαντήσεις 1 ου Σετ Ασκήσεων Άσκηση 1 α) Η δομή σταθμισμένης ένωσης με συμπίεση διαδρομής μπορεί να τροποποιηθεί πολύ εύκολα ώστε να υποστηρίζει τις

Διαβάστε περισσότερα

Θεωρήστε ένα puzzle (παιχνίδι σπαζοκεφαλιάς) με την ακόλουθη αρχική διαμόρφωση : b b b w w w e

Θεωρήστε ένα puzzle (παιχνίδι σπαζοκεφαλιάς) με την ακόλουθη αρχική διαμόρφωση : b b b w w w e Άσκηση 1 Θεωρήστε ένα puzzle (παιχνίδι σπαζοκεφαλιάς) με την ακόλουθη αρχική διαμόρφωση : b b b w w w e Υπάρχουν τρία μαύρα τετραγωνάκια (b), τρία άσπρα (w) και ένα κενό (e). Η σπαζοκεφαλιά έχει τις ακόλουθες

Διαβάστε περισσότερα

ΙΔΕΟΚΑΤΑΣΚΕΥΕΣ: ΣΚΕΦΤΟΜΑΙ ΚΑΙ ΓΡΑΦΩ

ΙΔΕΟΚΑΤΑΣΚΕΥΕΣ: ΣΚΕΦΤΟΜΑΙ ΚΑΙ ΓΡΑΦΩ 1 ΙΔΕΟΚΑΤΑΣΚΕΥΕΣ: ΣΚΕΦΤΟΜΑΙ ΚΑΙ ΓΡΑΦΩ Κώστας Κύρος 2 ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 1 3 ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 2 Γίνε και εσύ ένας συγγραφέας! Γράψε τη δική σου μικρή ιστορία. Εκτύπωσέ την και δώσ την στους φίλους σου για να

Διαβάστε περισσότερα

Γ ΓΥΜΝΑΣΙΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΗ ΓΛΩΣΣΑ MicroWorlds Pro

Γ ΓΥΜΝΑΣΙΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ ΤΗ ΓΛΩΣΣΑ MicroWorlds Pro Για να μπορέσουμε να εισάγουμε δεδομένα από το πληκτρολόγιο αλλά και για να εξάγουμε εμφανίσουμε αποτελέσματα στην οθόνη του υπολογιστή χρησιμοποιούμε τις εντολές Εισόδου και Εξόδου αντίστοιχα. Σύνταξη

Διαβάστε περισσότερα

Αγώνες αυτοκινήτου Παιχνίδι για 2 παίκτες

Αγώνες αυτοκινήτου Παιχνίδι για 2 παίκτες Αγώνες αυτοκινήτου Παιχνίδι για 2 παίκτες Άνοιξε το προγραμματιστικό περιβάλλον του Scratch 2.0. Επίλεξε το Σκηνικό. Επίλεξε την καρτέλα Υπόβαθρα. Επίλεξε το πινέλο, αύξησε το πλάτος της γραμμής του πινέλου

Διαβάστε περισσότερα

Σενάριο 17: Παιχνίδι μνήμης με εικόνες

Σενάριο 17: Παιχνίδι μνήμης με εικόνες Σενάριο 17: Παιχνίδι μνήμης με εικόνες Φύλλο Εργασίας Τίτλος: Παιχνίδι μνήμης με εικόνες Γνωστικό Αντικείμενο: Εφαρμογές Πληροφορικής-Υπολογιστών Διδακτική Ενότητα: Διερευνώ - Δημιουργώ Ανακαλύπτω, Συνθετικές

Διαβάστε περισσότερα

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της;

1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες εντολές (μορφές) της; 1. Πότε χρησιμοποιούμε την δομή επανάληψης; Ποιες είναι οι διάφορες (μορφές) της; Η δομή επανάληψης χρησιμοποιείται όταν μια σειρά εντολών πρέπει να εκτελεστεί σε ένα σύνολο περιπτώσεων, που έχουν κάτι

Διαβάστε περισσότερα

Η εντολή «επανέλαβε Χ»

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

Διαβάστε περισσότερα

ΤΕΙ ΛΑΜΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ ΥΠΟΛΟΓΙΣΤΩΝ

ΤΕΙ ΛΑΜΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ ΥΠΟΛΟΓΙΣΤΩΝ ÌïëëÜ Ì. Á μýô Á.Ì. : 5 moll@moll.r ΤΕΙ ΛΑΜΙΑΣ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑ ΥΠΟΛΟΓΙΣΤΩΝ ΜΑΘΗΜΑ : ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΙΑΔΙΚΤΥΟ (ΕΡΓΑΣΤΗΡΙΟ) Ε ΕΞΑΜΗΝΟ ΕΙΣΗΓΗΤΕΣ: Χαϊδόγιαννος Χαράλαμπος ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ

Διαβάστε περισσότερα

1ο μέρος 1. Φτιάχνουμε την πίστα. Μια ενδεικτική πίστα φαίνεται παρακάτω:

1ο μέρος 1. Φτιάχνουμε την πίστα. Μια ενδεικτική πίστα φαίνεται παρακάτω: 1ο μέρος 1. Φτιάχνουμε την πίστα. Μια ενδεικτική πίστα φαίνεται παρακάτω: Εικόνα 1 Για να φτιάξουμε το τείχος επιλέγουμε καταρχήν την καρτέλα Γραφικά (κάτω δεξιά) και έπειτα το γεμάτο τετράγωνο από την

Διαβάστε περισσότερα

Δημιουργία και επεξεργασία διανυσματικών επιπέδων στο QGIS

Δημιουργία και επεξεργασία διανυσματικών επιπέδων στο QGIS Δημιουργία και επεξεργασία διανυσματικών επιπέδων στο QGIS Δημιουργία επιπέδου σχεδίασης 1. Από το Menu Layer Create Layer New Shapefile Layer δημιουργούμε νέο επίπεδο. Στο παράθυρο που ανοίγει (Εικ. 1)

Διαβάστε περισσότερα

Λεπτομέριες τοιχοποιίας Σχεδίαση κάτοψης

Λεπτομέριες τοιχοποιίας Σχεδίαση κάτοψης 1 Λεπτομέριες τοιχοποιϊας Σχεδίαση κάτοψης Λεπτομέριες τοιχοποιίας Σχεδίαση κάτοψης Ξεκινώντας το πρόγραμμα εμφανίζονται οι επιλογές σχετικά με το τι θέλετε να κάνετε. Δημιουργώντας Νέο Δωμάτιο Όταν ο

Διαβάστε περισσότερα

Περιεχόμενα. Μέρος 1: Βασικές έννοιες Πληροφορικής και επικοινωνιών Μέρος 2: Χρήση υπολογιστή και διαχείριση αρχείων Πρόλογος...

Περιεχόμενα. Μέρος 1: Βασικές έννοιες Πληροφορικής και επικοινωνιών Μέρος 2: Χρήση υπολογιστή και διαχείριση αρχείων Πρόλογος... Περιεχόμενα Πρόλογος...11 Μέρος 1: Βασικές έννοιες Πληροφορικής και επικοινωνιών... 13 1.1 Εισαγωγή στους υπολογιστές... 15 1.2 Μονάδες μέτρησης... 27 1.3 Οι βασικές λειτουργίες ενός ηλεκτρονικού υπολογιστή...

Διαβάστε περισσότερα

Βυζαντινός Ρεπαντής Κολλέγιο Αθηνών 2010

Βυζαντινός Ρεπαντής Κολλέγιο Αθηνών 2010 Βυζαντινός Ρεπαντής Κολλέγιο Αθηνών 2010 Δημιουργία ενός απλού παιχνιδιού με το Gamemaker (μετάφραση από το http://www.stuffucanuse.com/downloads/gamemaker-introductionlessons/free_game_downloads_gamemaker.htm)

Διαβάστε περισσότερα

ΥΣ02 Τεχνητή Νοημοσύνη Χειμερινό Εξάμηνο

ΥΣ02 Τεχνητή Νοημοσύνη Χειμερινό Εξάμηνο ΥΣ02 Τεχνητή Νοημοσύνη Χειμερινό Εξάμηνο 2010-2011 Πρώτη Σειρά Ασκήσεων (20% του συνολικού βαθμού στο μάθημα, Άριστα = 390 μονάδες) Ημερομηνία Ανακοίνωσης: 6/10/2010 Ημερομηνία Παράδοσης: 15/11/2010 σύμφωνα

Διαβάστε περισσότερα

Δομές Δεδομένων (Data Structures)

Δομές Δεδομένων (Data Structures) Δομές Δεδομένων (Data Structures) Στοίβες Ουρές Στοίβες: Βασικές Έννοιες. Ουρές: Βασικές Έννοιες. Βασικές Λειτουργίες. Παραδείγματα. Στοίβες Δομή τύπου LIFO: Last In - First Out (τελευταία εισαγωγή πρώτη

Διαβάστε περισσότερα

Ένα διαδικτυακό εργαλείο δημιουργίας παρουσιάσεων

Ένα διαδικτυακό εργαλείο δημιουργίας παρουσιάσεων Ένα διαδικτυακό εργαλείο δημιουργίας παρουσιάσεων Περιεχόμενα 1. Περιγραφή 2. Οδηγίες χρήσης 2.1 Δημιουργία λογαριασμού 2.2 Περιβάλλον εργασίας 2.3 Βασικές λειτουργίες 2.3.1 Εισαγωγή (Insert) 2.3.2 Πλαίσιο

Διαβάστε περισσότερα

Άσκηση 2: Λαβύρινθοι και ρομπότ Α. (Σχεδιασμός χώρου καταστάσεων) Ενδεικτική επίλυση

Άσκηση 2: Λαβύρινθοι και ρομπότ Α. (Σχεδιασμός χώρου καταστάσεων) Ενδεικτική επίλυση Άσκηση 2: Λαβύρινθοι και ρομπότ Η εταιρία «Ρομπότ» παρουσιάζει το νέο της μοντέλο, τον πλοηγό πάρκων Ρ-310. Το Ρ-310 είναι δημοφιλές γιατί όπου και αν είσαι μέσα στο πάρκο σου λέει πώς πρέπει να κινηθείς

Διαβάστε περισσότερα

Μαθήματα Scratch -Δραστηριότητα 1 Παλέτα Κίνηση

Μαθήματα Scratch -Δραστηριότητα 1 Παλέτα Κίνηση Μάθημα: Scrtach Τάξη: Ε/ΣΤ Παλέτα Κίνηση Προετοιμασία για το μάθημα: Καλό είναι πριν ξεκινήσουμε να παρακολουθήσουμε τα παρακάτω δύο videos: a) Εισαγωγή στο περιβάλλον του Scratch β) Εντολές κίνησης και

Διαβάστε περισσότερα

ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ 1

ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ 1 ΔΙΑΣΧΙΣΗ ΓΡΑΦΗΜΑΤΩΝ 1 Θέματα μελέτης Πρόβλημα αναζήτησης σε γραφήματα Αναζήτηση κατά βάθος (Depth-first search DFS) Αναζήτηση κατά πλάτος (Breadth-first search BFS) 2 Γράφημα (graph) Αναπαράσταση συνόλου

Διαβάστε περισσότερα

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ 2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ Προκειμένου να επιτευχθεί η «ακριβής περιγραφή» ενός αλγορίθμου, χρησιμοποιείται κάποια γλώσσα που μπορεί να περιγράφει σειρές ενεργειών με τρόπο αυστηρό,

Διαβάστε περισσότερα

Σύντομος οδηγός αναφοράς Για Windows Έκδοση 4.0

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

Διαβάστε περισσότερα

Κλιμάκιο Πληροφορικής Σεμινάρια για τα λογισμικά κλειστού τύπου Κύκλος Α

Κλιμάκιο Πληροφορικής Σεμινάρια για τα λογισμικά κλειστού τύπου Κύκλος Α η- Τάξη Οδηγός χρήσης του προγράμματος αξιολόγησης για τα προγράμματα «Ο Ξεφτέρης και η γραμματική και «Ο Καπετάν Μπουμπουλήθρας» Ο οδηγός αυτός στοχεύει στην χρήση του βοηθητικού προγράμματος η-τάξη.

Διαβάστε περισσότερα

Κεφάλαιο 2.3: Ρυθμίσεις των Windows

Κεφάλαιο 2.3: Ρυθμίσεις των Windows Κεφάλαιο 2.3: Ρυθμίσεις των Windows 2.3.1 Βασικές πληροφορίες συστήματος Για να δούμε βασικές πληροφορίες για τον υπολογιστή μας, πατάμε το κουμπί «Έναρξη» και επιλέγουμε διαδοχικά «Πίνακας Ελέγχου», «Σύστημα

Διαβάστε περισσότερα

Visual Flowchart Γενικά

Visual Flowchart Γενικά Visual Flowchart 3.020 -Γενικά Το Visual Flowchart ή «Data-Flow Visual Programming Language 3.020» (http://www. emu8086.com/fp) είναι ένα περιβάλλον ανάπτυξης και εκτέλεσης αλγορίθμων απευθείας σε μορφή

Διαβάστε περισσότερα

Διαχείριση Βάσης Δεδομένων (dbadmin)

Διαχείριση Βάσης Δεδομένων (dbadmin) Published on PRISMA Win Help - Megasoft (http://docs.megasoft.gr) Home > Εμπορική Διαχείριση > Διαχείριση Βάσης Δεδομένων (dbadmin) Διαχείριση Βάσης Δεδομένων (dbadmin) Μέσα από τη διαχείριση βάσης δεδομένων

Διαβάστε περισσότερα

Εισαγωγή στη σχεδίαση κινούμενων γραφικών

Εισαγωγή στη σχεδίαση κινούμενων γραφικών ΕΣΔ200 Δημιουργία Περιεχομένου ΙI Εισαγωγή στη σχεδίαση κινούμενων γραφικών Νικόλας Τσαπατσούλης Επίκουρος Καθηγητής Τμήμα Επικοινωνίας & Σπουδών Διαδικτύου Εισαγωγή Εφαρμογές Κύρια Χαρακτηριστικά Flash

Διαβάστε περισσότερα

Κεφάλαιο 9: Αλληλεπίδραση

Κεφάλαιο 9: Αλληλεπίδραση Κεφάλαιο 9: Αλληλεπίδραση... Σε αυτό το κεφάλαιο: 9.1 Εισαγωγή στην αλληλεπίδραση 9.2 Γεγονότα 9.3 Εντολή «Ρώτησε... και Περίμενε»... «Το οικοσύστημα αυτοπροσαρμόζεται και για κάθε δράση υπάρχει και μία

Διαβάστε περισσότερα

Οι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:

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

Διαβάστε περισσότερα

Γεωργάκης Αριστείδης ΠΕ20

Γεωργάκης Αριστείδης ΠΕ20 1 Εκκίνηση για πρώτη φορά Όπως συμβαίνει και με τις υπόλοιπες εφαρμογές του OpenOffice, έτσι και το Impress μπορούμε να το εκκινήσουμε μέσω της συντόμευσης που εγκαθίσταται αυτόματα στην επιφάνεια εργασίας

Διαβάστε περισσότερα

O πύραυλος. Γνωστικό Αντικείμενο: Φυσική (Δύναμη Μορφές Ενέργειας) - Τεχνολογία Τάξη: Β Γυμνασίου

O πύραυλος. Γνωστικό Αντικείμενο: Φυσική (Δύναμη Μορφές Ενέργειας) - Τεχνολογία Τάξη: Β Γυμνασίου O πύραυλος Γνωστικό Αντικείμενο: Φυσική (Δύναμη Μορφές Ενέργειας) - Τεχνολογία Τάξη: Β Γυμνασίου Χρονική Διάρκεια Προτεινόμενη χρονική διάρκεια σχεδίου εργασίας: 5 διδακτικές ώρες Διδακτικοί Στόχοι Οι

Διαβάστε περισσότερα

Ποιές εντολές του Scratch πρέπει να ξέρω;

Ποιές εντολές του Scratch πρέπει να ξέρω; Ποιές εντολές του Scratch πρέπει να ξέρω; ΕΝΤΟΛΕΣ ΚΙΝΗΣΗΣ κινήσου χ βήματα στρίψε χ μοίρες στρίψε χ μοίρες στρίψε προς την κατεύθυνση των χ μοιρών στρίψε προς το [] πήγαινε στη θέση χ:[] και y:[] πήγαινε

Διαβάστε περισσότερα

18.ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 1 Δραστηριότητα 1

18.ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 1 Δραστηριότητα 1 18.ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 1 Δραστηριότητα 1 Στόχος της δραστηριότητας είναι να δημιουργήσουμε το σκηνικό της πόλης στο SCRATCH, να εισάγουμε ένα ελικόπτερο και στη συνέχεια να το προγραμματίσουμε ώστε να κινείτε

Διαβάστε περισσότερα

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Τμήμα Πληροφορικής & Επικοινωνιών Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Ιωάννης Γεωργουδάκης - Πάρις Μαστοροκώστας Σεπτέμβριος 2011 ΠΕΡΙΕΧΟΜΕΝΑ

Διαβάστε περισσότερα

Atlantis - Νέο user interface

Atlantis - Νέο user interface New Desktop 1 Atlantis - Νέο user interface ATLANTIS - ΝΕΟ USER INTERFACE... 2 ΓΕΝΙΚΗ ΠΑΡΟΥΣΙΑΣΗ... 3 ΓΡΑΜΜΗ ΣΥΣΤΗΜΑΤΟΣ... 4 ΜΠΑΡΑ ΧΡΗΣΤΗ (USER TOOLBAR)... 5 ΚΕΝΤΡΙΚΟ ΜΕΝΟΥ ΤΟΥ ΣΥΣΤΗΜΑΤΟΣ... 6 Κεντρικό

Διαβάστε περισσότερα

Διορθώσεις σελ

Διορθώσεις σελ Διορθώσεις σελ. 73-74 # Τώρα ο άνθρωπος σκέφτεται έναν αριθμό από 1 έως 1000 Ν = 1000 print Σκέψου έναν αριθμό από το 1 έως το, Ν guesses = 0 found = False first = 1 last = N while not found and guesses

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

του προγράμματος diagrama_rohs.zip )

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

Διαβάστε περισσότερα

ΠΑΡΑΡΤΗΜΑ IV. ΔΙΔΑΚΤΙΚΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΡΑΡΤΗΜΑ IV Ασκήσεις για το Robolab

ΠΑΡΑΡΤΗΜΑ IV. ΔΙΔΑΚΤΙΚΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΡΑΡΤΗΜΑ IV Ασκήσεις για το Robolab ΠΑΡΑΡΤΗΜΑ IV Παρακάτω παραθέτουμε μία σειρά ασκήσεων για το Robolab ομαδοποιημένων σε κατηγορίες : Επιμέλεια : Κυριακού Γεώργιος 1 Φύλλο Ασκήσεων (πρόκληση με κινητήρες) ΔΙΔΑΚΤΙΚΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΑΡΑΡΤΗΜΑ

Διαβάστε περισσότερα

Movie Maker (Δημιουργία βίντεο)

Movie Maker (Δημιουργία βίντεο) Movie Maker (Δημιουργία βίντεο) - Με πόσους τρόπους μπορούμε να διηγηθούμε μια ιστορία; - Μπορούμε να την πούμε ο ένας στον άλλο. - Μπορούμε να την γράψουμε. - Μπορούμε να τη ζωγραφίσουμε κομμάτι-κομμάτι.

Διαβάστε περισσότερα

Παλέτα Κίνηση. Καλό είναι πριν ξεκινήσετε το παρακάτω φυλλάδιο να έχετε παρακολουθήσει τα παρακάτω δύο videos: a) Εισαγωγή στο περιβάλλον του Scratch

Παλέτα Κίνηση. Καλό είναι πριν ξεκινήσετε το παρακάτω φυλλάδιο να έχετε παρακολουθήσει τα παρακάτω δύο videos: a) Εισαγωγή στο περιβάλλον του Scratch Τάξη : Α Λυκείου Λογισμικό : Scratch Διάρκεια : 45 λεπτά Παλέτα Κίνηση Σε αυτό το φύλλο εργασίας θα εξοικειωθείτε με τις εντολές του Scratch που βρίσκονται στην παλέτα Κίνηση. Για τον σκοπό αυτό διαβάστε

Διαβάστε περισσότερα

ΔΙΑΛΕΞΗ ΙΙ ΕΝΑ ΒΗΜΑ ΠΑΡΑΠΑΝΩ ΜΕ SCRATCH ΕΠΙΛΕΓΩΝΤΑΣ & ΕΠΑΝΑΛΑΜΒΑΝΟΝΤΑΣ

ΔΙΑΛΕΞΗ ΙΙ ΕΝΑ ΒΗΜΑ ΠΑΡΑΠΑΝΩ ΜΕ SCRATCH ΕΠΙΛΕΓΩΝΤΑΣ & ΕΠΑΝΑΛΑΜΒΑΝΟΝΤΑΣ Τ.Ε.Ι. ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΔΙΑΛΕΞΗ ΙΙ ΕΝΑ ΒΗΜΑ ΠΑΡΑΠΑΝΩ ΜΕ SCRATCH ΕΠΙΛΕΓΩΝΤΑΣ & ΕΠΑΝΑΛΑΜΒΑΝΟΝΤΑΣ Γ ι ά ν ν η ς Ε. Τ ζ ή μ α ς Μάθημα: ΤΕΧΝΙΚΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Το πρώτο πράγμα

Διαβάστε περισσότερα

Πληροφορική 2. Αλγόριθμοι

Πληροφορική 2. Αλγόριθμοι Πληροφορική 2 Αλγόριθμοι 1 2 Τι είναι αλγόριθμος; Αλγόριθμος είναι ένα διατεταγμένο σύνολο από σαφή βήματα το οποίο παράγει κάποιο αποτέλεσμα και τερματίζεται σε πεπερασμένο χρόνο. Ο αλγόριθμος δέχεται

Διαβάστε περισσότερα

ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΤΗΣ. Εργαλειοθήκη Παρουσιάζετε το έργο σας Εκκινείτε τα σενάριά σας Σταματάτε όλα τα σενάρια. Οι 8 ομάδες της Παλέτας εντολών

ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΤΗΣ. Εργαλειοθήκη Παρουσιάζετε το έργο σας Εκκινείτε τα σενάριά σας Σταματάτε όλα τα σενάρια. Οι 8 ομάδες της Παλέτας εντολών ΤΟ ΠΕΡΙΒΑΛΛΟΝ ΤΗΣ Οι 8 ομάδες της Παλέτας εντολών Εργαλειοθήκη Παρουσιάζετε το έργο σας Εκκινείτε τα σενάριά σας Σταματάτε όλα τα σενάρια Σκηνή Εδώ ζωντανεύει το σενάριό σας Εντολές κάθε ομάδας Αυτή είναι

Διαβάστε περισσότερα

Φύλλο εργασίας 1 Εισαγωγή στη Ρομποτική

Φύλλο εργασίας 1 Εισαγωγή στη Ρομποτική Φύλλο εργασίας 1 Εισαγωγή στη Ρομποτική Χωριστείτε σε ομάδες 2-3 ατόμων και απαντήστε στις ερωτήσεις του φύλλου εργασίας. Δραστηριότητα 1 Συζητήστε με τα μέλη της ομάδας σας και γράψτε μια λίστα με ρομποτικές

Διαβάστε περισσότερα

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 8 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΔΟΜΗ ΕΠΑΝΑΛΗΨΗΣ 1) Πότε χρησιμοποιείται η δομή επανάληψης

Διαβάστε περισσότερα

Το φτερό του αεροπλάνου

Το φτερό του αεροπλάνου Το φτερό του αεροπλάνου Γνωστικό Αντικείμενο: Φυσική (Πίεση) Τάξη: Β Γυμνασίου Χρονική Διάρκεια Προτεινόμενη χρονική διάρκεια σχεδίου εργασίας: 5 διδακτικές ώρες Διδακτικοί Στόχοι Οι μαθητές: - Να εξηγούν

Διαβάστε περισσότερα

Επίλυση Προβλημάτων 1

Επίλυση Προβλημάτων 1 Επίλυση Προβλημάτων 1 Επίλυση Προβλημάτων Περιγραφή Προβλημάτων Αλγόριθμοι αναζήτησης Αλγόριθμοι τυφλής αναζήτησης Αναζήτηση πρώτα σε βάθος Αναζήτηση πρώτα σε πλάτος (ΒFS) Αλγόριθμοι ευρετικής αναζήτησης

Διαβάστε περισσότερα

Μάθημα 4ο. Προγράμματα

Μάθημα 4ο. Προγράμματα Μάθημα 4ο Προγράμματα Σελίδα 47 από 106 4.1 Εγκατάσταση προγραμμάτων Όπως έχουμε πει στο πρώτο μάθημα (Σημειώσεις 1ου Μαθήματος 1.3.3.Β σελ. 12) τα προγράμματα ή αλλιώς εφαρμογές αποτελούν μέρος του λογισμικού

Διαβάστε περισσότερα

Το Κ2 είναι ένα παιχνίδι για 1 έως 5 παίκτες, ηλικίας 8 ετών και άνω, με διάρκεια περίπου 60 λεπτά.

Το Κ2 είναι ένα παιχνίδι για 1 έως 5 παίκτες, ηλικίας 8 ετών και άνω, με διάρκεια περίπου 60 λεπτά. ΟΔΗΓΙΕΣ Το Κ2 είναι το δεύτερο ψηλότερο βουνό στον κόσμο (μετά το Έβερεστ) με ύψος 8.611 μέτρα από τη στάθμη της θάλασσας. Θεωρείται, επίσης, ένα από τα δυσκολότερα βουνά άνω των 8.000 μέτρων. Το Κ2 ποτέ

Διαβάστε περισσότερα