====== Αρχικός έλεγχος ======
* Προυπάρχουσες γνώσεις : Έως και Άσκηση 8
- **ΔΗΜΙΟΥΡΓΙΑ ΕΡΓΟΥ** : Θα δημιουργήσουμε το νέο έργο **game**
* Κάνουμε όμοιες ενέργειες όπως στην Άσκηση1, όπου hello τώρα ο τίτλος είναι **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**. Διαλέξτε όποια χρώματα θέλετε εσείς. Χρώματα [[http://lazplanet.blogspot.gr/2013/05/how-to-use-text-and-background-color-in.html|εδώ]]
- Αντίστοιχα πατώντας **shift 2** και **shift 3**, να αλλάζει **το φόντο** σε ανοιχτά χρώματα (αυτά που έχουν light στο όνομά τους).