el:school:lessons:programmatismos:pascal:game:stage1
Αρχικός έλεγχος
ΔΗΜΙΟΥΡΓΙΑ ΕΡΓΟΥ : Θα δημιουργήσουμε το νέο έργο game
ΕΜΦΑΝΙΣΗ ΚΕΙΜΕΝΟΥ
Θα εμφανίσουμε ένα κείμενο π.χ. το όνομά μας όχι πάνω αριστερά στην οθόνη όπως συνήθως αλλά ξεκινώντας στην
στήλη 10 και στην
γραμμή 3. Την τοποθέτηση αυτή μας την κάνει η
gotoxy. Γράφουμε λοιπόν
gotoxy(10,3);
writeln('Το όνομά μας');
Αλλάξτε το ώστε να εμφανιστεί στην στήλη 4 και στην γραμμή 12
Θέλουμε να κάνουμε το εξής να πατάμε ένα πλήκτρο π.χ. το
k και να κατεβαίνει το κείμενο μία γραμμή κάτω. Εδώ είναι που έχουν σημασία οι μεταβλητές. Διαγράψτε τον κώδικα
gotoxy(4,12);
write('Το όνομά μας');
Στην θέση του βάλτε
x:=4;
y:=12;
gotoxy(x,y);
writeln('Το όνομά μας');
Ορίστε στο var τις 2 μεταβλητές x και y.
ΚΙΝΗΣΗ ΚΑΤΩ
Με την εντολή
pliktro:=readkey η pascal διαβάζει
ένα πλήκτρο μόνο χωρίς να χρειαστεί να πατήσουμε
ENTER. Στην συνέχεια θα χρησιμοποιήσουμε μία
case γιατί θα χειριστούμε και άλλα πλήκτρα μετά. H
clrscr καθαρίζει την οθόνη για να φύγει το προηγούμενο κείμενο. Μην ξεχάσετε να δηλώσετε σωστά την μεταβλητή
pliktro. Θυμηθείτε αποθηκεύει
έναν μόνο χαρακτήρα (βλ. Ασκηση 6). Βάλτε λοιπόν στην συνέχεια τον παρακάτω κώδικα (αφήστε μια γραμμή πριν για να ξεχωρίσει)
pliktro:=readkey;
case pliktro of
'k': {Τι θα βάλουμε εδώ για να πάει στην γραμμή 13}
end;
clrscr;
gotoxy(x,y);
writeln('Το όνομά μας');
Για να κατέβει κάτω αφού ήμασταν στην γραμμή 12 θα πάμε στην γραμμή 13, στην στήλη 4. Ποια μεταβλητή αλλάζει το x ή το y και πόσο; Σβήστε τα σχόλια δίπλα από το k: και συμπληρώστε σωστά.
ΚΙΝΗΣΗ ΠΑΝΩ
Αντίστοιχα θέλουμε πατώντας το
i (πάνω από το
k) να πηγαίνουμε πάνω δηλαδή αν είμαστε στην γραμμή 12 να πάμε στην γραμμή 11. Ποια μεταβλητή αλλάζουμε πάλι; Όντως πάλι την
y και αυτή τη φορά
y:=y-1; Η case λοιπόν θα γίνει
case pliktro of
'k': y:=y+1;
'i': y:=y-1;
end;
Μεταγλωττίστε και εκτελέστε και δείτε αν πατώντας το k κατεβάζετε το κείμενο και πατώντας το i το ανεβάζετε.
ΕΠΑΝΑΛΑΜΒΑΝΟΜΕΝΗ ΚΙΝΗΣΗ
Ωραία ως εδώ αλλά το πρόγραμμά μας κάνει μόνο μία κίνηση και τερματίζει. Θα θέλαμε να μην τερματίζει αλλά να ξανακατεβαίνει πατώντας
k. Εδώ χρειαζόμαστε επανάληψη με μία
repeat .. until ή
while. Θα χρησιμοποιήσουμε
repeat .. until (βλ. Άσκηση 8). Θέλουμε να τελειώνει πατώντας το πλήκτρο
q, άρα η συνθήκη στην
until θα είναι
until pliktro='q';. Πάνω από εντολή
pliktro:=readkey; βάλτε μία
repeat και κάτω από την τελευταία εντολή
writeln('Το όνομά μας');, βάλτε
until pliktro='q'; Στοιχίστε σωστά με TAB ότι ανήκει στην επανάληψη.
repeat
pliktro:=readkey;
case pliktro of
'k': y:=y+1;
'i': y:=y-1;
end;
clrscr();
gotoxy(x,y);
writeln('Το όνομά μας');
until pliktro='q';
ΚΙΝΗΣΗ ΑΡΙΣΤΕΡΑ ΔΕΞΙΑ
Ήδη κινούμαστε πάνω κάτω αλλάζοντας την μεταβλητή y. Θέλουμε πατώντας j να πηγαίνουμε αριστερά και πατώντας l να πηγαίνουμε δεξιά. Ποια μεταβλητή θα αλλάξουμε τώρα; Εύκολο να το προσθέσετε. Κάντε το.
ΧΡΩΜΑΤΑ
Παιχνίδι χωρίς χρώματα δεν υπάρχει. Πάμε να βάλουμε. Είχαμε δει στην Άσκηση 1 την εντολή textcolor(blue); που άλλαζε το χρώμα κειμένου σε μπλε. Θέλουμε να γίνεται αυτό όταν πατάμε το πλήκτρο 1. Βάζουμε λοιπόν μέσα στην case και την επιλογή '1': textcolor(blue);
Θέλουμε να μπορούμε να αλλάζουμε και το χρώμα φόντου, έστω ότι πατώντας Shift και 1 (δηλαδή σαν να πατάγαμε θαυμαστικό !) να αλλάζει σε ανοιχτό πράσινο. Βάζουμε λοιπόν μέσα στην case και την επιλογή '!': textbackground(lightgreen);
Βάλτε και 2ο και 3ο χρώμα που θα αλλάζει όταν πατάμε τα πλήκτρα
2 ή
3. Διαλέξτε όποια χρώματα θέλετε εσείς. Χρώματα
εδώ
Αντίστοιχα πατώντας shift 2 και shift 3, να αλλάζει το φόντο σε ανοιχτά χρώματα (αυτά που έχουν light στο όνομά τους).
el/school/lessons/programmatismos/pascal/game/stage1.txt · Last modified: Y/m/d H:i by vagk