Π Τ Υ Χ Ι Α Κ Η Ε Ρ ΓΑ Σ Ι Α



Σχετικά έγγραφα
Πώς το λένε Computer game στο Scratch

Slalom Race Computer Game on Scratch

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

Tank Rescue Computer Game σε Scratch

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

Breakdance Computer Game σε Scratch.

Η διάρκεια πραγματοποίησης της ανοιχτής εκπαιδευτικής πρακτικής ήταν 2 διδακτικές ώρες

Λογισμικό διδασκαλίας των μαθηματικών της Γ Τάξης Γυμνασίου

Ανακύκλωσε το Computer Game σε Scratch

Λογισμικό Καθοδήγησης ή Διδασκαλίας

«ΑΝΑΠΤΥΞΗ ΠΑΙΧΝΙΔΙΩΝ ΜΑΘΗΣΗΣ ΣΕ ΓΛΩΣΣΑ PYTHON: ΤΟ ΠΑΙΧΝΙΔΙ BINARY DROIDS»

Σενάριο 16: Ο κόσμος του Robby

Παιχνιδοκεντρική μάθηση στο Scratch

Στέλιος Ξυνόγαλος Επίκουρος Καθηγητής Τμήμα Εφαρμοσμένης Πληροφορικής

Εκπαιδευτική Τεχνολογία - Πολυμέσα. Ελένη Περιστέρη, Msc, PhD

Σενάριο 14: Προγραμματίζοντας ένα Ρομπότ ανιχνευτή

Τα Διδακτικά Σενάρια και οι Προδιαγραφές τους. του Σταύρου Κοκκαλίδη. Μαθηματικού

Κατερίνα Χατζηφωτεινού. Αλγοριθμικά παιχνίδια & Kodu

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

Τεχνολογίες Πληροφορίας & Επικοινωνιών στην Εκπαίδευση (ΤΠΕ-Ε)

Σχεδιασμός Ψηφιακών Εκπαιδευτικών Εφαρμογών ΙI

ΕΝΙΑΙΟ ΠΛΑΙΣΙΟ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΠΟΥΔΩΝ

Έγγραφο Προδιαγραφών Απαιτήσεων Λογισμικού για το παιχνίδι: Asylum : The Escape

Τεχνολογία Ψυχαγωγικού Λογισμικού και Εικονικοί Κόσμοι Ενότητα 1η - Εισαγωγή

Τσικολάτας Α. (2011) Οι ΤΠΕ ως Εκπαιδευτικό Εργαλείο στην Ειδική Αγωγή. Αθήνα

ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ. Δημητρίου Σωτήρης 6417

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

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

Εργαστηριακή Εισήγηση. «Οι μεταβλητές στη γλώσσα προγραμματισμού Scratch»

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

ΣΧΕΔΙΟ ΜΑΘΗΜΑΤΟΣ: ΜΑΘΗΜΑΤΙΚΑ ΣΤ ΔΗΜΟΤΙΚΟΥ «ΤΑ ΚΛΑΣΜΑΤΑ»

Προγραμματισμός Ηλεκτρονικού Παιχνιδιού σε Περιβάλλον Scratch SUPERNATURAL

Μεταβλητές. Σενάριο για μαθητές Γ γυμνασίου διάρκειας 3+ ωρών

Διαδραστική Διδασκαλία

Διδακτικές προσεγγίσεις στην Πληροφορική. Η εποικοδομιστική προσέγγιση για τη γνώση. ως ενεργητική και όχι παθητική διαδικασία

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

Ενότητα 1: Πώς να διδάξεις ηλικιωμένους για να χρησιμοποιήσουν τη ψηφιακή τεχνολογία. Ημερομηνία: 15/09/2017. Intellectual Output:

Η έννοια της μεταβλητής και της λίστας με την βοήθεια του λογισμικού Scratch

Ο ΓΥΡΟΣ ΤΟΥ ΚΟΣΜΟΥ ΣΕ 80 ΕΡΩΤΗΣΕΙΣ

ΨΗΦΙΑΚΑ ΠΑΙΧΝΙΔΙΑ ΣΕ ΣΥΣΚΕΥΕΣ ΚΙΝΗΤΗΣ

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

Λογισμικό: Γεωγραφία Στ Δημοτικού, Μαθαίνω για τη Γη! Έκδοση 1.0+ Κατηγορία αναπηρίας: Κινητικά Μάθημα: Γεωγραφία Τάξεις: Στ τάξη Δημοτικού

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

Asylum, the Escape. Game Manual

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

Προγραμματισμός. Το περιβάλλον του scratch

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

Λίγα λόγια από το συγγραφέα Κεφάλαιο 1: Microsoft Excel Κεφάλαιο 2: Η δομή ενός φύλλου εργασίας... 26

Εφαρμογές πολυμέσων για τη διδασκαλία των Μαθηματικών

Έργο ΕΠΕΑΕΚ-ΣΕΙΡΗΝΕΣ-ΕΙΚΩΝ

ΔΙΔΑΚΤΙΚΗ της ΠΛΗΡΟΦΟΡΙΚΗΣ

Κωνσταντίνος Δελησταύρου. Fulbright Education Network Greece «Αξιοποιώντας την αφήγηση στη Διδασκαλία» 20/5/2017 YouthLab, Ξάνθη

Ψυχαγωγικό Λογισμικό

Σχεδίαση Εκπαιδευτικού Λογισμικού. Εργασία 2 - Α' φάση. Σενάριο/Σχέδιο μαθήματος. Σταματία Κορρέ Μ1430

RobotArmy Περίληψη έργου

Εγχειρίδιο Χρήσης του «Μαθη.Συ.»

3 βήματα για την ένταξη των ΤΠΕ: 1. Εμπλουτισμός 2. Δραστηριότητα 3. Σενάριο Πέτρος Κλιάπης-Όλγα Κασσώτη Επιμόρφωση εκπαιδευτικών

ΔΙΔΑΚΤΙΚΉ ΤΩΝ ΜΑΘΗΜΑΤΙΚΏΝ

Τo πρόγραμμα «Διάγραμμα Ροής» και η διδακτική του αξιοποίηση στην Διδασκαλία του προγραμματισμού

Σενάριο 13. Προγραμματίζοντας ένα Ρομπότ

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου

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

Δημιουργία παιχνιδιού με το ΜΙΤ AppInvnentor (Πινγκ - Πονγκ).

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

Οδηγίες Χρήσης Εφαρμογής

Ενότητα 1η. Εισαγωγή στην Πληροφορική

Εφαρμογές Προσομοίωσης

Εκπαιδευτικό Λογισμικό και Θεωρίες Μάθησης. Εισαγωγικές Έννοιες. Φεβρουάριος 2018 Κλεισαρχάκης Μιχαήλ (Phd, Medu)

Σχεδιαστικά Προγράμματα Επίπλου

Ερευνητικό ερώτημα: Η εξέλιξη της τεχνολογίας της φωτογραφίας μέσω διαδοχικών απεικονίσεων της Ακρόπολης.

1 1η ΔΡΑΣΤΗΡΙΟΤΗΤΑ ΕΜΠΕΔΩΣΗΣ ΓΝΩΣΤΙΚΟΥ ΑΝΤΙΚΕΙΜΕΝΟΥ ΠΕΡΙΓΡΑΦΗ ΔΡΑΣΤΗΡΙΟΤΗΤΑΣ

ΡΟΜΠΟΤΙΚΗ ΚΑΙ ΕΚΠΑΙΔΕΥΣΗ

Εφαρμογές Εκπαιδευτικού Λογισμικού για τη Δευτεροβάθμια Εκπαίδευση

Εκφώνηση άσκησης. Η Κρεμάλα σαν παιχνίδι. Ανάλυση. Μέρος Α Αναφoρά, ανάλυση τακτικής. Υλοποίηση του παιχνιδιού «Κρεμάλα»

ΥΠΗΡΕΣΙΑ. Ηλεκτρονική ιαχείριση Τάξης. Οδηγίες χρήσης για τον µαθητή.

Μαθησιακά Αντικείμενα για το μάθημα ΤΠΕ-Πληροφορική: Παιδαγωγική αξιοποίηση στην πρωτοβάθμια εκπαίδευση

Αριθμοκαμώματα Computer Game σε Microworlds Pro

ΚΟΛΛΙΑΣ ΤΑΣΟΣ Εκπαιδευτικός M.Ed. Υπ. Δρ. Παν/μίου Αθηνών

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. Τεχνολογίες Κοινωνικής Δικτύωσης στην Εκπαίδευση

Μαθητές Δημοτικού Δημιουργούν Ψηφιακά Παιχνίδια στο Scratch για την Ανακύκλωση

Τεχνολογία στην Εκπαίδευση Εισαγωγή. Χαρίκλεια Τσαλαπάτα 24/9/2012

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

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

Αξιοποίηση του Scratch στο πλαίσιο εκπόνησης ομαδικών εργασιών στο μάθημα της Πληροφορικής της Γ' Γυμνασίου

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

ΔΙΔΑΣΚΑΛΙΑ ΤΗΣ ΕΝΝΟΙΑΣ ΤΟΥ ΟΡΙΟΥ ΣΥΝΑΡΤΗΣΗΣ

Εκπαιδευτικό λογισμικό «Παίξε με τις λέξεις 1» Παγκράτιος Παυλίδης Χρίστος Μπίτσης Δήμου Ιουλία Δάσκαλοι Ειδικής Αγωγής

Απόστολος Μιχαλούδης

Tynker: Γρήγορος οδηγός για εκπαιδευτικούς

Μεταβλητές. Για περισσότερες λεπτομέρειες πάνω στις μεταβλητές θα ήταν χρήσιμο να διαβάσεις το

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

ιπλωµατική εργασία: Νικόλαος Ματάνας Επιβλέπων Καθηγήτρια: Μπούσιου έσποινα

Επιμορφωτικές Τηλεκπαιδεύσεις

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

Διδακτική της Πληροφορικής

Eκπαίδευση Εκπαιδευτών Ενηλίκων & Δία Βίου Μάθηση

Εκπαιδευτικό Σενάριο 2

Μαθησιακές δραστηριότητες με υπολογιστή

Εκπαιδευτική Τεχνολογία

One Laptop Per Child

Transcript:

Α Ρ Ι Σ Τ Ο Τ Ε Λ Ε Ι Ο Π Α Ν Ε Π Ι Σ Τ Η Μ Ι Ο Θ Ε Σ Σ Α Λ Ο Ν Ι Κ Η Σ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Π Τ Υ Χ Ι Α Κ Η Ε Ρ ΓΑ Σ Ι Α «ΨΗΦΙΑΚΑ ΠΑΙΧΝΙΔΙΑ ΜΑΘΗΣΗΣ ΣΕ PYTHON: ΚΡΕΜΑΛΑ» (Digital Learning Games in Python: Hangman) ΜΥΡΟΦΟΡΑ-ΗΡΩ ΑΡΓΥΡΟΠΟΥΛΟΥ ΑΕΜ 2116 ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ: ΔΗΜΗΤΡΙΑΔΗΣ ΣΤΑΥΡΟΣ, Αν. Καθηγητής ΘΕΣΣΑΛΟΝΙΚΗ 2015

2

Π Ε Ρ Ι Λ Η Ψ Η Αντικείμενο της παρούσας εργασίας είναι η μάθηση μέσω ψηφιακών παιχνιδιών (Game-Based Learning ή GBL) και η ανάπτυξη ενός λογισμικού παιχνιδιού με χαρακτηριστικά μάθησης και με εργαλείο ανάπτυξης τη γλώσσα Python, η οποία είναι μία από τις δημοφιλέστερες και ισχυρότερες γλώσσες προγραμματισμού με εφαρμογές σε όλα τα πεδία των ψηφιακών τεχνολογιών. Η εργασία αποτελείται από τρία μέρη. Στο πρώτο μέρος περιγράφεται η έννοια του εκπαιδευτικού παιχνιδιού και της παιχνιδοκεντρικής μάθησης, μιας εκπαιδευτικής προσέγγισης που εμπλέκει τους μαθητές σε παιγνιώδεις διαδικασίες (παιχνίδια) μέσα από τις οποίες μαθαίνουν. Αυτός είναι και ο στόχος του λογισμικού που αναπτύχθηκε στα πλαίσια αυτής της εργασίας. Στο δεύτερο μέρος αναλύεται το σενάριο του ψηφιακού εκπαιδευτικού λογισμικού με τίτλο «Κρεμάλα», το οποίο υλοποιήθηκε σε Python, με χρήση της Pygame. Το παιχνίδι αυτό βασίζεται στο κλασσικό παιχνίδι Κρεμάλα και επικεντρώνεται στην εκμάθηση και κατανόηση εννοιών της επιστήμης της Πληροφορικής. Ωστόσο επιδέχεται προσθήκες και από άλλους τομείς και θεματολογίες. Στόχος, όπως και στη συνηθισμένη κρεμάλα, είναι να βρει ο παίκτης τη σωστή λέξη στην παρούσα φάση όρο της πληροφορικής χωρίς να εξαντλήσει τις ευκαιρίες που του δίνονται ή το χρονικό περιθώριο που έχει στη διάθεσή του. Μετά από κάθε επιτυχή ή ανεπιτυχή εύρεση λέξης εμφανίζεται ένας ορισμός της και μετά από ένα συγκεκριμένο αριθμό επιτυχών εικασιών ο παίκτης ανεβαίνει σε επίπεδο παιχνιδιού αλλά και δυσκολίας. Το σκορ προσαρμόζεται ανάλογα με τα παραπάνω. Τέλος ένα χαρακτηριστικό το οποίο ξεχωρίζει το συγκεκριμένο παιχνίδι από τη συνηθισμένη κρεμάλα είναι οι βοήθειες που παρέχονται στον παίκτη ώστε να βρει ευκολότερα τη σωστή λέξη, όχι όμως με το αζημίωτο, καθώς κάθε βοήθεια αφαιρεί συγκεκριμένους πόντους από το συνολικό σκορ. Εκτός από τη διασκέδαση που προσφέρει το παιχνίδι αυτό, σημαντικές είναι και οι γνώσεις που αποκτά ο παίκτης για τις διάφορες έννοιες τις πληροφορικής που κάθε άνθρωπος, κάθε ηλικίας και ιδιότητας είναι σημαντικό να γνωρίζει μιας και ζούμε σε μια εποχή που η τεχνολογία και η πληροφορική είναι βασικά στοιχεία της. Στο τρίτο μέρος γίνεται αναφορά στο εργαλείο Python, με ό,τι αυτό συμπεριλαμβάνει, και στις προγραμματιστικές τεχνικές και άλλα εργαλεία που χρησιμοποιήθηκαν για την υλοποίηση του παιχνιδιού. 3

4

A B S T R A C T The subject of this Thesis is learning through digital games (Game-based Learning or GBL) and the development of a game software with features of learning, developed with Python, one of the most popular and powerful programming languages with applications in all fields of digital technologies. The Thesis consists of three parts. The first part describes the concept of educational game and game-based learning, an educational approach that involves pupils in playful procedures (games) through which they will learn. This is the goal of the software developed under this Thesis. The second part analyzes the scenario of the digital educational software titled Hangman, which was implemented in Python, using Pygame. The game is based on the classic Hangman game and focuses on learning and understanding terms of Computer Science. However it s open to additions by other fields and themes. The objective, as in the common Hangman game, is finding the correct word currently the computer science term before running out of tries or time. After each successful or not guess a definition is given to the player and after a certain number of guesses the player goes up a level of difficulty. The score is adjusted according to the above. Finally, a feature which makes the game stand out from the standard Hangman is the ability given to the player to use hints to find words easier, but not without a consequence, as each hint removes specific points from the total score. Besides the fun, the game offers the player the chance to acquire knowledge for various IT (Information Technology) terms that every man of every age and status is important to know since we live in a time when technology and IT are the key elements. The third part refers to the Python tool, with whatever this includes, and the programming techniques and other tools used to implement the game. 5

6

Ε Υ Χ Α Ρ Ι Σ Τ Ι Ε Σ Πριν την παρουσίαση των αποτελεσμάτων της παρούσας εργασίας, αισθάνομαι την υποχρέωση να ευχαριστήσω ορισμένους από τους ανθρώπους που γνώρισα, συνεργάστηκα μαζί τους και έπαιξαν πολύ σημαντικό ρόλο στην πραγματοποίησή της. Συγκεκριμένα θα ήθελα να ευχαριστήσω αρχικά τον επιβλέποντα καθηγητή κ. Σταύρο Δημητριάδη για τη βοήθεια, την καθοδήγησή του, αλλά και τον εξαιρετικό τρόπο που μετέδωσε τις γνώσεις του σε μας, σε όλα τα μαθήματα. Ευχαριστώ τους φίλους και τους συναδέλφους (ιδιαίτερα την Τόνια) για τη στήριξη, τις χρήσιμες συμβουλές και τις προτάσεις τους για το παιχνίδι όλον αυτόν τον καιρό. Τέλος, θα ήθελα να ευχαριστήσω την οικογένειά μου, που με στήριξε σε όλη τη διάρκεια της φοίτησής μου και που γενικά με στηρίζει πάντα σε ό,τι κάνω 15-10-2015 Μυροφόρα-Ηρώ Αργυροπούλου 7

8

Π Ε Ρ Ι Ε Χ Ο Μ Ε Ν Α ΠΕΡΙΛΗΨΗ... 3 ABSTRACT... 5 ΕΥΧΑΡΙΣΤΙΕΣ... 7 ΠΕΡΙΕΧΟΜΕΝΑ... 9 ΚΕΦΑΛΑΙΟ 1: ΕΙΣΑΓΩΓΗ... 13 ΚΕΦΑΛΑΙΟ 2: ΕΚΠΑΙΔΕΥΤΙΚΑ ΠΑΙΧΝΙΔΙΑ & ΠΑΙΧΝΙΔΟΚΕΝΤΡΙΚΗ ΜΑΘΗΣΗ... 17 2.1 ΨΗΦΙΑΚΑ ΠΑΙΧΝΙΔΙΑ... 20 2.1.1 GAMEPLAY... 20 2.1.2 ΚΑΤΗΓΟΡΙΕΣ ΠΑΙΧΝΙΔΙΩΝ... 20 2.1.3 ΑΡΧΙΤΕΚΤΟΝΙΚΗ & ΑΝΑΠΤΥΞΗ ΠΑΙΧΝΙΔΙΩΝ... 21 2.1.3.1 Αρχιτεκτονική... 21 2.1.3.2 Ομάδα Ανάπτυξης... 22 2.1.3.3 Εργαλεία Ανάπτυξης... 23 2.2 ΕΚΠΑΙΔΕΥΤΙΚΑ ΠΑΙΧΝΙΔΙΑ... 24 2.2.1 ΒΑΣΙΚΟΙ ΠΑΡΑΓΟΝΤΕΣ ΔΟΜΗΣ & ΟΡΓΑΝΩΣΗΣ... 24 2.2.2 ΣΧΕΣΗ ΣΕΝΑΡΙΟΥ & ΜΗΧΑΝΙΣΜΟΥ ΜΑΘΗΣΗΣ... 25 2.3 ΠΑΙΧΝΙΔΟΚΕΝΤΡΙΚΗ ΜΑΘΗΣΗ... 26 2.3.1 ΤΟ ΜΟΝΤΕΛΟ PRENSKY... 26 2.3.2 ΕΜΠΛΟΚΗ ΜΑΘΗΤΩΝ ΣΤΟ ΠΑΙΧΝΙΔΙ... 27 ΚΕΦΑΛΑΙΟ 3: TO ΠΑΙΧΝΙΔΙ «ΚΡΕΜΑΛΑ»... 29 3.1 ΤΟ ΣΕΝΑΡΙΟ & Η ΛΕΙΤΟΥΡΓΙΑ ΤΟΥ ΠΑΙΧΝΙΔΙΟΥ... 32 3.1.1 ΣΕΝΑΡΙΟ... 32 3.1.2 ΜΗΧΑΝΙΣΜΟΣ ΜΑΘΗΣΗΣ... 33 3.1.3 Ο ΤΡΟΠΟΣ ΠΑΙΧΝΙΔΙΟΥ... 33 3.2 ΔΙΕΠΑΦΗ ΧΡΗΣΤΗ... 34 3.2.1 ΑΡΧΙΚΟ ΜΕΝΟΥ... 34 3.2.2 ΜΕΝΟΥ ΒΟΗΘΕΙΑΣ... 35 3.2.3 ΜΕΝΟΥ ΡΥΘΜΙΣΕΩΝ... 36 3.2.4 ΜΕΝΟΥ ΣΚΟΡ... 37 3.2.5 ΠΑΙΧΝΙΔΙ... 37 3.2.5.1 Αλφάβητο... 41 3.2.5.2 Βοήθειες... 41 3.3 ΜΕΛΛΟΝΤΙΚΑ ΣΧΕΔΙΑ... 42 9

ΚΕΦΑΛΑΙΟ 4: TO ΠΑΙΧΝΙΔΙ «ΚΡΕΜΑΛΑ»: ΕΡΓΑΛΕΙΑ & ΚΩΔΙΚΑΣ... 43 4.1 ΤΑ ΕΡΓΑΛΕΙΑ... 46 4.1.1 Η ΓΛΩΣΣΑ PYTHON... 46 4.1.1.1 Ιστορικό & Εκδόσεις... 46 4.1.1.2 Γιατί χρησιμοποιείται;... 46 4.1.1.3 Ποιο είναι το μειονέκτημα;... 47 4.1.1.4 Περιβάλλοντα ανάπτυξης... 47 4.1.1.5 Χρήση... 47 4.1.2 Η ΒΙΒΛΙΟΘΗΚΗ PYGAME... 47 4.2 MODULES, ΚΛΑΣΕΙΣ & ΣΥΝΑΡΤΗΣΕΙΣ... 48 4.2.1 ΤΑ MODULES... 48 4.2.1.1 Module: pygame... 48 4.2.1.2 Module: sprite... 48 4.2.1.3 Module: display... 48 4.2.1.4 Module: image... 48 4.2.1.5 Module: transform... 48 4.2.1.6 Module: mouse... 49 4.2.1.7 Module: time... 49 4.2.1.8 Module: music... 49 4.2.1.9 Module: font... 49 4.2.2 ΟΙ ΚΛΑΣΕΙΣ... 49 4.2.2.1 Κλάση: Surface... 49 4.2.2.2 Κλάση: Rect... 49 4.2.2.3 Κλάση: Button... 50 4.2.2.4 Κλάση: Bar... 51 4.2.2.5 Κλάση: Hangman... 51 4.2.2.6 Κλάση: Hint... 52 4.2.2.7 Κλάση: Letter... 52 4.2.2.8 Κλάση: Text... 53 4.2.3 ΟΙ ΣΥΝΑΡΤΗΣΕΙΣ... 54 4.2.3.1 Συνάρτηση: read()... 54 4.2.3.2 Συνάρτηση: splitlines()... 54 4.2.3.3 Συνάρτηση: checkarea()... 54 4.2.3.4 Συνάρτηση: getrandomword()... 54 4.2.3.5 Συνάρτηση: getrandomsecretword()... 54 4.2.3.6 Συνάρτηση: getguess()... 55 4.2.3.7 Συνάρτηση: getposofguess()... 55 4.2.3.8 Συνάρτηση: initcategory()... 55 4.2.3.9 Συνάρτηση: initvariables()... 55 4.2.3.10 Συνάρτηση: initboard()... 56 4.2.3.11 Συνάρτηση: savescore()... 56 4.3 ΤΑ ΣΤΑΔΙΑ ΤΟΥ ΠΑΙΧΝΙΔΙΟΥ... 57 4.3.1 ΣΤΑΔΙΟ 0... 58 4.3.2 ΣΤΑΔΙΟ 1... 58 4.3.3 ΣΤΑΔΙΟ 2... 58 4.3.4 ΣΤΑΔΙΟ 3... 58 4.3.5 ΣΤΑΔΙΟ 4... 59 4.3.6 ΣΤΑΔΙΟ 5... 59 4.3.7 ΣΤΑΔΙΟ 6... 59 10

4.3.8 ΣΤΑΔΙΟ 7... 59 4.3.9 ΣΤΑΔΙΟ 8... 59 ΣΥΜΠΕΡΑΣΜΑΤΑ... 61 ΠΑΡΑΡΤΗΜΑ I: ΑΝΑΦΟΡΕΣ & ΠΗΓΕΣ... 65 ΠΑΡΑΡΤΗΜΑ II: ΑΚΡΩΝΥΜΑ... 69 ΠΑΡΑΡΤΗΜΑ III: ΓΛΩΣΣΑΡΙΟ... 73 11

12

Κ Ε Φ Α Λ Α Ι Ο 1 : Ε Ι Σ Α Γ Ω Γ Η 13

14

ΕΙΣΑΓΩΓΗ Αντικείμενο της παρούσας εργασίας είναι η παιχνιδοκεντρική μάθηση και η υλοποίηση ενός εκπαιδευτικού παιχνιδιού. Η εργασία δομείται σε κεφάλαια ως εξής: Στο Κεφάλαιο 2 περιγράφονται οι έννοιες εκπαιδευτικά παιχνίδια και παιχνιδοκεντρική μάθηση. Στο Κεφάλαιο 3 αναλύεται επιγραμματικά το σενάριο και ο τρόπος με τον οποίο παίζεται το παιχνίδι «Κρεμάλα». Στο Κεφάλαιο 4 γίνεται αναφορά στη γλώσσα υλοποίησης Python και στη βιβλιοθήκη Pygame σε σχέση με τον κώδικα του παιχνιδιού «Κρεμάλα». Στο Παράρτημα I παρουσιάζονται αλφαβητικά η βιβλιογραφία και οι δικτυακοί τόποι που αναφέρονται στην εργασία και αποτελούν πηγές. Στο Παράρτημα IΙ παρουσιάζονται τα ακρωνύμια τα οποία χρησιμοποιούνται σε αυτή την εργασία για την διευκόλυνση του αναγνώστη. Στο Παράρτημα IIΙ παρουσιάζεται το γλωσσάριο ξενικών όρων οι οποίοι χρησιμοποιούνται σε αυτή την εργασία για την διευκόλυνση του αναγνώστη. 15

16

Κ Ε Φ Α Λ Α Ι Ο 2 : Ε Κ Π Α Ι Δ Ε Υ Τ Ι Κ Α Π Α Ι Χ Ν Ι Δ Ι Α & Π Α Ι Χ Ν Ι Δ Ο Κ Ε Ν Τ Ρ Ι Κ Η Μ Α Θ Η ΣΗ 17

18

ΕΚΠΑΙΔΕΥΤΙΚΑ ΠΑΙΧΝΙΔΙΑ & ΠΑΙΧΝΙΔΟΚΕΝΤΡΙΚΗ ΜΑΘΗΣΗ Ζούμε πλέον σε μια εποχή όπου η ψηφιακή τεχνολογία υπάρχει σχεδόν παντού. Στις μέρες μας τα ψηφιακά παιχνίδια είναι μια αρκετά δημοφιλής δραστηριότητα για μικρούς και μεγάλους. Για κάποιους ακόμη και η κύρια πηγή ψυχαγωγίας και συστατικό της κοινωνικής ζωής τους. Αυτές λοιπόν οι ραγδαίες αλλαγές και εξελίξεις που έφερε αυτή η νέα εποχή δεν μπορούν φυσικά να αφήσουν ανεπηρέαστο και τον τομέα της εκπαίδευσης. Το παιχνίδι ήταν πάντα μια ευχάριστη ασχολία και δεν άργησε να συνδεθεί με την εκπαίδευση ως θεμελιώδες παιδαγωγικό μέσο. Έτσι και τα ψηφιακά παιχνίδια τώρα είναι φυσιολογικό κομμάτι και εργαλείο της εκπαιδευτικής διαδικασίας. Η εμπειρία που προσφέρει ένα παιχνίδι (ψηφιακό ή όχι) είναι πάντοτε και εμπειρία μάθησης εφόσον όμως αυτό αναπτυχθεί και χρησιμοποιηθεί κατάλληλα συνδυάζοντας τα βασικά χαρακτηριστικά ενός παιχνιδιού, όπως έναν ευχάριστο τρόπο παιχνιδιού (gameplay), με μια ιδιαίτερη εκπαιδευτική καθοδήγηση είτε από τον εκπαιδευτικό είτε από το ίδιο το παιχνίδι ως εφαρμογή. 19

2.1 ΨΗΦΙΑΚΑ ΠΑΙΧΝΙΔΙΑ Σύμφωνα με τους Alessi και Trollip (2001) «Παιχνίδι είναι μία δομημένη ή ημιδομημένη δραστηριότητα ανταγωνιστικού χαρακτήρα, ατομική ή ομαδική, που γίνεται για ψυχαγωγικούς σκοπούς ακολουθώντας ορισμένους κανόνες για την επίτευξη κάποιου στόχου ώστε να ανακηρυχθεί ένας ή περισσότεροι νικητές». Όταν γίνεται χρήση και της τεχνολογίας αυτή η δραστηριότητα πλέον ονομάζεται Ψηφιακό Παιχνίδι και στην ουσία παίζεται στις σύγχρονες ψηφιακές τεχνολογικές πλατφόρμες όπως υπολογιστής, διαδίκτυο, κονσόλες παιχνιδιών και φορητές συσκευές, με τη χρήση μίας ή περισσοτέρων συσκευών εισόδου και εξόδου. Τα περισσότερα ψηφιακά παιχνίδια θεωρούνται προσομοιώσεις, είτε κάποιου πραγματικού κόσμου (π.χ. αθλητικά παιχνίδια), είτε κάποιου φανταστικού (π.χ. παιχνίδια περιπέτειας), είτε ενός παραδοσιακού παιχνιδιού (π.χ. πάζλ) προσφέροντας ψηφιακές αναπαραστάσεις γνωστών εργαλείων παιχνιδιού (όπως κάρτες και ζάρια) ή δημιουργώντας περίπλοκους κόσμους, με πραγματικά ή φανταστικά στοιχεία. 2.1.1 Gameplay Συχνά στο χώρο των παιχνιδιών συναντάμε την έννοια του Gameplay. Ο όρος αυτός, αν και λίγο αφηρημένος, σχετίζεται με τις εμπειρίες των παικτών κατά τη διάδραση τους με το παιχνίδι και θα μπορούσε να θεωρηθεί ως ο τρόπος με τον οποίο οι παίκτες αλληλεπιδρούν με αυτό. Αν και αρχικά συνδεόταν άμεσα με τα ψηφιακά παιχνίδια πλέον χρησιμοποιείται και για την περιγραφή παραδοσιακών παιχνιδιών. 2.1.2 Κατηγορίες Παιχνιδιών Ανάλογα με το Gameplay τους τα παιχνίδια συνήθως χωρίζονται στις παρακάτω οκτώ βασικές κατηγορίες: Παιχνίδια δράσης (Action games): ο παίκτης ελέγχει το avatar ενός πρωταγωνιστή και πλοηγείται σε επίπεδα συλλέγοντας αντικείμενα, αποφεύγοντας εμπόδια και πολεμώντας εχθρούς με διάφορους τρόπους επίθεσης. Δίνεται έμφαση σε φυσικούς χειρισμούς του παίκτη, όπως συντονισμός χεριού-ματιού (hand-eye coordination) και χρόνο αντίδρασης (reaction-time). Παιχνίδια στρατηγικής (Strategy games): ο παίκτης εφαρμόζει μία μακροπρόθεσμη στρατηγική και επί μέρους τακτικές κινήσεις για να επιτύχει τους στόχους του. Δίνεται έμφαση στις δεξιότητες λήψης αποφάσεων του παίκτη. Παιχνίδια άθλησης (Sports games): τα παιχνίδια αυτά προσομοιώνουν κάποιο παραδοσιακό αθλητικό παιχνίδι είτε δίνοντας έμφαση στην ίδια τη δραστηριότητα είτε στην στρατηγική και την οργάνωση της διεξαγωγής της. Επιπλέον, ορισμένα παιχνίδια ενημερώνονται ετησίως σύμφωνα με τις αλλαγές που γίνονται στον πραγματικό κόσμο ώστε να περιλαμβάνουν ρεαλιστικά στοιχεία. 20

Παιχνίδια περιπέτειας (Adventure games): τα παιχνίδια αυτά έχουν άμεση σχέση με αφηγηματικά μέσα όπως οι κινηματογραφικές ταινίες. Ο παίκτης αναλαμβάνει το ρόλο ενός πρωταγωνιστή σε μια διαδραστική ιστορία εξερεύνησης και επίλυσης γρίφων. Επειδή συνήθως η έμφαση δίνεται σε μια συγκεκριμένη ιστορία και ένα χαρακτήρα τα περισσότερα παιχνίδια αυτού του είδους σχεδιάζονται για έναν παίκτη. Παιχνίδια προσομοίωσης (Simulation games): τα παιχνίδια αυτά προσομοιώνουν διάφορες δραστηριότητες της πραγματικότητας για διάφορους σκοπούς, όπως η εκπαίδευση, η ανάλυση ή η πρόγνωση. Συνήθως δεν υπάρχουν αυστηρά καθορισμένοι στόχοι και έτσι οι παίκτες μπορούν να κινηθούν ελεύθερα. Παιχνίδια ρόλου (Role Playing games): οι παίκτες υιοθετούν ρόλους φανταστικών χαρακτήρων και μέσω συνεργασίας δημιουργούν ή παρακολουθούν ιστορίες. Επιπλέον, καθορίζουν τις ενέργειες των χαρακτήρων τους εν μέρει βασισμένοι στο σχεδιασμό του χαρακτήρα τους και οι ενέργειες πετυχαίνουν ή αποτυχαίνουν σύμφωνα με ένα σύστημα κανόνων και οδηγιών. Οι επιλογές τους καθορίζουν την κατεύθυνση και την έκβαση του παιχνιδιού. Παιχνίδια εξάσκησης ικανοτήτων & επιτραπέζια (Skill & Board games): στα παιχνίδια αυτά το αποτέλεσμα καθορίζεται κυρίως από τις διανοητικές ή φυσικές ικανότητες του παίκτη και λιγότερο από την τύχη. Παιχνίδια τύχης (Chance games): στα παιχνίδια αυτά η έκβαση του παιχνιδιού καθορίζεται από την τύχη. Υπάρχουν φυσικά και άλλα κριτήρια σύμφωνα με τα οποία μπορούν να κατηγοριοποιηθούν τα παιχνίδια όπως για παράδειγμα το αν είναι ατομικά ή ομαδικά (συνήθως με χρήση κάποιου δικτύου). 2.1.3 Αρχιτεκτονική & Ανάπτυξη Παιχνιδιών 2.1.3.1 Αρχιτεκτονική Η ανάπτυξη ενός ψηφιακού παιχνιδιού βασίζεται σε μια αρχιτεκτονική η οποία συνήθως είναι πολυσύνθετη και αυτή με τη σειρά της βασίζεται στην ολοκλήρωση και την αλληλεπίδραση πολλών τμημάτων λογισμικού. Σύμφωνα με τον McShaffry (2003) η αρχιτεκτονική ενός παιχνιδιού περιλαμβάνει πάντοτε τρία γενικά τμήματα: ΕΦΑΡΜΟΓΗ (Game Application) ΛΟΓΙΚΗ (Game Logic) ΟΠΤΙΚΗ (Game View) ΕΦΑΡΜΟΓΗ: Υλοποιεί τις βασικές λειτουργίες του παιχνιδιού Το τμήμα αυτό περιλαμβάνει τη διαχείριση των περιφερειακών μονάδων και του χρόνου παιχνιδιού, την επικοινωνία με το λειτουργικό σύστημα και τη συνολική διαχείριση της εξέλιξης του παιχνιδιού. 21

ΛΟΓΙΚΗ: Υλοποιεί τους κανόνες εξέλιξης και διάδρασης του παιχνιδιού με τον εξωτερικό κόσμο Οι κανόνες αυτοί έχουν να κάνουν με την κατάσταση του παιχνιδιού και τις δομές δεδομένων, με τη φυσική, τα γεγονότα καθώς και με τη διαχείριση των προγραμματιστικών διεργασιών και τη διερμηνεία των εντολών χρήστη από το επίπεδο διεπαφής στο χαμηλότερο επίπεδο του προγραμματισμού. ΟΠΤΙΚΗ: Υλοποιεί την παρουσίαση του παιχνιδιού με χρήση (συνήθως) πολλαπλών οπτικών ανάλογα με τις ανάγκες εξέλιξης του παιχνιδιού. Μπορεί να διακρίνεται σε: «Human View», δηλαδή οπτικές θέασης του παιχνιδιού που αφορούν τον άνθρωπο παίκτη, και «AI (Artificial Intelligence) Agent View», που αφορούν αντίστοιχα το τμήμα τεχνητής νοημοσύνης του παιχνιδιού. Το τμήμα «Human View» περιλαμβάνει τα επιμέρους μικρότερα τμήματα: την οθόνη, τον ήχο, το διερμηνέα της εισόδου διεπαφής χρήστη, τη διαχείριση διεργασιών που αφορούν την Οπτική και τις επιλογές που δίνονται στο χρήστη ώστε να ρυθμίσει λειτουργίες του παιχνιδιού με βάση της προτιμήσεις του. Το τμήμα «AI Agent View» περιλαμβάνει τα επιμέρους μικρότερα τμήματα: το διερμηνέα ερεθισμάτων, που ερμηνεύει οποιαδήποτε πληροφορία για την εξέλιξη του παιχνιδιού, για τις αποφάσεις και τις ενέργειες του παίκτη, το τμήμα αποφάσεων, τη διαχείριση διεργασιών που αφορούν την Οπτική ΤΝ και τις επιλογές που δίνονται στο χρήστη για να ρυθμίσει τη λειτουργία του τμήματος ΤΝ. 2.1.3.2 Ομάδα Ανάπτυξης Ένα παιχνίδι υψηλών απαιτήσεων χρειάζεται μια ομάδα επαγγελματιών διαφόρων ειδικοτήτων ώστε να αναπτυχθεί σύμφωνα με τις προδιαγραφές που τέθηκαν. Είτε έχουμε να κάνουμε με ένα μεγάλο παιχνίδι είτε όχι, χρειάζονται οι παρακάτω βασικές ειδικότητες: Σεναριογράφος/Ψυχολόγος Το άτομο αυτό ασχολείται με την ανάπτυξη του σεναρίου και των διάφορων εκδοχών του παιχνιδιού. Είναι απαραίτητο να έχει ένα υπόβαθρο ψυχολογίας ώστε να αναπτύξει ένα σενάριο που να κεντρίζει το ενδιαφέρον του παίκτη, να προκαλεί κατάλληλα συναισθήματα και σκέψεις ανάλογα με το ύφος του παιχνιδιού και φυσικά να είναι διασκεδαστικό. Σχεδιαστής/Αναλυτής Το άτομο αυτό είναι υπεύθυνο για τη μεταφορά του σεναρίου σε τρόπο παιχνιδιού (gameplay), για την ανάπτυξη οθονών (storyboards) και γενικά για την ανάλυση των τεχνικών θεμάτων του παιχνιδιού. Προγραμματιστής Το άτομο που συγγράφει τον κώδικα του παιχνιδιού σύμφωνα με τις οδηγίες του Σχεδιαστή/Αναλυτή. Το πιο σύνηθες εργαλείο προγραμματισμού είναι η γλώσσα C++, αλλά συνήθως χρησιμοποιούνται και άλλες scripting γλώσσες, όπως η Python, για τη συγγραφή ειδικών τμημάτων. Ειδικός Πολυμέσων Το άτομο που ασχολείται με την παραγωγή και επεξεργασία των πολυμεσικών στοιχείων (γραφικά, εικόνες, σχεδιοκίνηση, ήχοι, βίντεο κ.α.). 22

2.1.3.3 Εργαλεία Ανάπτυξης Η ομάδα ανάπτυξης κάνει χρήση εργαλείων που δεν είναι ευρύτερα γνωστά και εύχρηστα σε άτομα όπως μαθητές, δασκάλους και άλλους ερασιτέχνες. Ωστόσο, η δημιουργία ενός παιχνιδιού δεν αφορά αποκλειστικά και μόνο τους επαγγελματίες. Υπάρχουν εργαλεία ευκολότερα στη χρήση και χωρίς πολλές απαιτήσεις γνώσεων προγραμματισμού. Αυτά τα εργαλεία προσφέρουν στο χρήστη τη δυνατότητα να χρησιμοποιήσει ένα ενδιάμεσο επίπεδο προγραμματισμού, μέσω μιας εύχρηστης διεπαφής. Σε αυτά τα περιβάλλοντα ο χρήστης μπορεί να δημιουργήσει εικονικούς κόσμους και να προσθέσει σε αυτούς διάφορες οντότητες, ρυθμίζοντας συμπεριφορές, αντιδράσεις, κανόνες κλπ. με απλουστευμένες τεχνικές προγραμματισμού. Κάποια γνωστά εργαλεία συγγραφής παιχνιδιών είναι: Kodu (Microsoft) GameMaker (YoYo Games) Unity (Unity Technologies) Scratch (MIT, Media Lab) 23

2.2 ΕΚΠΑΙΔΕΥΤΙΚΑ ΠΑΙΧΝΙΔΙΑ Ένα Εκπαιδευτικό Παιχνίδι (ή Παιχνίδι Μάθησης) είναι «μια δραστηριότητα οργανωμένη με μορφή παιχνιδιού που αποσκοπεί στο να προσφέρει συνδυασμό ψυχαγωγίας και μάθησης, δηλαδή στοχεύει σαφώς στην επίτευξη κάποιων μαθησιακών στόχων». Ειδικότερα, τα Ψηφιακά Εκπαιδευτικά Παιχνίδια σύμφωνα με τους Michael και Chen (2006) είναι «λογισμικά τύπου ψηφιακού παιχνιδιού που έχουν όμως σχεδιαστεί ώστε να υποστηρίξουν συγκεκριμένους εκπαιδευτικούς στόχους». Ένα ψηφιακό παιχνίδι είναι παιχνίδι μάθησης αν έχει τα παρακάτω δύο βασικά χαρακτηριστικά: Σενάριο παιχνιδιού (gameplay scenario): το γενικό σενάριο του παιχνιδιού που εμπλέκει το μαθητή-παίκτη προκαλώντας το ενδιαφέρον του και συνθήκες διασκέδασης. Τέτοια σενάρια περιλαμβάνουν εχθρούς που πρέπει να αποφευχθούν, συλλογή πολύτιμων αντικειμένων, συγκέντρωση πόντων με στόχο το υψηλότερο σκορ κλπ.. Μηχανισμός μάθησης (learning mechanism): η συγκεκριμένη τεχνική μάθησης του παιχνιδιού. Πρόκειται για κάθε μηχανισμό που ενεργοποιεί τις γνωστικές διεργασίες του μαθητή-παίκτη ώστε να επεξεργαστεί τη χρήσιμη πληροφορία για την επίτευξη των στόχων μάθησης. 2.2.1 Βασικοί παράγοντες δομής & οργάνωσης Σύμφωνα με τους Alessi και Trollip (2001) οι βασικοί παράγοντες που αφορούν τη δομή και την οργάνωση ενός παιχνιδιού είναι οι εξής: Στόχος-Σκοπός Ο στόχος που έχει ένα παιχνίδι και δηλώνεται είτε εξ αρχής, είτε συνάγεται στην πορεία του παιχνιδιού. Τέτοιος στόχος μπορεί να είναι η συλλογή πόντων ή αντικειμένων, η λύση ενός γρίφου κλπ.. Κανόνες Οι κανόνες που ορίζουν τι επιτρέπεται και τι όχι καθώς και ποιοι περιορισμοί ή δυνατότητες υπάρχουν. Ανταγωνισμός Ο ανταγωνισμός που προσφέρει το παιχνίδι με έναν άλλο υπολογιστή ή παίκτη, τον εαυτό του ή το χρόνο. Δυσκολία-Πρόκληση Η δυσκολία που πρέπει να ξεπεράσει ο παίκτης για να φτάσει στο στόχο του. Συνήθως ο βαθμός δυσκολίας είναι προσαρμόσιμος ανάλογα με το στάδιο που βρίσκεται ο παίκτης ώστε να συμβαδίζει με τις ικανότητες του. Φαντασία Ο βαθμός ομοιότητας του παιχνιδιού με τον πραγματικό κόσμο. Πολλά παιχνίδια έχουν ένα λιγότερο ή περισσότερο φανταστικό σενάριο ενώ άλλα στοχεύουν στο να προσομοιώσουν ρεαλιστικές συνθήκες του πραγματικού κόσμου. 24

Παίκτες (και ρόλοι παικτών) Θέματα που αφορούν τους παίκτες του παιχνιδιού και τους ρόλους τους και έχουν να κάνουν συνήθως με τον αριθμό των παικτών, τους διαθέσιμους ρόλους, το προφίλ των παικτών κλπ.. Κάποιοι ειδικοί παράγοντες είναι ο εξοπλισμός που ίσως χρειαστεί, οι γενικές ή τοπικές οδηγίες, οι περιορισμοί, οι κυρώσεις, οι επιλογές/ρυθμίσεις και η ασφάλεια που προσφέρει στον παίκτη το παιχνίδι για δοκιμές. 2.2.2 Σχέση σεναρίου & μηχανισμού μάθησης Η σχέση σεναρίου και μηχανισμού μάθησης πρέπει να είναι τέτοια ώστε η μάθηση να μην παρεμβάλλεται και διακόπτει την ομαλή εξέλιξη του παιχνιδιού ώστε ο μαθητής να μαθαίνει παίζοντας και όχι το αντίθετο. Ανάλογα με το πόσο επιτυγχάνεται αυτό η σχέση αυτή, σύμφωνα με τους Alessi και Trollip (2001), μπορεί να είναι: Ενδογενής: ο μηχανισμός μάθησης ενεργοποιείται για το μαθητή φυσιολογικά μέσα από το σενάριο του παιχνιδιού. Έτσι ο μαθητής-παίκτης αισθάνεται πως παίζει το παιχνίδι και όχι πως κάνει κάτι ξένο σε σχέση με το σενάριο για να «μάθει». Παράδειγμα: Παιχνίδι γεωγραφίας, όπου για να γίνει η πλοήγηση γίνεται χρήση εργαλείων υπολογισμού απόστασης, η εκμάθηση των οποίων είναι και ο εκπαιδευτικός στόχος. Σχετική: ο μηχανισμός μάθησης δεν ενσωματώνεται στο σενάριο του παιχνιδιού, όμως υπάρχει μια λογική σχέση μεταξύ τους. Έτσι ο μαθητήςπαίκτης εμπλέκεται στο σενάριο και αισθάνεται πως η ποιότητα της εργασίας του θα βοηθήσει αντίστοιχα και στο παιχνίδι. Παράδειγμα: Παιχνίδι όπου η κίνηση του πιονιού της ατμομηχανής γίνεται με κάθε σωστή αριθμητική πράξη, κάτι που δε γίνεται στην πραγματικότητα (αφού η ατμομηχανή δεν κινείται με αριθμητικές πράξεις) αλλά έχει μια λογική. Αυθαίρετη: ο μηχανισμός μάθησης είναι εντελώς ξένος σε σχέση με το σενάριο του παιχνιδιού. Ο μαθητής-παίκτης συνήθως καλείται να απαντήσει σε κλειστού τύπου ερωτήματα και ανάλογα με την απάντηση συμβαίνει κάτι θετικό ή αρνητικό που όμως είναι άσχετο με το μηχανισμό μάθησης. Παράδειγμα: Παιχνίδι ερωτήσεων στο οποίο με τη σωστή απάντηση σκοτώνεται ένας εξωγήινος. 25

2.3 ΠΑΙΧΝΙΔΟΚΕΝΤΡΙΚΗ ΜΑΘΗΣΗ Η τάση που υπάρχει στις μέρες μας για τη διερεύνηση και αξιοποίηση της φιλοσοφίας και πρακτικής του ψηφιακού παιχνιδιού στην εκπαίδευση ονομάζεται Παιχνιδοκεντρική Μάθηση και στοχεύει στη σχεδίαση, ανάπτυξη, εφαρμογή και αξιολόγηση ψηφιακών παιχνιδιών με συγκεκριμένο μαθησιακό στόχο. Γενικά, ο στόχος της είναι να προσφέρει μαθησιακές εμπειρίες που συνδυάζουν τη μάθηση με την ψυχαγωγία και ικανοποίηση που νιώθει ο παίκτης ενός καλοσχεδιασμένου παιχνιδιού. Για το στόχο αυτό χρησιμοποιούνται καινοτόμες ψηφιακές τεχνολογίες όπως οι φορητές συσκευές, εργαλεία Web 2.0, τρισδιάστατοι εικονικοί κόσμοι (3D virtual worlds), εκπαιδευτική ρομποτική και απτικές διεπαφές (tangible interfaces). 2.3.1 Το μοντέλο Prensky Ο Prensky (2001; 2002) δημιούργησε ένα ολοκληρωμένο μοντέλο σχετικά με τις ευκαιρίες μάθησης που προσφέρει ένα παιχνίδι. Αυτό διακρίνεται στα παρακάτω επίπεδα: Πώς Πως παίζεται το παιχνίδι, δηλαδή ο τρόπος παιχνιδιού (gameplay). Ο παίκτης πρέπει να μάθει πως λειτουργούν τα διάφορα στοιχεία του παιχνιδιού, όπως οι χαρακτήρες, τα αντικείμενα και οτιδήποτε άλλο υπάρχει στο παιχνίδι και επιπλέον τι μπορεί να κάνει ο παίκτης με αυτά. Έτσι ένας συγκεκριμένος τρόπος παιχνιδιού μπορεί να οδηγήσει στην ανάπτυξη διαφόρων δεξιοτήτων. Τί Τι μπορεί να κάνει ο παίκτης στο παιχνίδι, δηλαδή τι κανόνες πρέπει να ακολουθήσει. Οι κανόνες καθορίζουν τι επιτρέπεται να γίνει και τι όχι αλλά και τις συνέπειες κάθε ενέργειας. Έτσι ο παίκτης μαθαίνει μέσω διερεύνησης σεναρίων και στρατηγικών. Γιατί Γιατί να κάνει κάτι ο παίκτης, δηλαδή γιατί να προτιμήσει μια συγκεκριμένη στρατηγική έναντι μιας άλλης. Αυτή η διερεύνηση στρατηγικών από τον παίκτη για το πώς να κερδίσει το παιχνίδι αποτελεί ένα ισχυρό στοιχείο μάθησης ειδικά σε παιχνίδια που απαιτούν εμβάθυνση και ανάλυση σε θέματα στρατηγικής. Πού Που εξελίσσεται το παιχνίδι, δηλαδή σε ποιον «κόσμο» και κάτω από ποιες ειδικές συνθήκες (πολιτισμικές, περιβαλλοντικές, κλπ.). Ειδικά με τη σημερινή εξέλιξη της τεχνολογίας, εμπλέκονται όλες οι αισθήσεις του παίκτη στο παιχνίδι καθιστώντας το πιο παραστατικό και ρεαλιστικό με αποτέλεσμα αυτός να μπορεί να «βυθιστεί» σε αυτόν τον εικονικό κόσμο και να εξοικειωθεί με αυτόν αποκτώντας μια βαθύτερη γνώση. Πότε/Εάν Πότε και εάν είναι αποδεκτό να λάβει ο παίκτης κάποιες αποφάσεις, σύμφωνα με τις ηθικές αξίες, που είτε τονίζονται από το παιχνίδι είτε αναπτύσσονται από τον ίδιο τον παίκτη. Η μάθηση ενισχύεται ή αποθαρρύνεται με πολυμέσα και καταστάσεις που προκαλούν συναισθήματα, αμοιβές ή τιμωρίες και άλλες συνέπειες μέσα στο παιχνίδι. 26

Το μοντέλο αυτό είναι ένα χρήσιμο εργαλείο, τόσο για τον εκπαιδευτικό όσο και για το σχεδιαστή ενός παιχνιδιού, που βοηθάει στη σύνδεση του γενικού σεναρίου του παιχνιδιού με στοιχεία μάθησης που προκύπτουν από τον τρόπο παιχνιδιού (gameplay), τους κανόνες που το διέπουν, τη στρατηγική, τις συνθήκες του αλλά και τις αποφάσεις του παίκτη, στοιχεία που πρέπει να αναδεικνύονται από το σενάριο με συνέχεια και συνέπεια. 2.3.2 Εμπλοκή μαθητών στο παιχνίδι Η διδακτική αξιοποίηση των ψηφιακών παιχνιδιών εξαρτάται από το πώς θα εμπλακούν οι μαθητές σε αυτά. Υπάρχουν τρεις τεχνικές με τις οποίες μπορεί να γίνει αυτό: Οι μαθητές παίζουν το έτοιμο παιχνίδι Ο εκπαιδευτικός επιλέγει ένα έτοιμο παιχνίδι που θεωρεί αξιόλογο για χρήση στην εκπαιδευτική διαδικασία και το χρησιμοποιεί σε μια δραστηριότητα όπου το παίζουν οι μαθητές. Έτσι μπορεί να αφοσιωθεί εξ ολοκλήρου στη διδασκαλία αυτού του έτοιμου υλικού, αφού έχει ήδη αναπτυχθεί από επαγγελματίες και δε χρειάζεται να κάνει κάτι περισσότερο από τεχνικής πλευράς. Ωστόσο, αφού το λογισμικό θα είναι έτοιμο εκ των προτέρων μπορεί να μην καλύπτει συγκεκριμένες ανάγκες διδασκαλίας και επομένως κάποιους από τους στόχους μάθησης που έχουν τεθεί. Οι μαθητές πειραματίζονται προσαρμόζοντας ένα μισο-έτοιμο παιχνίδι Ο εκπαιδευτικός παρέχει ένα βασικό σκελετό του παιχνιδιού στους μαθητές με δυνατότητα διαμόρφωσης από αυτούς, με αλλαγή παραμέτρων ή άλλων στοιχείων, ώστε να παίξουν δοκιμάζοντας διαφορετικές στρατηγικές και αντιμετωπίζοντας διαφορετικές συνθήκες. Έτσι οι μαθητές εμπλέκονται σε μια δραστηριότητα διερευνητικής μάθησης κατανοώντας καλύτερα το μοντέλο στο οποίο στηρίζεται το παιχνίδι. Βασική προϋπόθεση φυσικά είναι να έχει ο εκπαιδευτικός την απαραίτητή εμπειρία στα ψηφιακά εργαλεία ανάπτυξης παιχνιδιών όπως επίσης και το χρόνο. Οι μαθητές αναπτύσσουν ένα δικό τους παιχνίδι Οι μαθητές εργάζονται ομαδικά πάνω σε ένα σενάριο και σε συνεργασία με τον εκπαιδευτικό αναπτύσσουν ένα παιχνίδι (σε ολοκληρωμένη ή πιλοτική έκδοση) με κάποιο από τα σημερινά εργαλεία ανάπτυξης (όπως αναφέρθηκαν και παραπάνω) μέσα σε ένα διάστημα κάποιων εβδομάδων. Για αυτήν την ενδιαφέρουσα προσέγγισή όμως θα χρειαστεί χρόνος για την εκμάθηση του εργαλείου συγγραφής από τους μαθητές καθώς και αρκετή τεχνική εμπειρία από τον εκπαιδευτικό για την υποστήριξη στα πρώτα τους βήματα. 27

28

Κ Ε Φ Α Λ Α Ι Ο 3 : T O Π Α Ι Χ Ν Ι Δ Ι «Κ Ρ Ε Μ Α Λ Α» 29

30

ΤΟ ΠΑΙΧΝΙΔΙ ΚΡΕΜΑΛΑ Στο κεφάλαιο αυτό αναλύεται επιγραμματικά το σενάριο του παιχνιδιού και η σύνδεσή του με το εκπαιδευτικό κομμάτι, περιγράφεται αναλυτικά ο τρόπος με τον οποίο παίζεται καθώς επίσης και η διεπαφή χρήστη μέσα από οθόνες και επεξηγήσεις. 31

3.1 ΤΟ ΣΕΝΑΡΙΟ & Η ΛΕΙΤΟΥΡΓΙΑ ΤΟΥ ΠΑΙΧΝΙΔΙΟΥ Το παιχνίδι «Κρεμάλα» («Hangman») που αναπτύχθηκε στα πλαίσια αυτής της εργασίας ακολουθεί την ίδια λογική του κλασσικού διαχρονικού παιχνιδιού κρεμάλα, εμπλουτίζοντάς το με κάποια επιπλέον στοιχεία παιχνιδιών ώστε να γίνει λίγο πιο σύνθετο αλλά ταυτόχρονα και πιο ενδιαφέρον. Ανήκει στην κατηγορία των single player stand-alone παιχνιδιών καθώς παίζεται από έναν μόνο παίκτη κάθε φορά και δε χρειάζεται σύνδεση σε κάποιο δίκτυο. Είναι μια μεταφορά ενός παραδοσιακού παιχνιδιού από το χαρτί στον υπολογιστή, που συνδυάζει στοιχεία παιχνιδιών εξάσκησης ικανοτήτων, στρατηγικής και τύχης καθώς απαιτεί διανοητικές και φυσικές ικανότητες (όπως αναγνώριση συσχετίσεων μεταξύ των λέξεων και ορισμών, εγρήγορση κ.α.), μπορεί να εφαρμοστεί μια στρατηγική σε αυτό (όπως επιλογή γραμμάτων που εμφανίζονται συχνότερα στην ελληνική αλφάβητο, φωνήεντα για τις πρώτες εικασίες κ.α.) και επιπλέον εμπλέκεται και η τύχη αφού στην ουσία ο παίκτης μαντεύει, μέχρι ένα στάδιο τουλάχιστον. 3.1.1 Σενάριο Όπως και στην κλασσική κρεμάλα, σκοπός είναι η αναζήτηση κρυφών λέξεων, γράμμα προς γράμμα από τον παίκτη. Οι λέξεις δεν είναι άσχετες μεταξύ τους καθώς υπάρχει δυνατότητα επιλογής θεματολογίας σύμφωνα με την οποία καθορίζεται και το λεξιλόγιο στο οποίο θα εξασκηθεί ο παίκτης. Κάθε φορά η κρυφή λέξη αναπαρίσταται με κενά κουτάκια και κάθε κενό κουτάκι αναπαριστά ένα γράμμα της λέξης αυτής. Ο παίκτης μαντεύει ένα γράμμα από τα 24 διαθέσιμα γράμματα της αλφαβήτου και αν υπάρχει αυτό στην κρυφή λέξη εμφανίζεται στο αντίστοιχο κενό κουτάκι (ή κουτάκια αν υπάρχει περισσότερες από μία φορές), ενώ αν δεν υπάρχει μειώνονται οι διαθέσιμες προσπάθειες του παίκτη και σχεδιάζεται ένα κομμάτι από τη φιγούρα ενός του ανθρώπου. Ο παίκτης πρέπει να βρει την κάθε λέξη μέσα σε ένα συγκεκριμένο χρονικό διάστημα, το οποίο καθορίζεται από το επίπεδο, και μπορεί αν επιθυμεί να χρησιμοποιήσει βοήθειες ώστε να επιτύχει το στόχο του. Οι χρήση βοήθειας ωστόσο «κοστίζει», καθώς αφαιρούνται πόντοι από το τελικό σκορ του παίκτη. Στο τέλος, είτε βρεθεί η κάθε λέξη είτε όχι, δίνεται μια σύντομη περιγραφή της. Το παιχνίδι τελειώνει στις εξής περιπτώσεις: Αν ο παίκτης βρει όλες τις κρυφές λέξεις Αν ο παίκτης εξαντλήσει όλες τις διαθέσιμες προσπάθειες Αν τελειώσει ο διαθέσιμος χρόνος (Αν ο παίκτης επιλέξει να πάει στο αρχικό μενού με κάποιο από τα βέλη) 32

3.1.2 Μηχανισμός Μάθησης Ο παίκτης εμπλέκεται σε μια δραστηριότητα από την οποία μαθαίνει ή επαναφέρει στη μνήμη του λέξεις μαζί με τη σημασία τους αποκτώντας νέες γνώσεις ή «φρεσκάροντας» τις ήδη υπάρχουσες αντίστοιχα. Μετά από κάθε επιτυχή ή ανεπιτυχή εύρεση της λέξης ο παίκτης κερδίζει τους αντίστοιχους πόντους κάτι που του δίνει κίνητρο ώστε να συγκεντρώσει όσους περισσότερους μπορεί και να ξεπεράσει κάθε προηγούμενο ρεκόρ. 3.1.3 Ο Τρόπος Παιχνιδιού Το παιχνίδι συνολικά έχει 2 επίπεδα. Το 1 ο περιέχει μονές λέξεις (π.χ. ανάλυση) ενώ το 2 ο διπλές (π.χ. παγκόσμιος ιστός). Κάθε επίπεδο περιέχει συνολικά ένα λεξιλόγιο 40 λέξεων. Το λεξιλόγιο καθορίζεται από την κατηγορία που έχει επιλέξει ο παίκτης. Στα πλαίσια της εργασίας η κατηγορία λέξεων που είναι διαθέσιμη και προεπιλεγμένη είναι αυτή της Πληροφορικής, οπότε το λεξιλόγιο σχετίζεται με αυτόν τον τομέα. Συγκεκριμένα οι λέξεις πάρθηκαν από τα σχολικά βιβλία της Πληροφορικής Γυμνασίου και Λυκείου. Ο παίκτης πρέπει να βρει 15 λέξεις για να προχωρήσει στο 2ο επίπεδο και άλλες 15 για να τερματίσει το παιχνίδι. Συνολικά 30 λέξεις. Εφόσον ξεκινήσει το παιχνίδι, ο χρόνος μετρά αντίστροφα. Συγκεκριμένα: Επίπεδο 1: 1 λεπτό διαθέσιμο Επίπεδο 2: 50 δευτερόλεπτα διαθέσιμα Ο παίκτης έχει στη διάθεσή του 4 βοήθειες, τις οποίες μπορεί να χρησιμοποιήσει μόνο μία φορά ανά λέξη. Κάθε βοήθεια αφαιρεί συγκεκριμένους πόντους και οι πόντοι αυτοί ορίστηκαν με τη λογική ότι αν κάποιος παίκτης χρησιμοποιήσει και τις 4 βοήθειες θα πάρει 0 πόντους: Βοήθεια 1: Αφαίρεση 1 γράμματος που ΔΕΝ είναι μέρος της λύσης [-5/-10] Βοήθεια 2: Εμφάνιση 1 γράμματος που είναι μέρος της λύσης [-20/-40] Βοήθεια 3: Εμφάνιση όλης της λέξης [-50/-100] Βοήθεια 4: Εμφάνιση 1 πρότασης-στοιχείου για τη λέξη [-25/-50] Χωρίς τη χρήση βοήθειας, με την επιτυχή εύρεση μιας λέξης ο παίκτης μπορεί να συγκεντρώσει συνολικά 100 ή 200 πόντους στο Επίπεδο 1 και 2 αντίστοιχα ενώ μετά από μια ανεπιτυχή εύρεση προφανώς και δεν παίρνει καθόλου πόντους. 33

3.2 ΔΙΕΠΑΦΗ ΧΡΗΣΤΗ Παρακάτω περιγράφεται ο τρόπος αλληλεπίδρασης του χρήστη με το παιχνίδι και η διεπαφή γενικότερα. 3.2.1 Αρχικό Μενού Το αρχικό μενού περιλαμβάνει 5 επιλογές. ΠΑΙΞΕ: Έναρξη παιχνιδιού ΣΚΟΡ: Οθόνη με τα 5 μεγαλύτερα σκορ που κατάφερε ο παίκτης. Αρχικά όλα 0. ΡΥΘΜΙΣΕΙΣ: Οθόνη όπου επιλέγει ο παίκτης τη θεματολογία/κατηγορία λέξεων από την οποία θα προκύψουν οι κρυφές λέξεις. Προς το παρόν η κατηγορία «Πληροφορική» είναι διαθέσιμη. (Η «Άλλη Κατηγορία» προστέθηκε για λόγους επίδειξης) ΒΟΗΘΕΙΑ: Οθόνη με οδηγίες για το παιχνίδι ΕΞΟΔΟΣ: Έξοδος από το παιχνίδι 34

Ο παίκτης μπορεί να οδηγηθεί στο αρχικό μενού με τους εξής τρόπους: Όταν τερματίσει το παιχνίδι Όταν χάσει, δηλ. όταν εξαντλήσει όλες τις προσπάθειες ή τελειώσει ο χρόνος Όταν βρει μια λέξη αλλά δεν επιθυμεί να συνεχίσει (κόκκινο βέλος) Όταν δεν επιθυμεί να συνεχίσει (μοβ βέλος) Όταν κατά τη διάρκεια του παιχνιδιού πατήσει το πλήκτρο «Esc» 3.2.2 Μενού Βοήθειας 35

3.2.3 Μενού Ρυθμίσεων 36

3.2.4 Μενού Σκορ 3.2.5 Παιχνίδι Πριν την έναρξη του παιχνιδιού εμφανίζεται μια οθόνη με το τρέχον επίπεδο (Επίπεδο 1) και μετά την εύρεση των 15 λέξεων μια με το Επίπεδο 2, προς ενημέρωση του παίκτη. Έπειτα οδηγείται στην βασική οθόνη παιχνιδιού που παρουσιάζεται παρακάτω. 37

Οδηγεί στο αρχικό μενού Ο διαθέσιμος χρόνος (1) Οι προσπάθειες που μένουν (2) Οι λέξεις που βρήκε ο παίκτης (3) Το συνολικό σκορ που δίνει η λέξη (4) Η κρεμάλα Τα κενά που αντιστοιχούν στα γράμματα τις λέξης (1) Συνολικός χρόνος: 1 λεπτό (Επίπεδο 1) 50 δευτερόλεπτα (Επίπεδο 2) (2) Συνολικές προσπάθειες: 7 (στην 8 η τελειώνει το παιχνίδι) (3) Λέξεις που βρήκε ο παίκτης σε κάθε επίπεδο (συνολικές: 15) (4) Μέγιστο Σκορ: 100 (Επίπεδο 1) 200 (Επίπεδο 2) Εδώ εμφανίζεται μια περιγραφή όταν επιλεχθεί η αντίστοιχη βοήθεια ή στην επιτυχή ή όχι εύρεση της λέξης (5) (5) Η περιγραφή μπορεί να εμφανιστεί είτε με τη χρήση της αντίστοιχης βοήθειας είτε μετά από επιτυχή/μη επιτυχή αναζήτηση 38

Πίσω στο αρχικό μενού (τέλος παιχνιδιού) ΕΠΙΤΥΧΙΑ Το συνολικό σκορ μέχρι τώρα Συνέχεια (επόμενη λέξη) Υπάρχει και 2 ο οθόνη σε περίπτωση χρήσης της βοήθειας 2, με παρόμοιο μήνυμα Εμφάνιση λέξης και περιγραφής Εμφάνιση σχετικού μηνύματος Μετά τον τερματισμό και των 2 επιπέδων εμφανίζεται η παρακάτω οθόνη και χρήστης οδηγείται στο αρχικό μενού. 39

ΑΠΟΤΥΧΙΑ Το συνολικό σκορ μέχρι τώρα Πίσω στο αρχικό μενού (τέλος παιχνιδιού) Εμφάνιση λέξης και περιγραφής Εμφάνιση σχετικού μηνύματος 40

3.2.5.1 Αλφάβητο Συμβολίζουν τα διαθέσιμα γράμματα Συμβολίζουν τα γράμματα που δεν υπάρχουν στην λέξη Συμβολίζουν τα γράμματα που υπάρχουν στη λέξη και αντικαθιστούν τα κενά κουτάκια στη λέξη (στον πίνακα της αλφαβήτου εμφανίζονται τα κενά κουτάκια) Κενό κουτάκι 3.2.5.2 Βοήθειες Βοήθεια 1: Αφαίρεση 1 γράμματος που ΔΕΝ είναι μέρος της λύσης Βοήθεια 2: Εμφάνιση 1 γράμματος που είναι μέρος της λύσης Βοήθεια 3: Εμφάνιση όλης της λέξης Βοήθεια 4: Εμφάνιση 1 πρότασης-στοιχείου για τη λέξη 41

3.3 ΜΕΛΛΟΝΤΙΚΑ ΣΧΕΔΙΑ Το παιχνίδι είναι ήδη ολοκληρωμένο από άποψη βασικών λειτουργιών και δυνατοτήτων. Ωστόσο επιδέχεται φυσικά βελτιώσεις και προσθήκες. Κάποιες από αυτές θα μπορούσαν να είναι οι εξής: Προσθήκη επιπλέον κατηγοριών Προσθήκη επιπλέον στατιστικών πέρα από τα καλύτερα 5. (π.χ. το ποσοστό των λέξεων κάθε κατηγορίας που έχει βρεθεί) Δυνατότητα χρήσης πληκτρολογίου, εκτός του πλήκτρου «Esc» που ήδη χρησιμοποιείται Δυνατότητα παύσης του παιχνιδιού και συνέχειας όταν το επιθυμεί ο παίκτης 42

Κ Ε Φ Α Λ Α Ι Ο 4 : T O Π Α Ι Χ Ν Ι Δ Ι «Κ Ρ Ε Μ Α Λ Α» : Ε Ρ ΓΑ Λ Ε Ι Α & Κ Ω Δ Ι Κ Α Σ 43

44

ΤΟ ΠΑΙΧΝΙΔΙ «ΚΡΕΜΑΛΑ»: ΕΡΓΑΛΕΙΑ & ΚΩΔΙΚΑΣ Μέχρι τώρα αναλύθηκαν βασικά στοιχεία των ψηφιακών εκπαιδευτικών παιχνιδιών και παρουσιάστηκε το παιχνίδι από πλευράς σεναρίου και διεπαφής. Στο κεφάλαιο αυτό γίνεται μια εισαγωγή στα εργαλεία συγγραφής και μια μικρή εμβάθυνση στον κώδικα του παιχνιδιού, ιδιαίτερα στα σημεία που συμβάλλουν στον αντικειμενοστραφή χαρακτήρα της υλοποίησης, που ήταν και ένας από τους βασικούς στόχους της εργασίας. 45

4.1 ΤΑ ΕΡΓΑΛΕΙΑ Για την υλοποίηση του παιχνιδιού «Κρεμάλα» χρησιμοποιήθηκε η γλώσσα Python και η βιβλιοθήκη Pygame. 4.1.1 Η Γλώσσα Python Η γλώσσα Python είναι μια ιδιαίτερα εκφραστική, αντικειμενοστραφής, υψηλού επιπέδου γλώσσα προγραμματισμού η οποία δημιουργήθηκε από τον Ολλανδό Γκβίντο βαν Ρόσσουμ. Αναπτύσσεται ως ανοικτό λογισμικό (open source) και χαρακτηρίζεται κυρίως από αναγνωσιμότητα του κώδικα και ευκολία χρήσης καθώς δίνει τη δυνατότητα στους προγραμματιστές να εκφράσουν έννοιες σε λιγότερες γραμμές κώδικα σε σχέση με άλλες γλώσσες, όπως η C++ ή η Java. 4.1.1.1 Ιστορικό & Εκδόσεις Αρχικά η Python ήταν γλώσσα σεναρίων που χρησιμοποιούνταν στο λειτουργικό Amoeba, για κλήσεις συστήματος. Στις 16 Οκτωβρίου του 2000 κυκλοφόρησε η Python 2.0 και στις 3 Δεκεμβρίου του 2008 η Python 3.0 και πολλά από τα χαρακτηριστικά αυτής μεταφέρθηκαν στις εκδόσεις 2.6 και 2.7 που είναι προς τα πίσω συμβατές. Η Python 3 είναι η πρώτη γλώσσα προγραμματισμού που σπάει την προς τα πίσω συμβατότητα με προηγούμενες εκδόσεις ώστε να διορθωθούν κάποια λάθη που υπήρχαν σε προηγούμενες εκδόσεις και να είναι πιο σαφής ο απλός τρόπος με τον οποίο μπορούν να γίνουν κάποια πράγματα. Η έκδοση της Python που χρησιμοποιήθηκε στο παιχνίδι «Κρεμάλα» είναι η 3.4.0. 4.1.1.2 Γιατί χρησιμοποιείται; Ο Mark Lutz (2013) μετά από εμπειρία 16 χρόνων διδασκαλίας του αντικειμένου συγκεντρώνει τους λόγους για τους οποίους πιστεύει πως χρησιμοποιείται η Python: Ποιότητα λογισμικού (Software quality) Για πολλούς η Python ξεχωρίζει λόγω ευκολίας, αναγνωσιμότητας και συντήρησης, συνοχής, και γενικά ποιότητας λογισμικού. Παραγωγικότητα ανάπτυξης (Developer productivity) Ο κώδικας σε Python καταλαμβάνει συνήθως μικρότερη έκταση σε σχέση με άλλες γλώσσες, επομένως έχουμε λιγότερη συγγραφή, συντομότερη αποσφαλμάτωση και λιγότερο κώδικα για συντήρηση. Φορητότητα προγράμματος (Program portability) Τα προγράμματα σε Python μπορούν να τρέξουν στις περισσότερες πλατφόρμες προσφέροντας πολλές λειτουργικές δυνατότητες. Βιβλιοθήκες υποστήριξης (Support libraries) Η Python έχει μια μεγάλη συλλογή από προκατασκευασμένες φορητές λειτουργίες, γνωστή ως standard library που υποστηρίζει μια μεγάλη γκάμα εργασιών. Επιπλέον μπορεί να επεκταθεί με τοπικές βιβλιοθήκες ή με thirdparty λογισμικό υποστήριξης εφαρμογών. 46

Ενσωμάτωση τμημάτων (Component integration) H Python έχει τη δυνατότητα να επικοινωνήσει με άλλα κομμάτια μιας εφαρμογής με διάφορους μηχανισμούς ενσωμάτωσης, ως ένα εργαλείο εξατομίκευσης και επέκτασης ενός προϊόντος. Ευχαρίστηση (Enjoyment) Λόγω της ευχρηστίας και των δυνατοτήτων της η Python καθιστά τη συγγραφή κώδικα πιο ευχάριστη, παρά αγγαρεία, κάτι σημαντικό για την παραγωγικότητα. 4.1.1.3 Ποιο είναι το μειονέκτημα; Σύμφωνα πάλι με τον Mark Lutz (2013) το μόνο σημαντικό καθολικό μειονέκτημα είναι ότι η ταχύτητα εκτέλεσης μπορεί να μην είναι πάντα τόσο γρήγορη όσο σε άλλες πλήρως μεταγλωττισμένες και χαμηλότερου επιπέδου γλώσσες όπως η C και C++. Αν και σχετικά σπάνιο στις μέρες μας, κάποιες φορές η χρήση γλωσσών χαμηλού επιπέδου είναι απαραίτητη για την επικοινωνία με το επίπεδο αρχιτεκτονικής υλικού. 4.1.1.4 Περιβάλλοντα ανάπτυξης H Python λειτουργεί είτε σαν ένας command line interpreter, δηλαδή σαν κέλυφος (shell), είτε μέσω ενός IDE (Integrated Development Environment), δηλαδή ενός περιβάλλοντος που προσφέρει περισσότερες δυνατότητες από ένα κέλυφος. Το βασικό περιβάλλον για την ανάπτυξη προγραμμάτων σε Python είναι το IDLE. Η έκδοση του IDLE που χρησιμοποιήθηκε για το παιχνίδι «Κρεμάλα» είναι η 3.4.0. 4.1.1.5 Χρήση Η χρήση της Python μπορεί να είναι γενική, ειδικότερα όμως μπορεί να χρησιμοποιηθεί για εφαρμογές στον Ιστό, στην Τεχνητή Νοημοσύνη, για επιστημονικούς υπολογισμούς και συγγραφή σεναρίων εντολών (scripting). Σύμφωνα με το Δείκτη της Προγραμματιστικής Κοινότητας ΤΙΟΒΕ (2015), τα τελευταία χρόνια βρίσκεται ανάμεσα στις 10 καλύτερες και διασημότερες γλώσσες προγραμματισμού ενώ το 2007 και 2010 ψηφίστηκε ως γλώσσα προγραμματισμού της χρονιάς. Πλέον (Οκτώβριος 2015) κατέχει την 5 η θέση με τάση ανόδου. 4.1.2 Η Βιβλιοθήκη Pygame Η βιβλιοθήκη Pygame είναι μια βιβλιοθήκη της Python που περιλαμβάνει modules (εσωτερικές βιβλιοθήκες), κλάσεις, συναρτήσεις κλπ. για την ανάπτυξη παιχνιδιών. Είναι σχεδιασμένη για τη δημιουργία παιχνιδιών γιατί επιτρέπει: τη διαχείριση προχωρημένου επιπέδου 2D γραφικών τη διαχείριση πολυμέσων (εικόνα, ήχος, κλπ.) τον έλεγχο των μονάδων εισόδου (ποντίκι, πληκτρολόγιο, game controllers) τη διαχείριση πλήθους ενσωματωμένων κλάσεων για τη δημιουργία χρήσιμων αντικειμένων 47

4.2 MODULES, ΚΛΑΣΕΙΣ & ΣΥΝΑΡΤΗΣΕΙΣ Παρακάτω αναλύονται οι εσωτερικές βιβλιοθήκες και οι κλάσεις της Pygame με τις μεθόδους τους, καθώς και οι κλάσεις και συναρτήσεις που χρησιμοποιήθηκαν ή δημιουργήθηκαν για την υλοποίηση του παιχνιδιού. 4.2.1 Τα Modules 4.2.1.1 Module: pygame Το pygame πακέτο είναι το top-level πακέτο της βιβλιοθήκης. Οι μέθοδοι που χρησιμοποιούνται στο παιχνίδι είναι: pygame.init(): αρχικοποιεί όλα τα modules του pygame pygame.quit(): τερματίζει όλα τα modules του pygame 4.2.1.2 Module: sprite To sprite module περιέχει απλές βασικές κλάσεις αντικειμένων για χρήση σε παιχνίδια. Στο παιχνίδι χρησιμοποιείται η μέθοδος: pygame.sprite.sprite(): είναι η βασική κλάση και περιέχει μεθόδους για τη διαχείριση ορατών αντικειμένων στις οθόνες των παιχνιδιών 4.2.1.3 Module: display Το display module ελέγχει το παράθυρο και την οθόνη του προγράμματος. Οι μέθοδοι που χρησιμοποιούνται στο παιχνίδι είναι οι εξής: pygame.display.set_mode(): αρχικοποιεί ένα παράθυρο ή οθόνη pygame.display.set_caption(): καθορίζει τον τίτλο του παραθύρου pygame.display.update(): ανανεώνει την οθόνη ή μέρος της οθόνης ώστε να εμφανιστούν οι αλλαγές που γίνονται στο παράθυρο 4.2.1.4 Module: image Το image module χρησιμοποιείται για τη διαχείριση εικόνων και περιέχει μεθόδους για τη φόρτωση και αποθήκευση εικόνων, όπως επίσης και για τη μεταφορά αντικειμένων Surface σε μορφή χρήσιμη από άλλα πακέτα. Στο παιχνίδι χρησιμοποιείται η μέθοδος: pygame.image.load(): φορτώνει μια νέα εικόνα από ένα αρχείο δημιουργώντας ένα νέο αντικείμενο Surface 4.2.1.5 Module: transform Το transform module χρησιμοποιείται για το μετασχηματισμό επιφανειών. Στο παιχνίδι χρησιμοποιείται η μέθοδος: pygame.transform.scale(): προσαρμόζει το μέγεθος ενός αντικειμένου Surface σε μια νέα ανάλυση 48

4.2.1.6 Module: mouse Το mouse module διαχειρίζεται τις λειτουργίες του ποντικιού. Στο παιχνίδι χρησιμοποιείται η μέθοδος: pygame.mouse.get_pos(): επιστρέφει τη θέση του κέρσορα, σε συντεταγμένες x και y, σχετικές με την πάνω αριστερή γωνία της οθόνης 4.2.1.7 Module: time Το time module χρησιμοποιείται για τον έλεγχο του χρόνου. Στο παιχνίδι χρησιμοποιείται η μέθοδος: pygame.time.get_ticks(): επιστρέφει το χρόνο σε milliseconds 4.2.1.8 Module: music Το music module συνδέεται σε μεγάλο βαθμό με το mixer module και ελέγχει streamed ήχο. Οι μέθοδοι που χρησιμοποιούνται στο παιχνίδι είναι: pygame.mixer.music.set_volume(): ορίζει την ένταση του ήχου pygame.mixer.music.load(): φορτώνει ένα αρχείο ήχου pygame.mixer.music.play(): ξεκινάει ένα αρχείο ήχου 4.2.1.9 Module: font Το font module χρησιμοποιείται για τη φόρτωση και απεικόνιση γραμματοσειρών. Οι μέθοδοι που χρησιμοποιούνται στο παιχνίδι είναι: pygame.font.font(): περιέχει μεθόδους για τη δημιουργία νέων αντικειμένων Font από ένα αρχείο γραμματοσειράς pygame.font.font.render(): σχεδιάζει κείμενο σε ένα νέο αντικείμενο Surface 4.2.2 Οι Κλάσεις 4.2.2.1 Κλάση: Surface Η κλάση Surface δημιουργεί αντικείμενα που αντιπροσωπεύουν εικόνες και ουσιαστικά δημιουργεί επιφάνειες. Οι μέθοδοι που χρησιμοποιούνται στο παιχνίδι είναι: pygame.surface.blit(): σχεδιάζει μια εικόνα πάνω σε μια άλλη 4.2.2.2 Κλάση: Rect Η κλάση Rect χρησιμοποιείται για την αποθήκευση ορθογώνιων συντεταγμένων. Παρακάτω αναλύονται οι κλάσεις που δημιουργήθηκαν για το παιχνίδι 49

4.2.2.3 Κλάση: Button Η κλάση Button δημιουργεί αντικείμενα τύπου κουμπιού. Σε αυτήν ανήκουν τα αντικείμενα: buttons: τα κουμπιά του αρχικού μενού buttonscat: τα κουμπιά των κατηγοριών στο μενού «Ρυθμίσεις» buttonsarr: τα κουμπιά (μοβ βέλος) μεταφοράς πίσω buttonsarr2: τα κουμπιά (κόκκινο/πράσινο βέλος) μεταφοράς πίσω/εμπρός Η κλάση αυτή κληρονομεί από την κλάση Sprite και περιέχει τις εξής μεθόδους: init (): o constructor της κλάσης Παράμετροι: createx, createy: οι συντεταγμένες στις οποίες θα τοποθετηθεί το αντικείμενο κουμπί img: η εικόνα η οποία θα απεικονιστεί επάνω στην επιφάνεια του κουπιού dimx, dimy: οι διαστάσεις της εικόνας, δηλαδή του κουμπιού drawit(): σχεδιάζει το κουμπί Παράμετροι: surf: η επιφάνεια στην οποία θα σχεδιαστεί το κουμπί lightup(): καλείται κάθε φορά που ο κέρσορας βρίσκεται πάνω από την επιφάνεια του κουμπιού και αλλάζει την εικόνα του κουμπιού ώστε να καταλαβαίνει ο παίκτης ποιο κουμπί πρόκειται να επιλέξει. Παράμετροι: surf: η επιφάνεια στην οποία θα σχεδιαστεί το κουμπί lightswitch: η μεταβλητή που καθορίζει ποια εικόνα θα απεικονιστεί (ανάλογα με το αν ο κέρσορας είναι πάνω στο κουμπί ή όχι). Στην πρώτη περίπτωση έχει την τιμή 1 και στη δεύτερη 0. img: η εικόνα η οποία θα απεικονιστεί επάνω στην επιφάνεια του κουμπιού 50

4.2.2.4 Κλάση: Bar Η κλάση Bar δημιουργεί την μπάρα των προσπαθειών που βρίσκεται, κατά τη διάρκεια του παιχνιδιού, στο κέντρο πάνω και δείχνει πόσες προσπάθειες απέμειναν στον παίκτη πριν χάσει. Σε αυτήν ανήκουν τα αντικείμενα: bar: η μπάρα Η κλάση αυτή κληρονομεί από την κλάση Sprite και περιέχει τις εξής μεθόδους: init (): o constructor της κλάσης Παράμετροι: createx, createy: οι συντεταγμένες στις οποίες θα τοποθετηθεί το αντικείμενο μπάρα img: η εικόνα η οποία θα απεικονιστεί επάνω στην επιφάνεια της μπάρας dimx, dimy: οι διαστάσεις της εικόνας, δηλαδή της μπάρας drawit(): σχεδιάζει την μπάρα Παράμετροι: surf: η επιφάνεια στην οποία θα σχεδιαστεί η μπάρα 4.2.2.5 Κλάση: Hangman Η κλάση Hangman δημιουργεί τα αντικείμενα κομμάτια του ανθρωπάκου. Σε αυτήν ανήκουν τα αντικείμενα: hangmanpics: τα κομμάτια του ανθρωπάκου Η κλάση αυτή κληρονομεί από την κλάση Sprite και περιέχει τις εξής μεθόδους: init (): o constructor της κλάσης Παράμετροι: createx, createy: οι συντεταγμένες στις οποίες θα τοποθετηθεί το αντικείμενο κομμάτι του ανθρωπάκου img: η εικόνα η οποία θα απεικονιστεί επάνω στην επιφάνεια του κομματιού dimx, dimy: οι διαστάσεις της εικόνας, δηλαδή του κομματιού number: ο αριθμός του κομματιού (0 έως και 7, όσες και οι προσπάθειες) drawit(): σχεδιάζει το κομμάτι Παράμετροι: surf: η επιφάνεια στην οποία θα σχεδιαστεί το κομμάτι 51

4.2.2.6 Κλάση: Hint Η κλάση Hint δημιουργεί αντικείμενα τύπου κουμπιού και συγκεκριμένα τα κουμπιά των βοηθειών. Σε αυτήν ανήκουν τα αντικείμενα: buttonshints: τα κουμπιά των βοηθειών Η κλάση αυτή κληρονομεί από την κλάση Sprite και περιέχει τις εξής μεθόδους: init (): o constructor της κλάσης Παράμετροι: createx, createy: οι συντεταγμένες στις οποίες θα τοποθετηθεί το αντικείμενο κουμπί img: η εικόνα η οποία θα απεικονιστεί επάνω στην επιφάνεια του κουμπιού dimx, dimy: οι διαστάσεις της εικόνας, δηλαδή του κουμπιού number: ο αριθμός του κουμπιού (0 έως και 3, όσες και οι βοήθειες) drawit(): σχεδιάζει το κουμπί της βοήθειας Παράμετροι: surf: η επιφάνεια στην οποία θα σχεδιαστεί το κουμπί της βοήθειας 4.2.2.7 Κλάση: Letter Η κλάση Letter δημιουργεί αντικείμενα τύπου κουμπιού (συγκεκριμένα τα κουμπιά των γραμμάτων της αλφαβήτου) και τα κενά κουτάκια. Σε αυτήν ανήκουν τα αντικείμενα: blanks: τα κενά κουτάκια buttonslet: τα γράμματα της αλφαβήτου buttonsletf: τα γράμματα που δεν υπάρχουν στη λέξη Η κλάση αυτή κληρονομεί από την κλάση Sprite και περιέχει τις εξής μεθόδους: init (): o constructor της κλάσης Παράμετροι: createx, createy: οι συντεταγμένες στις οποίες θα τοποθετηθεί το αντικείμενο γράμμα img: η εικόνα η οποία θα απεικονιστεί επάνω στην επιφάνεια του γράμματος dimx, dimy: οι διαστάσεις της εικόνας, δηλαδή του γράμματος number: ο αριθμός του γράμματος drawit(): σχεδιάζει το κουμπί του γράμματος Παράμετροι: surf: η επιφάνεια στην οποία θα σχεδιαστεί το κουμπί του γράμματος 52

4.2.2.8 Κλάση: Text Η κλάση Letter δημιουργεί αντικείμενα κειμένου που χρειάζεται να εμφανιστεί στην οθόνη. Σε αυτήν ανήκουν τα αντικείμενα: textwords: το κείμενο των υπολειπόμενων λέξεων textlevel: το κείμενο του τρέχοντος επιπέδου (προσωρινά ανενεργό) textscore: το κείμενο του τρέχοντος σκορ textfinalscore: το κείμενο του τελικού σκορ textword: το κείμενο της λέξης textdef1: το κείμενο της περιγραφής που εμφανίζεται κατά τη χρήση της αντίστοιχης βοήθειας textdef2: το κείμενο της περιγραφής που εμφανίζεται αφού βρει ή όχι τη λέξη ο παίκτης texttime: το κείμενο του χρόνου textstatistics: το κείμενο του σκορ Η κλάση αυτή κληρονομεί από την κλάση Sprite και περιέχει τις εξής μεθόδους: init (): o constructor της κλάσης Παράμετροι: createx, createy: οι συντεταγμένες στις οποίες θα τοποθετηθεί το αντικείμενο κουμπί font: η γραμματοσειρά του κειμένου showtext: οι λέξεις που περιέχει το κείμενο color: το χρώμα του κειμένου bgcolor: το χρώμα του ορθογωνίου του κειμένου rendertext(): ανανεώνει το κείμενο (είναι απαραίτητο για τη σχεδίαση κειμένου πριν γίνει blit) Παράμετροι: showtext: οι λέξεις που περιέχει το κείμενο drawit(): σχεδιάζει το κείμενο Παράμετροι: surf: η επιφάνεια στην οποία θα σχεδιαστεί το κουμπί 53

4.2.3 Οι Συναρτήσεις 4.2.3.1 Συνάρτηση: read() Η συνάρτηση read() χρησιμοποιείται για να διαβάσει ένα αρχείο κειμένου. Επομένως επιστρέφει τα περιεχόμενα ενός τέτοιου αρχείου σε string. Στο παιχνίδι η συνάρτηση διαβάζει είτε από το αρχείο των σκορ, είτε από τα αρχεία των λεξιλογίων των κατηγοριών. 4.2.3.2 Συνάρτηση: splitlines() Η συνάρτηση splitlines() επιστρέφει μια λίστα με τις γραμμές ενός string. Στο παιχνίδι χρησιμοποιείται για να κρατήσει σε μια λίστα τις γραμμές του string που επιστρέφει η read(). Παρακάτω αναλύονται οι συναρτήσεις που δημιουργήθηκαν για το παιχνίδι 4.2.3.3 Συνάρτηση: checkarea() Η συνάρτηση checkarea() χρησιμοποιείται για να ελεγχθεί αν ο κέρσορας βρίσκεται σε μια συγκεκριμένη περιοχή, αντικείμενο. Παράμετροι: area: η περιοχή που ανιχνεύεται x: η συντεταγμένη x της θέσης που βρίσκεται ο κέρσορας y: η συντεταγμένη y της θέσης που βρίσκεται ο κέρσορας Επιστρέφει: true αν ο κέρσορας βρίσκεται πάνω στο αντικείμενο και false αν όχι 4.2.3.4 Συνάρτηση: getrandomword() Η συνάρτηση getrandomword() χρησιμοποιείται για να βρεθεί μια τυχαία λέξη από το τρέχον λεξιλόγιο που θα είναι και η κρυφή λέξη που θα πρέπει να μαντέψει ο παίκτης. Παράμετροι: wordlist: η λίστα με τις λέξεις (το τρέχον λεξιλόγιο) Επιστρέφει: το στοιχείο (με τον τυχαίο δείκτη που βρέθηκε μέσα στη συνάρτηση) που αντιστοιχεί σε μια λέξη από το λεξιλόγιο. 4.2.3.5 Συνάρτηση: getrandomsecretword() Η συνάρτηση getrandomsecretword() χρησιμοποιείται για να οριστεί η κρυφή λέξη. Συγκεκριμένα καλεί τη μέθοδο getrandomword() δίνοντας σαν παράμετρο τη σωστή λίστα ανάλογα με το επίπεδο, φροντίζοντας παράλληλα η κρυφή λέξη να μην είναι η ίδια κάθε φορά (σε ένα παιχνίδι, δηλαδή μέχρι να χάσει ο παίκτης). Παράμετροι: category: η κατηγορία που επέλεξε ο παίκτης στο μενού «Ρυθμίσεις» level: το τρέχον επίπεδο 54