1. Πρότυπο Πειραματικό ΓΕΛ
Πανεπιστημίου Μακεδονίας
Γνωρίζουμε την
Python με κατασκευή
Απλών Διαδραστικών
Παιχνιδιών στο
Διαδύκτιο
Σχολ. Έτος 2013-14
Βασίλης Αποστολούδας, Α1
Ολγα Αποστολούδα, Α1
Αναστασία Σερζή, Α2
Βάγια Φατζηαναστασίου, Α2
Νικηφόρος Υασφαλής, Α2
Βασίλης Κοχλιαρίδης, Β1
Κωνσταντίνος Αλεξίου, Β1
Αναστάσιος Υωτιάδης, Β2
2. Δθμιουργικθκε από τον Ολλανδό Γκουίντο
βαν Ρόςςουμ (Guido van Rossum) το 1990
Βαςικόσ άξονάσ τθσ είναι θ αναγνωςιμότθτα
του κϊδικά τθσ, και θ ευκολία χριςθσ τθσ
Ζχει πολλζσ βιβλιοκικεσ που διευκολφνουν
ιδιαίτερα αρκετζσ ςυνθκιςμζνεσ εργαςίεσ και
ςυμβάλουν ςτθν ταχφτθτα τθσ εκμάκθςισ τθσ
Σο όνομα τθσ γλϊςςασ προζρχεται από τθν
ομάδα άγγλων κωμικϊν Μόντυ Πάικον
Η Python αναπτφςςεται ωσ ανοιχτό
λογιςμικό (open source)
. . . είναι μια γλώσσα προγραμματισμού, που . . .
3. Η Python προτείνεται ως μια πολύ καλή σύγχρονη
γλώσσα με στοιχεία Διαδικτύου για μαθητές
Γυμνασίου και Λυκείου,
που αρχίζουν να μαθαίνουν προγραμματισμό Η/Τ
4. Φαρακτηριστικά που την κάνουν ελκυστική . . .
Python
Οδθγοφμενθ
από Γεγονόσ
(event driven)
Απλι και
κατανοθτι
Αντικειμενοςτραφισ
Δωρεάν
(ΕΛΑΚ)
Αποκθκεφεται ςτο
ςφννεφο και εκτελείται ςτο
φυλλομετρθτι του Η/Τ θ
άλλων ζξυπνων ςυςκευϊν
Μαηί με τθν Java και τθν Php,
κεωροφνται οι γλϊςςεσ τθσ
επόμενθσ δεκαετίασ
5. Python C++
Print “Γεια σου κόσμε !’’
#include <iostream>
using namespace std;
void main()
{
cout << " Γεια σου κόσμε " << endl;
return 0 }
Σο πρόγραμμα «Γεια σου κόσμε !»
σε Python και C++
6. Python Java
Print “Γεια σου κόσμε !’’
class HelloWorldApp {
public static void main(String[] args) {
System.out.println("Hello World!"); //
Display the string.
}
}
Σο πρόγραμμα «Γεια σου κόσμε !»
σε Python και Java
10. Παιχνίδι 1 : Μάντεψε τον αριθμό
περιγραφή : Ο υπολογιστής βάζει στο μυαλό του ένα τυχαίο αριθμό
(στόχο), από το 1 – 100 ή από το 1 – 1000. Ο παίκτης πρέπει
να τον βρει με 7 ή 10 προσπάθειες αντίστοιχα
Σι μάθαμε: _ Ότι με δυαδική αναζήτηση αρκούν ν απόπειρες για να βρεθεί
ο αριθμός – στόχος
(όπου ν είναι 2ν >= Πάνω_Αριθμός – Κάτω_Αριθμός + 1
12. Παιχνίδι 2 : Ρακέτες
Περιγραφή : παίζεται με δύο παίκτες, οι οποίοι προσπαθούν να αποκρούσουν
την μπάλα. Μετά από κάθε χτύπημα με ρακέτα η ταχύτητα
της μπάλας αυξάνεται κατά 10 %
Q Επάνω
S Κάτω
Επάνω
Κάτω
13. Σι μάθαμε:
_ Οι συντεταγμένες της μπάλας και των ρακετών πρέπει να
ελέγχονται συνέχεια
_ Όταν η μπάλα ακουμπήσει τα όρια της οθόνης αλλάζει το
πρόσημο της κίνησής της, και γυρίζει πίσω παραμένοντας
μέσα στην οθόνη
_ Εξοικείωση με το σύστημα συντεταγμένων της επιφάνειας
γραφικών ( καμβάς )
14. Περιγραφή : Παίζεται από ένα παίκτη, ο οποίος πρέπει να βρει δύο ίδιες
κάρτες.
Ανάλογα με τον βαθμό δυσκολίας τα ζευγάρια μπορεί να
είναι 9 η 18.
Παιχνίδι 2 : Tandem
15. Σι μάθαμε:
_ Εισαγωγή εικόνων από αποθηκευτικά μέσα στο σύννεφο
(Dropbox)
_ Πως διαχειρίζεται η Python τα γραφικά ( Εικόνες κλπ)
_ τοιχεία από την αρχαία ιστορία, μιας και οι κάρτες
απεικονίζουν στολές και όπλα των στρατιωτών του Μ.
Αλεξάνδρου
16. Παιχνίδι 3 : Σαΐστε το ποντίκι
Περιγραφή : Παίζεται με ένα παίκτη, ο οποίος προσπαθεί να ταΐσει ένα
ποντικό με διάφορα είδη τυριών. Απαγορεύεται να βγει έξω
από την εσωτερική περιοχή, και αν το κάνει χάνει μια από τις
6 ζωές του.
17. Σι μάθαμε:
_ Να χρησιμοποιούμε γραφικά με κίνηση (animated graphics)
_ Να διαχειριζόμαστε το σύστημα συντεταγμένων του γραφικού
περιβάλλοντος
_ Σην μέθοδο Ray Casting
Για τα γραφικά του ποντικοφ βρικαμε διαδοχικζσ εικόνεσ κίνθςθσ
ποντικοφ (sprites).
18. Ray casting
Ο όροσ χρθςιμοποιικθκε πρϊτα, από τον Scott Roth το 1982
Ζνα ςθμείο είναι μζςα ςε πολφγωνο αν το πλικοσ των ςθμείων τομισ τθσ θμιευκείασ
που αρχίηει από το ςθμείο και τζμνει το πολφγωνο είναι μονόσ. Αν το ςθμείο είναι
ζξω, τότε ο αρικμόσ είναι ηυγόσ. Ζτςι μπορζςαμε να ελζγξουμε ςε κάκε κίνθςθ του
ποντικοφ, αν είναι μζςα ςτο πολφγωνο.
19. Παιχνίδι 4 : Ιστορικές Γνώσεις για την εκστρατεία του Μ. Αλεξάνδρου
Περιγραφή : Εδώ ο παίκτης πρέπει να βρει τις βασικές μάχες που πήρε μέρος
ο Μ. Αλέξανδρος, τις πολιορκίες που έκανε, καθώς και τις
Αλεξάνδρειες που ίδρυσε.
20. Σι μάθαμε:
_ Να χρησιμοποιούμε τις αρχές του αντικειμενοστραφούς
προγραμματισμού
_ Να διαχειριζόμαστε το σύστημα συντεταγμένων του γραφικού
περιβάλλοντος
_ Πληροφορίες για την εκστρατεία του Μ. Αλεξάνδρου
21. Παιχνίδι 5 : Προσομοίωση Κίνησης Μορίων του αέρα
Περιγραφή : το παράδειγμα αυτό θελήσαμε να προσομοιώσουμε την κίνηση
των μορίων του αέρα, σε δοχείο σταθερού όγκου, και σταθερής
θερμοκρασίας.
22. import simplegui,random
width = 800
height = 600
balls = []
no_of_balls = 200
colors =['Aqua','Black','Blue','Fuchsia','Gray','Green','Lime',
'Maroon','Navy','Olive','Orange','Purple','Red','Silver',
'Teal','White','Yellow']
class Ball:
def __init__ (self,pos,radius,colorl,colorm,vimax,vimay):
self.radius = radius
self.colorl = colorl
self.colorm = colorm
self.pos = pos
self.vimax = vimax
self.vimay = vimay
def draw(self, canvas):
canvas.draw_circle(self.pos, self.radius, 1,
self.colorl, self.colorm)
def update(self):
if self.pos[0] > width:
self.vimax = self.vimax * -1
if self.pos[0] < 0:
self.vimax = self.vimax * -1
if self.pos[1] > height:
self.vimay = self.vimay * -1
if self.pos[1] < 0:
self.vimay = self.vimay * -1
self.pos[0] += self.vimax
self.pos[1] += self.vimay
def init():
for i in range(no_of_balls):
p=[random.randrange(1,width),random.randrange(1,hei
ght)]
rad = random.randint(1,20)
col_l = random.choice(colors)
col_m = random.choice(colors)
direction_x=random.choice([-1,1])
direction_y=random.choice([-1,1])
balls.append(Ball(p, rad, col_l, col_m,
random.randint(1,15)*direction_x,
random.randint(1,15)*direction_y))
# Handler to draw on canvas
def draw(canvas):
for balla in balls:
balla.update()
balla.draw(canvas)
# Create a frame and assign callbacks to event handlers
frame = simplegui.create_frame("Home", width, height)
frame.set_draw_handler(draw)
init()
# Start the frame animation
frame.start()
Με εκτενι χριςθ τθσ ςυνάρτθςθσ
RANDOΜ
23. Ζγινε χριςθ τθσ αντικειμενοςτραφοφσ δυνατότθτασ τθσ Python. τθ γκρι
περιοχι μποροφμε να δοφμε τθν περιγραφι του αντικειμζνου των μπαλϊν.
ε 60 μόνο γραμμζσ, μπορζςαμε να προςομοιϊςουμε ζνα φυςικό φαινόμενο.
24. Σι μάθαμε:
_ Σην χρησιμότητα του αντικειμενοστραφούς
προγραμματισμού
_ Οπτική απεικόνιση ενός φυσικού φαινομένου
25. Παιχνίδι 6 : Τποβρύχιο
Περιγραφή : το παράδειγμα αυτό ο παίκτης είναι μέσα σε ένα υποβρύχιο και
προσπαθεί να τορπιλίσει περαστικά πλοία.
26. Σι μάθαμε:
_ Σην χρησιμότητα του αντικειμενοστραφούς
προγραμματισμού
_ Αυξημένη χρήση του προγραμματισμού οδηγούμενου από
γεγονός
( Σαυτόχρονη χρήση 4 χρονομέτρων, που ελέγχουν την κίνηση
των κυμάτων, του πλοίου και των τορπιλών. Επίσης
ταυτόχρονη λειτουργία γραφικών και πλήκτρων ελέγχου)
27. Σα τελειωμζνα παιχνίδια ενδιάμεςεσ αςκιςεισ και βοθκθτικά προγράμματα που γράψαμε
για εξάςκθςθ, τα τοποκετιςαμε ςε ζνα Wiki, το οποίο είναι ζνα ομαδοςυνεργατικό
περιβάλλον, όπου επικοινωνοφςαμε μεταξφ μασ, και ανεβάηαμε τα προγράμματά μασ.
28. Για να μπορζςει να παίξει ο παίκτθσ το παιχνίδι του Μ. Αλεξάνδρου,
δθμιουργιςαμε ζνα Prezi, για να εμπλουτίςει τισ ιςτορικζσ του γνϊςεισ .
29.
30. Η εναςχόλθςι μασ με τθν Python, ιταν ωφζλιμθ αλλά και διαςκεδαςτικι.
υγκεκριμζνα :
• Γνωρίςαμε τον προγραμματιςμό οδθγοφμενο από γεγονόσ
• Καταλάβαμε τι είναι και πωσ λειτουργεί ο
Αντικειμενοςτραφισ Προγραμματιςμόσ
• Εξοικειωκικαμε με τθν χριςθ των γραφικϊν ςτον
υπολογιςτι και το ςφςτθμα ςυντεταγμζνων των
εικονοςτοιχείων (pixel)
• Αξιοποιιςαμε τισ γνϊςεισ μασ από τθν Άλγεβρα,
Σριγωνομετρία, Φυςικι και Ιςτορία
• Χρθςιμοποιιςαμε αποκθκευτικά μζςα ςτο ςφννεφο όπωσ
το DropBox, επειδι για όλεσ τισ εικόνεσ που
χρθςιμοποιιςαμε, παίρναμε απλά το Dropbox Link τουσ
• Αξιοποιιςαμε εργαλεία Web 2.0