====== Αρχικός έλεγχος ====== * Προυπάρχουσες γνώσεις : Έως και Άσκηση 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 στο όνομά τους).