Σπανού Μαρία My statusemail : marspanou@gmail.com , twitter : maria_spanou



Χαλκιάς Κωνσταντίνος My status email: constantine.uot@gmail.com, twitter : Kwstis_uth


Subject Author Replies Views Last Message
No Comments


ΠΡΟΤΑΣΗ ΠΕΡΙΕΧΟΜΕΝΟΥ ΒΙΒΛΙΟΥ


1) Κάθε αρχή και ... εύκολη!
1.1 Σκοπός του βιβλίου
1.2 Σχετικά με τον προγραμματισμό
1.2.1 Γιατί να μάθω προγραμματισμό?
1.2.2 Εδώ πρόγραμμα,εκεί πρόγραμμα που είναι το πρόγραμμα?
(γίνεται αναφορά στο πλήθος των προγραμμάτων που χρησιμοποιούμε καθημερινά χωρίς να το ξέρουμε και στην χρησιμότητα αυτών)
1.3 Kodu και προγραμματισμός

2) Καλως ήλθες στον κόσμο σου! Στον κόσμο του Kodu!
1.1 Εύρεση Kodu στο Διαδίκτυο και εγκατάσταση
1.2 Configure Kodu Game Lab
1.3 Αντιπροσωπευτικά προγράμματα στο Kodu
1.4 Περιγραφή του κόσμου του Kodu
(έχοντας πάρει το παιδί μία πρώτη γεύση μέσω των παιχνιδιών που είδε παραπάνω εξηγούμε ποια είναι τα συστατικά στοιχεία ενός προγράμματος π.χ. χαρακτήρας Kodu,αντικείμενα,περιβάλλον).

3) Εξερεύνηση του προγράμματος Kodu
3.1 Εισαγωγή στο μενού πλοήγησης
3.2 Χρήση βοηθητικών tutorials
3.3 Πρώτη γνωριμία με τα εργαλεία του Kodu

4) Δημιούργησε τον κόσμο σου!
4.1 Έδαφος (Ground Brush : Paint, add or delete ground)
4.2 Βουνά και λόφοι (Up/Down : create hills or valleys)
4.3 Πεδιάδες και επίπεδα (Flatten : Make ground smooth or level)
4.4 Επεξεργασία επιφάνειας (Roughen : Create Spikey or hill ground)
4.5 Εργαλείο νερού (Water tool : add,remove,or tint water)

5) Το παιχνίδι.... α λα προγραμματιστικά!
Εναλλακτικός τίτλος:Do στο Kodu! - Δίνοντας ζωή στα αντικείμενα και στους χαρακτήρες μας
5.1 Αντικείμενα και χαρακτήρες Kodu(εισαγωγή και επεξεργασία)
5.2 Κινήσεις και ενέργειες(γνωριμία με τις εντολές)
5.3 Kodu και σύνταξη εντολών
5.4 Κοιτάζοντας “πίσω” από τα παιχνίδια(παρατίθεται ο κώδικας πολύ απλών παιχνιδιών και γίνεται η επεξήγησή του )

6) Όταν , ίσως , μπορεί...χμμμ....
6.1 Δομές ελέγχου(συνθήκες) - Από την καθημερινότητα στον προγραμματισμό
6.2 When-do
(να δοθεί ιδιαίτερη σημασία ποιόν αφορά η συνθήκη και η “κατάργηση” της γραμμικότητας στην εκτέλεση του προγράμματος)
6.3 Αλληλεπίδραση χαρακτήρων με i)χρήστη ii)χαρακτήρες iii)αντικείμενα
6.4 Παραδείγματα - Μελέτη περίπτωσης

7) Συγγνώμη...Επαναλάβετε παρακαλώ!
7.1 Εισαγωγή στην Επανάληψη
7.2 Απλή Επανάληψη
7.3 “Φωλιασμένες” Επαναλήψεις
7.4 Συνδυασμός επαναλήψεων και δομών ελέγχου
7.5 Ανακεφαλαίωση

8) Πρόγραμμα χωρίς μεταβλητή προκοπή δεν κάνει!!!
8.1 Η μεταβλητή και η σημασία της στα προγράμματα
8.2 Μεταβλητή vs Αντικείμενα και χαρακτήρες
8.3 Ζωές,Σκορ,Χρόνος,Ενέργεια
8.4 Παραδείγματα

9) Από την φαντασία στην υλοποίηση
9.1 Η λογική περιγραφή του προγράμματος - παιχνιδιού
9.2 Υλοποίηση βήμα-βήμα
9.3 Κάν’το αλλιώς
9.4 Έλεγχος για λογικά σφάλματα

10) Προχωρημένα θέματα Kodu
10.1 Ήχος και περιβάλλον
10.2 Κατασκευή κλώνων (Creatables)
10.3 Αλλαγή συμπεριφοράς (Pages)

11) Ώρα για παιχνίδι

12) Τελικά είμαστε μεγάλη οικογένεια!!
12.1 Γνώρισε την κοινότητα Kodu
12.2 Επίλογος


Χρήση αισθητήρων/ενεργειών σε κάθε κεφάλαιο

Αισθητήρες
ΚΕΦΑΛΑΙΟ 5
ΚΕΦΑΛΑΙΟ 6
ΚΕΦΑΛΑΙΟ 7
ΚΕΦΑΛΑΙΟ 8
ΚΕΦΑΛΑΙΟ 9
Πληκτρολόγιο
See
On land
Scored
-
Ποντίκι
Hear
On water
Timer

Gamepad
Bump

health

Always
Shot hit




Got




Held by




Ενέργειες
ΚΕΦΑΛΑΙΟ 5
ΚΕΦΑΛΑΙΟ 6
ΚΕΦΑΛΑΙΟ 7
ΚΕΦΑΛΑΙΟ 8
ΚΕΦΑΛΑΙΟ 9
Turn
Eat
Express
Substract
Create
Move on path
Vanish
Say
Add
switch
Jumb
Launch
Color
End
boom
shoot
Grab
Camera
Win
Stun


Play
Damage
Knockout


quiet
Reset




score



*το anything χρησιμοποιείται στο κεφάλαιο 6 για το bump
το me θα χρησιμοποιηθεί στο κεφάλαιο 6 στο shot hit προσδιοριστικό της ενέργειας color
*το not αναφέρεται στο κεφάλαιο 8

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

Πρόταση τρόπου ανάπτυξης παραδειγμάτων (παράδειγμα με αισθητήρα)


6.3.1 Ο αισθητήρας: Βλέπω(see)
see.png
Ο αισθητήρας Βλέπω (see), επιτρέπει στα αντικείμενα να αντιδρούν στην παρουσία άλλων αντικειμένων στο κόσμο των παιχνιδιών μας. Με απλά λόγια αποτελεί τα μάτια των πρωταγωνιστών μας που πλέον μπορούν να αναλάβουν δράση αν «δουν» ένα φίλο τους, ένα νόμισμα ή κάποιον εχθρό. Θα μπορούσαμε λοιπόν να προγραμματίσουμε ένα υποβρύχιο έτσι ώστε όταν βλέπει τον Kodu να εκτοξεύει πυραύλους εναντίον του, ή να προγραμματίσουμε έναν μηχανάκια-εχθρό ώστε όταν δει τον Kodu να προσπαθεί να τον πλησιάσει για να τον εξολοθρεύσει. Ο αισθητήρας Βλέπω (see) πάντα συνοδεύεται με προσδιοριστικό το στοιχείο που θέλουμε να αναγνωρίσει ο χαρακτήρας μας. Ένα παράδειγμα εντολής με χρήση του αισθητήρα:


Yp1.png
Τι είχε ο προγραμματιστής στο μυαλό του:

Όταν [βλέπω] [τον Kodu] τότε [κινούμαι] [προς αυτόν]

[Tip: παρατηρήστε ότι το προσδιοριστικό ενέργειας προς (towards) εξαρτάται από το αντικείμενο που θα χρησιμοποιήσουμε στον αισθητήρα της συγκεκριμένης συμπεριφοράς]

Ρήματα συμπεριφορών που θα πρέπει να μας φέρνουν στο μυαλό τον αισθητήρα:
Βλέπω, εντοπίζω, αναγνωρίζω, διακρίνω, αντιλαμβάνομαι, συναντώ

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

Yp2.png



Ανοίξτε το παιχνίδι Air Fight και ας ξεκινήσουμε βήμα βήμα τον προγραμματισμό των αντικειμένων προκειμένου να δημιουργήσουμε το παιχνίδι Air fight

Ας ξεκινήσουμε με τον προγραμματισμό του πράσινου τζετ, δηλαδή του αντικειμένου που θα χειρίζεται ο παίκτης. Το πράσινο τζετ θα πρέπει να αξιοποιήσει κάποιον αισθητήρα για να καταλαβαίνει το πότε ο χρήστης έχει πατήσει τα βελάκια ή το space στο πληκτρολόγιο. Ποιον αισθητήρα όμως; Προφανώς, τον αισθητήρα Πληκτρολόγιο (Keyboard) με προσδιοριστικό τα βέλη (Arrows) για να μετακινούμε το τζετ και μια ακόμη φορά με προσδιοριστικό το πλήκτρο Κενό (space) για να εκτοξεύει πυραύλους. Συνεπώς το πράσινο τζετ εμφανίζει δύο συμπεριφορές.
ΌΤΑΝ[στο πληκρολόγιο][πατηθεί κάποιο από τα βέλη] ΤΟΤΕ[κινήσου προς αντίστοιχη κατεύθυνση] [γρήγορα]
ΌΤΑΝ [στο πληκτρολόγιο][πατηθεί το πλήκρο space] ΤΟΤΕ [εκτόξευσε πυραύλους]

Yp3.png


Ας προγραμματίσουμε τώρα τα μαύρα τζετ.
Κάθε φορά που ένα μαύρο τζετ αναγνωρίζει ένα πράσινο τζετ, τότε θα πρέπει να αρχίσει να το ακολουθεί και να εκτοξεύει πυραύλους εναντίον του.
Πως μπορούν να αντιληφθούν τα μαύρα τζετ το πράσινο τζετ; Αφού θα το δουν, θα χρησιμοποιήσουμε τον αισθητήρα βλέπω(see). Ο αισθητήρας αυτός θα πρέπει να έχει ως προσδιοριστικό το αντικείμενο τζετ (jet). Συνεπώς, για την συμπεριφορά των μαύρων τζετ, δημιουργούμε τις εξής εντολές:
ΌΤΑΝ[δω][ένα τζετ]ΤΟΤΕ [κινούμαι][προς αυτό].
ΌΤΑΝ[δω][ένα τζετ]ΤΟΤΕ [εκτοξεύω πυραύλους].

Είναι το παράδειγμά μας ολοκληρωμένο; Αν προγραμματίσουμε τον αισθητήρα βλέπω (see) με προσδιοριστικό το αντικείμενο τζετ (jet), τότε κάθε μαύρο τζετ θα επιδεικνύει την ίδια συμπεριφορά όταν δει και όλα τα υπόλοιπα τζετ είτε μαύρα είτε πράσινα είτε κόκκινα! θα αρχίσει να τα ακολουθεί ανεξαρτήτως χρώματος και θα πυροβολεί οποιοδήποτε είναι κοντά του! Μήπως θα έπρεπε να προσθέσουμε ένα επιπλέον προσδιοριστικό στον αισθητήρα βλέπω (see), για παράδειγμα το χρώμα; Δεν επιθυμούμε τα μαύρα τζετ να αντιδρούν μόνο όταν βλέπουν το πράσινο τζετ; Βελτιώστε τις εντολές σας όπως φαίνεται στο παρακάτω σχήμα:
ΌΤΑΝ[δω][ πράσινο] [τζετ ]ΤΟΤΕ [κινούμαι][προς αυτό].
ΌΤΑΝ[δω][ πράσινο] [τζετ ]ΤΟΤΕ [εκτοξεύω][πυραύλους].


Yp4.png

Αποθηκεύστε τις αλλαγές και τρέξτε το πρόγραμμα.


Yp5.png


[Πονηρή ερώτηση: Πως εξασφαλίζουμε ότι οι πύραυλοι κατευθύνονται προς το στόχο τους; Έχει σημασία η σειρά των εντολών μας;]

Το Kodu μας προσφέρει μία πληθώρα προσδιοριστικών που μπορούμε να χρησιμοποιήσουμε σε συνδυασμό με τον αισθητήρα βλέπω(see). Μπορούμε να ορίσουμε ως προσδιοριστικό οποιοδήποτε αντικείμενο του κόσμου μας, οποιοδήποτε χρώμα (δηλαδή όταν βλέπει το αντικείμενό μας κόκκινο μπορεί να κινείται πιο αργά!), οποιαδήποτε έκφραση άλλου αντικειμένου (όταν βλέπει π.χ. ένα στεναχωρημένο αντικείμενο μπορεί να το εξολοθρεύει!). Στην επιλογή επιλογές (options) της πρώτης πίτας προσδιοριστικών, εμφανίζονται νέα προσδιοριστικά που έχουν να κάνουν με τη θέση του αντικειμένου σε σχέση με τα άλλα αντικείμενα του κόσμου. Έτσι αν επιθυμούμε ο kodu να ενεργεί όταν βλέπει κάποια αντικείμενα που βρίσκονται σε μακρινή θέση, μπορούμε να χρησιμοποιήσουμε το προσδιοριστικό μακρυά(far away).

Tip: το πόσο μακριά «βλέπει» το αντικείμενό σας, μπορείτε να το προσδιορίσετε από την ιδιότητα…

--------

Συνοψίζω τα στοιχεία που πρέπει να έχει η περιγραφή:
Α) ποια είναι η δουλειά του αισθητήρα, παραδείγματα χρήσης, γενική περιγραφή προσδιοριστικού
Β) μια παραδειγματική εντολή
Γ) ρήματα συμπεριφορών
Δ) παράδειγμα αξιοποίησης
Ε) μεγαλύτερη ανάλυση προσδιοριστικών με λεκτικά παραδείγματα