Παιχνίδι "Pong Advance" στο scratch

Παιχνίδι "Pong Advance" στο scratch
Πουρσανίδης Λεωνίδας,
Μαθητής Α Τάξης, ΓΕΛ Πεύκων
[email protected]
Μιχαήλ Σταυρούλα – ΠΕ19
[email protected]
Περίληψη
Το παιχνίδι «Pong Advance» δηµιουργήθηκε στο περιβάλλον του Scratch. Στηρίζεται στη λογική του
κλασσικού παιχνιδιού «Pong» µε επιπλέον διεύρυνση των δυνατοτήτων του χρήστη να επιλέξει επίπεδο
δυσκολίας µέσα από ένα εισαγωγικό µενού επιλογών. Υλοποιούνται εναλλακτικά σενάρια παιχνιδιού, ανάλογα
µε την επιλογή του χρήστη, όπως : «Two player versus mode», «Two player cooperation mode» και «One
Player Mode».
Λέξεις κλειδιά: Προγραµµατισµός, Scratch.
1.Εισαγωγή
Η επιλογή του Scratch ως εργαλείο για την ανάπτυξη της παρούσας εργασίας οφείλεται κυρίως στο γεγονός ότι
αποτελεί µια οπτική γλώσσα προγραµµατισµού, αρκετά ελκυστική για το «νέο» προγραµµατιστή και εύκολη
γενικά στη χρήση. Μέσα από το Scratch ανακαλύπτει ο χρήστης βασικές έννοιες προγραµµατισµού και τις
εφαρµόζει µέσα από την υλοποίηση παιχνιδιών και ποικίλων δραστηριοτήτων. ∆εν προϋποθέτει προγενέστερη
γνώση κλασσικού προγραµµατισµού και τα αποτελέσµατα µπορεί να τα λάβει ο αρχάριος χρήστης άµεσα και
γρήγορα, δηµιουργώντας του έτσι το κίνητρο για περαιτέρω ενασχόληση και δηµιουργία προγραµµάτων σ’
αυτό το περιβάλλον.
Το «Pong» είναι ιδιαίτερα σηµαντικό παιχνίδι από ιστορική άποψη, γιατί θεωρείται ότι είναι το πρώτο παιχνίδι
που έγινε ιδιαίτερα αγαπητό από τον κόσµο και ξεκίνησε την επανάσταση των video games. Το πρώτο «Pong»
σε µορφή παιχνιδιού µε κερµατοδέκτη, παρουσιάστηκε από την εταιρία ATARI το 1972, κάνοντας το όνοµα
της εταιρίας συνώνυµο µε τα video Games. To «Pong Advance» είναι ένα παιχνίδι που υλοποιήθηκε στο
Scratch. Στηρίζεται στη λογική του κλασσικού παιχνιδιού «Pong» και έχει εµπλουτιστεί µε επιπλέον επιλογές.
Έχουν χρησιµοποιηθεί δυνατότητες του Scratch που αφορούν το προγραµµατιστικό µέρος, όπως δοµές
επανάληψης, δοµές ελέγχου, τελεστές και µεταβλητές. Τα γραφικά έχουν δηµιουργηθεί στη ζωγραφική, η
οποία είναι ενσωµατωµένη στο εργαλείο και επιπλέον έχει εµπλουτιστεί µε ήχους από τις συλλογές για να
γίνεται η εξέλιξη του παιχνιδιού πιο ελκυστική.
2. Γενική περιγραφή του «Pong Advance»
Το παιχνίδι ξεκινάει µε τη δυνατότητα επιλογής από τρία εναλλακτικά σενάρια. Ο χρήστης έχει τη δυνατότητα
να επιλέξει µεταξύ τριών εναλλακτικών επιλογών για το παιχνίδι του:
α) «One Player Mode» - Ένας χρήστης: Στόχος του χρήστη είναι να αποκρούσει τη µπάλα η οποία κινείται στο
χώρο, έχοντας το δικαίωµα 5 ευκαιριών.
β) «Two player versus mode» - ∆ύο παίχτες αντίπαλοι: Οι δύο παίχτες προσπαθούν να αποκρούσουν τη µπάλα.
Αν κάποιος χάσει τη µπάλα, χαρίζει στον αντίπαλό του 1 πόντο. Κερδίζει αυτός που µαζεύει πρώτος 20
πόντους.
γ) «Two player cooperation mode» ∆ύο παίχτες σύµµαχοι: Οι δύο παίχτες συνεργάζονται και σκοπός τους
είναι να σώσουν ο καθένας µε τη σειρά του τη µπάλα η οποία κινείται στο χώρο. Κάθε φορά που η µπάλα
χάνεται από κάποιον από τους δύο παίχτες χάνεται µία ζωή. Το παιχνίδι τερµατίζεται όταν οι σύµµαχοι χάσουν
5 ζωές.
Για να γίνει πιο αληθοφανές το κλικ στα κουµπιά επιλογών χρησιµοποιήθηκε δεύτερο γραφικό µε πιο σκούρο
χρώµα, το οποίο εµφανίζεται κάθε φορά που οδηγείται ο δείκτης του ποντικιού πάνω σε ένα κουµπί. Η
1
υλοποίηση µε κώδικα γίνεται µε την εντολή από «αλλαγή ενδυµασίας XXXX» (όπου XXXX είναι το γραφικό
που χρησιµοποιείται για το εφέ) (Εικόνα 1)
Εικόνα 1- Μενού Επιλογών
2. Το περιβάλλον του «Pong Advance»
Χρησιµοποιήθηκαν συνολικά εφτά µορφές (Εικόνα 2) και τέσσερα εναλλακτικά σκηνικά (Εικόνα 3). Κάποια
από τα γραφικά που χρησιµοποιήθηκαν προέρχονται από τις συλλογές του Scratch, ενώ κάποια άλλα
διαµορφώθηκαν στη ζωγραφική την οποία έχει ενσωµατωµένο το περιβάλλον.
Εικόνα 2- Μορφές
Εικόνα 3- Εναλλακτικά Σκηνικά
2
3. «Pong Advance»: One Player Mode - Ένας Παίχτης
Όταν ο χρήστης επιλέξει να παίξει ως ένας παίχτης φορτώνεται το ανάλογο σκηνικό και ενεργοποιείται η
εντολή «µετάδωσε» µήνυµα «One». Το µήνυµα «One» µεταδίδεται στα σηµεία όπου ο κώδικας περιγράφει
διαδικασίες που αφορούν το παιχνίδι για ένα παίχτη. H µπάλα ξεκινάει την κίνηση στο χώρο και µε τη χρήση
των πλήκτρων «a» και «d» µετακινείται αριστερά και δεξιά αντίστοιχα, η µπλε οριζόντια µπάρα η οποία
αποκρούει την µπάλα (Εικόνα 4.2).
Στον κώδικα ο οποίος υπάρχει στο σκηνικό που αφορά το παιχνίδι µε έναν παίχτη ορίζεται αρχικά η τιµή της
µεταβλητής «Ζωές» σε «5» (Εικόνα 4.3). Κάθε φορά που η µπάλα χάνεται η µεταβλητή «Ζωές» µειώνεται
κατά 1 και ακούγεται χαρακτηριστικό ήχος . Ο κώδικας υπάρχει στη µορφή της µπάλας και θα παρουσιαστεί
πιο κάτω. Χρησιµοποιείται δοµή ελέγχου «Εάν» για να γίνεται έλεγχος της τιµής της µεταβλητής «Ζωές».
Όταν γίνει ίσον µε 0, «Ζωές=0» τότε το παιχνίδι ολοκληρώνεται.
Εικόνα4.1- Ένας παίχτης
Εικόνα 4.2- Κώδικας µπάρας
Εικόνα 4.3- Κώδικας σκηνικού
4. «Pong Advance»: Two player versus mode -∆ύο παίχτες αντίπαλοι
Το δεύτερο εναλλακτικό σενάριο του παιχνιδιού παίζεται µε δύο αντίπαλους χρήστες. Στην περίπτωση
επιλογής του σεναρίου αυτού µεταδίδεται το µήνυµα «VS». Ο πρώτος χρήστης µετακινεί την κάτω µπάρα µε
τα πλήκτρα «a» και «d» (Εικόνα 5.1) και ο δεύτερος ελέγχει την πάνω µπάρα µε τα πλήκτρα «δεξί βέλος» και
«αριστερό βέλος». (Εικόνα 5.2)
Εικόνα5.1- Ένας παίχτης
Εικόνα 5.2- Κώδικας µπάρας
Για την υλοποίηση του σεναρίου αυτού χρησιµοποιούνται δύο µεταβλητές για την τήρηση της βαθµολογίας
των δύο παιχτών «Πόντοι 1» και «Πόντοι 2». Κάθε φορά που η µπάλα χάνεται και αγγίζει ένα από τα όρια
(κόκκινο κάτω όριο – µπλε πάνω όριο) , ο αντίπαλος κερδίζει 1 πόντο, ενώ ταυτόχρονα ακούγεται σχετικό
ήχος. Όπως και στο παιχνίδι µε τον ένα παίχτη, ο έλεγχος αυτός γίνεται στη µορφή της µπάλας που θα
παρουσιαστεί στη συνέχεια. Στο σκηνικό γίνεται έλεγχος της τιµής των δύο µεταβλητών µε τη δοµή ελέγχου
3
«Εάν» (Εικόνα 6.2). Αν η µεταβλητή «Πόντοι 1» ή η «Πόντοι 2» υπερβούν το όριο του 20 τότε το παιχνίδι
τερµατίζεται και έχουµε το νικητή.
Εικόνα 6.1 - ∆ύο αντίπαλοι παίχτες
Εικόνα 6.2- Κώδικας σκηνικού
5. «Pong Advance»: Two player cooperation mode - ∆ύο παίχτες σύµµαχοι
Το τρίτο και τελευταίο σενάριο του παιχνιδιού παίζεται µε δύο χρήστες συµµάχους. (Εικόνα 7.1) Στην
περίπτωση επιλογής του σεναρίου αυτού µεταδίδεται το µήνυµα «Coop». Ο πρώτος χρήστης µετακινεί την
κάτω µπάρα µε τα πλήκτρα «a» και «d» και ο δεύτερος ελέγχει την πάνω µπάρα µε τα πλήκτρα «δεξί βέλος»
και «αριστερό βέλος», ακριβώς όπως και στο προηγούµενο (Εικόνα 5.1 και Εικόνα 5.2)
Εικόνα 7.1- ∆ύο παίχτες σύµµαχοι
Εικόνα 7.2- Κώδικας σκηνικού
Στην τρίτη εναλλακτική αυτή του παιχνιδιού οι παίχτες σύµµαχοι κάνουν κοινή προσπάθεια να σώσουν την
µπάλα και να την κρατήσουν µέσα στα όρια του σκηνικού. Αν η µπάλα αγγίζει κάποιο από τα κόκκινα όρια
που υπάρχουν πάνω και κάτω, τότε η µεταβλητή «Ζωές» µειώνεται κατά ένα, σε συνδυασµό µε το άκουσµα
χαρακτηριστικού ήχου. Με δοµή ελέγχου «Εάν» που υπάρχει στον κώδικα του σκηνικού (Εικόνα 7.2)
ελέγχεται η τιµή της µεταβλητής και όταν αυτή γίνει µηδέν («Ζωές» =0) τότε το παιχνίδι τερµατίζεται.
6. Ο «πρωταγωνιστής» µπάλα
Η µορφή µπάλα περιέχει ένα αρκετά σηµαντικό µέρος του κώδικα και για τα τρία διαφορετικά σενάρια, αφού
εκεί γίνονται οι πιο ουσιαστικοί έλεγχοι που καθορίζουν την εξέλιξη του παιχνιδιού. Εκεί καθορίζεται η κίνηση
της µπάλας ανάλογα µε το σηµείο στο οποίο θα την αποκρούσει ο χρήστης. Αν δηλαδή τη χτυπήσει περίπου
στο κέντρο κάνει µια πιο οµαλή κλίση, ενώ αν την πετύχει στην άκρη όπου το χρώµα της µπάρας γίνεται
µαύρο, τότε η κλίση που παίρνει η µπάλα είναι µεγαλύτερη. Επίσης γίνεται ο έλεγχος για το αν η µπάλα φεύγει
4
από τα όρια του σκηνικού, στοιχείο που καθορίζει τις αλλαγές στις µεταβλητές, χάνεται ζωή ή κερδίζονται
πόντοι (Εικόνα 8).
Συγκεκριµένα στην περίπτωση που το παιχνίδι παίζεται από έναν παίχτη οι έλεγχοι που γίνονται στην µπάλα
είναι οι εξής: α) αν αγγίξει τη µορφή της µπάρας αλλάζει κατεύθυνσή της αναλόγως του σηµείου που την
ακουµπάει β) αν αγγίξει χρώµα κόκκινο, δηλ το όριο, µεταβάλλεται η τιµή της µεταβλητής «Ζωές» σε -1,
ακούγεται σχετικός ήχος και ξαναστέλνει την µπάλα στο κέντρο της οθόνης δίνοντας της κατεύθυνση προς τα
πάνω, έτσι ώστε να συνεχιστεί το παιχνίδι. γ) κάνει έλεγχο στη µεταβλητή «Ζωές», η οποία όταν φτάσει το
µηδέν τερµατίζεται το παιχνίδι.
Όταν οι δύο χρήστες παίζουν ως αντίπαλοι, ο κώδικας στη µπάλα: α) καθορίζει όπως και πριν την κίνησή της
όταν προσκρούει στην µπάρα. Εδώ έχουµε δύο µπάρες (πάνω και κάτω), οπότε ο έλεγχος γίνεται και στις δύο
περιπτώσεις. β) καθορίζει τη βαθµολογία των δύο παιχτών αυξάνοντας κατά ένα τις µεταβλητές των πόντων
«Πόντοι 1» και «Πόντοι 2», ανάλογα µε το ποιος έχει αφήσει τη µπάλα να περάσει εκτός ορίου. Έχει οριστεί
κόκκινο χρώµα για το κάτω όριο και µπλε για το πάνω γ) τερµατίζει το παιχνίδι κάνοντας έλεγχο αν µία από
τις δύο µεταβλητές ξεπερνάει το 20.
Στην τελευταία περίπτωση, όπου οι χρήστες παίζουν ως σύµµαχοι και συνεργάζονται για να συγκρατήσουν τη
µπάλα µέσα στα όρια του σκηνικού, ο κώδικας της µπάλας: α) ορίζει όπως και στο προηγούµενο σενάριο την
πορεία της µπάλας µετά από µία απόκρουση β) µειώνει τη µεταβλητή «Ζωές» κατά – 1 κάθε φορά που ένας
από τους δύο χρήστες δεν προλάβει να αποκρούσει και η µπάλα πέφτει στο κόκκινο όριο (κόκκινο όριο πάνω
και κάτω). Η µπάλα επιστρέφει στο κέντρο και αρχίσει πάλι το παιχνίδι γ) κάνει έλεγχο στη µεταβλητή
«Ζωές», η οποία όταν φτάσει το µηδέν τερµατίζεται το παιχνίδι.
Εικόνα 8 - Κώδικας µορφής µπάλας για τα τρία εναλλακτικά σενάρια του παιχνιδιού
5
7. Συµπεράσµατα
Είναι κάτι παραπάνω από σίγουρο ότι το περιβάλλον του Scratch είναι ιδιαίτερα ελκυστικό για έναν νέο
προγραµµατιστή. Η συναρµολόγησης πλακιδίων είναι σαφώς ευκολότερη ως διαδικασία απ’ ότι η
πληκτρολόγηση εντολών. Από την άλλη, η αµεσότητα στην επιστροφή των αποτελεσµάτων καθώς
αναπτύσσεται ένα πρόγραµµα και η δυνατότητα διαρκούς ελέγχου, αποτελούν ίσως τα πιο δυνατά στοιχεία του
προγραµµατιστικού περιβάλλοντος του Scratch. Σηµαντικό κίνητρο για το µαθητή είναι το γεγονός ότι µπορεί
να πειραµατιστεί, να ενεργοποιήσει τη δηµιουργικότητά του, να δηµιουργήσει τα δικά του παιχνίδια ή να
τροποποιήσει γνωστά κλασσικά παιχνίδια, όπως συνέβη µε την εφαρµογή «Pong Advance» που περιγράφεται
στην παρούσα εργασία. Η ολοκλήρωση της ανάπτυξης ενός παιχνιδιού είναι µια µικρή επιτυχία για τον
αρχάριο προγραµµατιστή και λειτουργεί θετικά και µε προοπτική για µελλοντική ενασχόληση µε το εργαλείο.
8.Βιβλιογραφία
1. Marty Goldberg - Curt Vendel (2012) - Atari Inc. Business is FUN, Syzygy Press
2. http://learnscratch.org/index.php - Οδηγός χρήσης Scratch
3. http://www.scratchplay.gr/index.html - Οδηγός χρήσης Scratch
4. http://scratch.mit.edu/ - Εκπαιδευτική Πύλη του Scratch
6