ΥΛΟΠΟΙΗΣΗ ΠΑΙΧΝΙΔΙΟΥ ΛΑΒΥΡΙΝΘΟΥ ΣΕ ΓΛΩΣΣΑ 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) με εμπόδια. Το παιχνίδι

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 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 στην

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Τεχνητή Νοημοσύνη. 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η έκδοση, Β. Γκιούρδας

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Κεφάλαιο 2.3: Ρυθμίσεις των Windows Κεφάλαιο 2.3: Ρυθμίσεις των Windows 2.3.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). Η σπαζοκεφαλιά έχει τις ακόλουθες

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

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

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

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

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

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

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

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

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

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

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

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

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

Breakdance Computer Game σε Scratch.

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

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

Visual Flowchart Γενικά

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

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

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

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

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

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ

5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5 ΕΙΣΑΓΩΓΗ ΣΤΗ ΘΕΩΡΙΑ ΑΛΓΟΡΙΘΜΩΝ 5.1 Εισαγωγή στους αλγορίθμους 5.1.1 Εισαγωγή και ορισμοί Αλγόριθμος (algorithm) είναι ένα πεπερασμένο σύνολο εντολών οι οποίες εκτελούν κάποιο ιδιαίτερο έργο. Κάθε αλγόριθμος

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

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Σχεδίαση Βάσεων Δεδομένων

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Σχεδίαση Βάσεων Δεδομένων Ενότητα 3 Σχεδίαση Βάσεων Δεδομένων 17 18 3.1 Εισαγωγή Μία βάση δεδομένων αποτελείται από δεδομένα για διάφορα θέματα τα οποία όμως σχετίζονται μεταξύ τους και είναι καταχωρημένα με συγκεκριμένο τρόπο.

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

Microsoft PowerPoint 2007

Microsoft PowerPoint 2007 Information Technology Services and Solutions Σύμβουλοι Μηχανογράφησης και Εκπαίδευσης Στεφ. Σκουλούδη 27, Καλλίπολη, Πειραιάς 210 45 38 177 http://www.itss.gr/ Microsoft PowerPoint 2007 Κωνσταντίνος Κωβαίος

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

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

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

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

Εισαγωγή στο Libre Office Παρουσιάσεις με το Impress. Bάιος Κολοφωτιάς Επιστημονικός Συνεργάτης Sweng Lab A.Π.Θ

Εισαγωγή στο Libre Office Παρουσιάσεις με το Impress. Bάιος Κολοφωτιάς Επιστημονικός Συνεργάτης Sweng Lab A.Π.Θ Εισαγωγή στο Libre Office Παρουσιάσεις με το Impress Bάιος Κολοφωτιάς Επιστημονικός Συνεργάτης Sweng Lab A.Π.Θ Εισαγωγικά Οι παρουσιάσεις είναι μια εφαρμογή που χρησιμεύει στην παρουσίαση των εργασιών

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

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

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

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

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

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

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

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

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

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

Εισαγωγή στο 3DS Max 2009

Εισαγωγή στο 3DS Max 2009 Μάθημα 1ο Εισαγωγή στο 3DS Max 2009 Σε αυτό το μάθημα πραγματοποιείται εκμάθηση του περιβάλλοντος του προγράμματος 3DS Max 2009. Το 3D Studio Max είναι ένα από τα ισχυρότερα προγράμματα δημιουργίας και

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

PROJECT ΣΤΟ ΜΑΘΗΜΑ "ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟΔΟΥΣ"

PROJECT ΣΤΟ ΜΑΘΗΜΑ ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟΔΟΥΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ PROJECT ΣΤΟ ΜΑΘΗΜΑ "ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΕΥΡΕΤΙΚΕΣ ΜΕΘΟΔΟΥΣ" ΜΕΡΟΣ ΔΕΥΤΕΡΟ Υπεύθυνος Καθηγητής Λυκοθανάσης Σπυρίδων Ακαδημαικό Έτος:

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

Διδάσκων: Παναγιώτης Ανδρέου

Διδάσκων: Παναγιώτης Ανδρέου Διάλεξη 12: Δέντρα ΙΙ -Δυαδικά Δέντρα Στην ενότητα αυτή θα μελετηθούν τα εξής επιμέρους θέματα: - Δυαδικά Δένδρα - Δυαδικά Δένδρα Αναζήτησης(ΔΔΑ) - Εύρεση Τυχαίου, Μέγιστου, Μικρότερου στοιχείου - Εισαγωγή

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

Εργαστήριο 2 - Άσκηση - Ανάλυση

Εργαστήριο 2 - Άσκηση - Ανάλυση Εργαστήριο 2 - Άσκηση - Ανάλυση Εκφώνηση: Δημιουργείστε την εφαρμογή Αριθμήτηριο σε Java Swing με χρήση NetBeans ακολουθώντας τις παρακάτω οδηγίες. 1. Η εφαρμογή θα σχεδιασθεί σε ένα εξωτερικό υποδοχέα

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

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

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

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

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

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

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

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

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012. Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις:

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012. Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις: ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΔΙΑΓΩΝΙΣΜΑ ΠΡΟΣΟΜΟΙΩΣΗΣ 23/04/2012 ΘΕΜΑ Α Α. Να απαντήσετε με Σ ή Λ στις παρακάτω προτάσεις: 1. Κάθε βρόγχος που υλοποιείται με την εντολή Για μπορεί να

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

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ DVR KTEC

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ DVR KTEC ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ DVR KTEC 1) Πατάμε δεξί κλικ Μενού 2) Όνομα Χρήστη βάζουμε «admin» 3) Κωδικός Πρόσβασης το αφήνουμε «κενό» 4) Πατάμε OK και μπαίνουμε στο Μενού Είσοδος στο μενού Στην πρώτη εκκίνηση μετά

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

B) Ετοιμάζοντας μια Παρουσίαση

B) Ετοιμάζοντας μια Παρουσίαση B) Ετοιμάζοντας μια Παρουσίαση Τι είναι μια παρουσίαση με τη βοήθεια ηλεκτρονικού υπολογιστή Ο υπολογιστής με την κατάλληλη εφαρμογή, μπορεί να μας βοηθήσει στη δημιουργία εντυπωσιακών εγγράφων, διαφανειών

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

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

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

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

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

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

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

Θέμα 1: Robbie και Αναζήτηση

Θέμα 1: Robbie και Αναζήτηση Θέμα : Robbie και Αναζήτηση Ο Robbie, το ρομπότ του παρακάτω σχήματος-χάρτη, κατά τη διάρκεια των εργασιών που κάνει διαπιστώνει ότι πρέπει να γυρίσει όσο το δυνατόν πιο γρήγορα, από την τρέχουσα θέση,

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

ΕΝΤΟΛΕΣ. 7.1 Εισαγωγικό μέρος με επεξήγηση των Εντολών : Επεξήγηση των εντολών που θα

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

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

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

ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ (Σημειώσεις Word) ΕΚΠΑΙΔΕΥΤΕΣ: ΒΑΡΕΛΑΣ ΙΩΑΝΝΗΣ, ΠΟΖΟΥΚΙΔΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ MICROSOFT WORD (ΕΚΠΑΙΔΕΥΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ) ΠΕΡΙΕΧΟΜΕΝΑ

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

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

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

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

ADVANCED TIMETABLE ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ - ΣΕΜΙΝΑΡΙΑ. Advanced Time Table - Σεμινάρια. Τι είναι τα σεμινάρια

ADVANCED TIMETABLE ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ - ΣΕΜΙΝΑΡΙΑ. Advanced Time Table - Σεμινάρια. Τι είναι τα σεμινάρια ADVANCED TIMETABLE ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ - ΣΕΜΙΝΑΡΙΑ Ακόμα ένα χαρακτηριστικό, που περιλαμβάνεται στην Pro έκδοση του Advanced TimeTable, είναι τα σεμινάρια. Η Professional έκδοση, απευθύνεται στους εκπαιδευτικούς

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

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο

Σχεδιάζοντας Εφαρμογές για το Διαδίκτυο FrontPage 2003 Πρακτικός Οδηγός Χρήσης Το FrontPage είναι ένα πρόγραμμα δημιουργίας ιστοσελίδων και δικτυακών τόπων που επιτρέπει το σχεδιασμό ιστοσελίδων μέσα από γραφικό περιβάλλον αλλά και την ταυτόχρονη

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

Κεφάλαιο 1 Χρήση προτύπου 2. Κεφάλαιο 2 Τροποποίηση μιας παρουσίασης 9. Κεφάλαιο 4 Προσθήκη αντικειμένων 26. Κεφάλαιο 5 Ειδικά εφέ 35

Κεφάλαιο 1 Χρήση προτύπου 2. Κεφάλαιο 2 Τροποποίηση μιας παρουσίασης 9. Κεφάλαιο 4 Προσθήκη αντικειμένων 26. Κεφάλαιο 5 Ειδικά εφέ 35 Περιεχόμενα Κεφάλαιο 1 Χρήση προτύπου 2 Κεφάλαιο 2 Τροποποίηση μιας παρουσίασης 9 Κεφάλαιο 3 Εφαρμογή σχεδίων 19 Κεφάλαιο 4 Προσθήκη αντικειμένων 26 Κεφάλαιο 5 Ειδικά εφέ 35 Κεφάλαιο 6 Κουμπιά ενεργειών

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

Create Sprite at Runtime

Create Sprite at Runtime Create Sprite at Runtime (with ActionScript 3.0) Free Flash Demos Tested on Adobe CS4 Το σενάριο: Να φτιάξεις ένα sprite (που στον «μουσαμά» του να υπάρχει μια ζωγραφιά, π.χ. ένα τετράγωνο). Αυτό να το

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

Λυσεις προβλημάτων τελικής φάσης Παγκύπριου Μαθητικού Διαγωνισμού Πληροφορικής 2007

Λυσεις προβλημάτων τελικής φάσης Παγκύπριου Μαθητικού Διαγωνισμού Πληροφορικής 2007 Λυσεις προβλημάτων τελικής φάσης Παγκύπριου Μαθητικού Διαγωνισμού Πληροφορικής 2007 Πρόβλημα 1 Το πρώτο πρόβλημα λύνεται με τη μέθοδο του Δυναμικού Προγραμματισμού. Για να το λύσουμε με Δυναμικό Προγραμματισμό

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

Αφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας

Αφηρημένες Δομές Δεδομένων. Στοίβα (Stack) Υλοποίηση στοίβας Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής ισαγωγή στην πιστήμη των Υπολογιστών 2015-16 λγόριθμοι και ομές εδομένων (IΙ) (γράφοι και δένδρα) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης φηρημένες

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

Φύλλο Εργασίας: Παιχνίδι Λαβύρινθος (MAZE) Προγραμματιστικό Εργαλείο: GAME MAKER. Ονοματεπώνυμο:

Φύλλο Εργασίας: Παιχνίδι Λαβύρινθος (MAZE) Προγραμματιστικό Εργαλείο: GAME MAKER. Ονοματεπώνυμο: Φύλλο Εργασίας: Παιχνίδι Λαβύρινθος (MAZE) Προγραμματιστικό Εργαλείο: GAME MAKER Ονοματεπώνυμο: Τμήμα: Σκοπός σας είναι να φτιάξετε ένα ηλεκτρονικό παιχνίδι για περιπλάνηση σε Λαβύρινθο (MAZE) χρησιμοποιώντας

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

Vodafone Business Connect

Vodafone Business Connect Vodafone Business Connect Vodafone Business WebHosting Αναλυτικός Οδηγός Χρήσης Advanced Template Manager Αναλυτικός οδηγός χρήσης: Advanced template Manager Vodafone Business Connect - Υπηρεσίες φιλοξενίας

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

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Γραφήματα. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Δομές Δεδομένων. Δημήτρης Μιχαήλ. Γραφήματα. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Δομές Δεδομένων Γραφήματα Δημήτρης Μιχαήλ Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο Γραφήματα Κατευθυνόμενο Γράφημα Ένα κατευθυνόμενο γράφημα G είναι ένα ζευγάρι (V, E) όπου V είναι ένα

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

Ενότητα. Σχεδίαση Βάσεων Δεδομένων

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

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή Στο εργαστήριο αυτό θα μάθουμε για τη χρήση συναρτήσεων με σκοπό την κατασκευή αυτόνομων τμημάτων προγραμμάτων που υλοποιούν μία συγκεκριμένη διαδικασία, τα οποία

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

Εγχειρίδιο του πίνακα χαρακτήρων

Εγχειρίδιο του πίνακα χαρακτήρων i Εγχειρίδιο του πίνακα ii Copyright 2004 Sun Microsystems Copyright 2003, 2004 Chee Bin HOH Δίνεται άδεια για αντιγραφή, διανομή και/ή τροποποίηση του εγγράφου υπό τους όρους της Ελεύθερης Άδειας Τεκμηρίωσης

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

Εγχειρίδιο Φοιτητών. 1. Εισαγωγή

Εγχειρίδιο Φοιτητών. 1. Εισαγωγή Εγχειρίδιο Φοιτητών 1. Εισαγωγή Η ηλεκτρονική πλατφόρµα «e-class», αποτελεί ένα ολοκληρωµένο σύστηµα Ασύγχρονης Τηλεκπαίδευσης. Στόχος της είναι παροχή υποδοµών εκπαίδευσης και κατάρτισης ανεξάρτητα από

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

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

Αριστείδης Παλιούρας Ανακαλύψτε το Scratch 2 Παιχνίδι Bounce Ball Στη δραστηριότητα αυτή θα δημιουργήσεις το παιχνίδι Bounce Ball στο οποίο η μπάλα κινείται συνεχώς και ο χρήστης προσπαθεί με το ποντίκι του να μετακινεί την πράσινη μπάρα για να χτυπήσει

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

Σημείωση για το προϊόν

Σημείωση για το προϊόν Έναρξη από εδώ Copyright 2013 Hewlett-Packard Development Company, L.P. Η ονομασία Windows είναι σήμα κατατεθέν της Microsoft Corporation στις ΗΠΑ. Οι πληροφορίες στο παρόν έγγραφο μπορεί να αλλάξουν χωρίς

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

Ορισμός του χρώματος όρισε το χρώμα πένας σε [06_π03.sb] άλλαξε χρώμα πένας κατά. άλλαξε χρώμα πένας κατά άλλαξε χρώμα πένας κατά [06_π04.

Ορισμός του χρώματος όρισε το χρώμα πένας σε [06_π03.sb] άλλαξε χρώμα πένας κατά. άλλαξε χρώμα πένας κατά άλλαξε χρώμα πένας κατά [06_π04. Ορισμός του χρώματος Δεν θα ήταν πιο ενδιαφέρον να μπορούμε να προσδιορίσουμε το χρώμα της πένας κατά τη διάρκεια του έργου σας; Δεν είναι πιθανό να θέλετε να σχεδιάσετε ένα κόκκινο αυτοκίνητο και ένα

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

Οδηγίες για προσθήκη Web Frames Tools to the Quick Access Bar σε μεταγενέστερη έκδοση του Word

Οδηγίες για προσθήκη Web Frames Tools to the Quick Access Bar σε μεταγενέστερη έκδοση του Word Οδηγίες για προσθήκη Web Frames Tools to the Quick Access Bar σε μεταγενέστερη έκδοση του Word Επειδή οι μεταγενέστερες εκδόσεις του Word δεν περιλαμβάνουν στο μενού τη δυνατότητα δημιουργίας πολλαπλών

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