====== Παιχνίδι - 2ο Στάδιο ====== * Προυπάρχουσες γνώσεις : Έως και Άσκηση 8 - **ΠΡΟΚΑΘΟΡΙΣΜΕΝΑ ΧΡΩΜΑΤΑ** - Έχουμε ορίσει το πλήκτρο **'1'** να αλλάζει το **χρώμα κειμένου** σε **μπλε** με την εντολή **textcolor(blue);** και το πλήκτρο **Shift και 1** (δηλαδή **!**) να αλλάζει το **φόντο** σε **ανοιχτό πράσινο** με την εντολή **textbackground(lightgreen);**. Πάμε να τα βάλουμε σαν **αρχικά προκαθορισμένα χρώματα** στο παιχνίδι μας. Μετά το BEGIN του κυρίως προγράμματος εισάγουμε πρώτες εντολές textcolor(blue); textbackground(lightgreen); clrscr; - Βλέπουμε ότι τα χρώματα **blue** για κείμενο και **lightgreen** για φόντο ορίζονται πάντα σε 2 σημεία. Στην αρχή και μέσα στην case. Αυτό μας δείχνει ότι πρέπει να βάλουμε μία **σταθερά const** στη θέση τους για να έχουμε άνεση να τα αλλάζουμε ταυτόχρονα αν χρειαστεί. Πάνω από το **var** δηλώνουμε const arxikoxrwma = blue; arxikofonto = lightgreen; - Στο κυρίως πρόγραμμα βάζουμε στην θέση του **blue** την σταθερά **arxikoxrwma** και στην θέση του **lightgreen** την σταθερά **arxikofonto** - Τώρα μπορούμε αν θέλουμε να ορίσουμε άλλα αρχικά χρώματα που θα βρίσκονται πάντα και στα πλήκτρα **1** και **shift 1**. Δοκιμάστε να βάλετε άλλα αρχικά χρώματα και ελέγξτε αν λειτουργούν και με τα πλήκτρα π.χ. const arxikoxrwma = red; arxikofonto = lightblue; - Ξαναγυρίστε στα χρώματα **blue** και **lightgreen** - **ΕΜΦΑΝΙΣΗ pacman ΔΕΞΙΑ** - Μέχρι τώρα εμφανίζαμε και κινούσαμε ένα κείμενο π.χ. το όνομά μας. Πάμε να εμφανίσουμε κάτι άλλο. **Ακριβώς πάνω από την πρώτη gotoxy(x,y) έξω από repeat .. until** βάλτε σε μία μεταβλητή **pacman** το χαρακτήρα **'<'**. Δηλαδή pacman:='<'; - Δηλώστε την μεταβλητή αυτή ως **string** - Στις 2 εντολές **writeln** αντί να εμφανίσετε το όνομά σας εμφανίστε το περιεχόμενο της μεταβλητής **pacman**. - **ΕΜΦΑΝΙΣΗ pacman ΠΑΝΩ, ΚΑΤΩ, ΑΡΙΣΤΕΡΑ, ΔΕΞΙΑ** - Ωραία το εμφανίσαμε αλλά είναι σαν να κοιτάει ο pacman πάντα δεξιά. Θέλουμε όταν πηγαίνει αριστερά να κοιτάει αριστερά, δηλαδή **'>'**. Πάμε να βάλουμε άλλες **2 σταθερές** στο **const** pacmanaristera='>'; pacmandeksia='<'; - Τώρα μπορούμε να βάλουμε την σταθερά **pacmandeksia** στην θέση του **'<'** στην εντολή **pacman:='<';** - Όμως θέλουμε να εμφανίζεται το **pacmanaristera** όταν πηγαίνουμε αριστερά. Μέσα στην **case** στο πλήκτρο **'j'** θα βάλουμε και μια 2η εντολή οπότε χρειαζόμαστε **begin .. end** 'j': begin x:=x-1; pacman:=pacmanaristera; end; - Αντίστοιχα φτιάξτε το **'l'** που πάει δεξιά, να έχει και **2η εντολή** που να βάζει στην μεταβλητή **pacman** το **pacmandeksia** - Δοκιμάστε τα! Τι μας μένει; Θέλουμε χαρακτήρες για το **pacmanpanw** και **pacmankatw**. Βάλτε 2 νέες σταθερές **pacmanpanw='V'; {V αγγλικό κεφαλαίο}** και **pacmankatw='Λ'; {λαμδα κεφαλαίο}** - Αλλάξτε μέσα στην **case** ότι χρειάζεται για να εμφανίζονται όταν πατάτε τα πλήκτρα για κάτω και πάνω. - **ΣΤΑΘΕΡΕΣ ΠΑΝΤΟΥ** * Ήδη χρησιμοποιήσαμε **6 σταθερές** για τα **προκαθορισμένα χρώματα** και την **εμφάνιση** του **pacman** ανάλογα με την **κατεύθυνσή** του. Θα οργανώσουμε ακόμα καλύτερα το πρόγραμμά μας βάζοντας σταθερές σε όλες τις επιλογές της **case**. - Αρχικά θα ορίσουμε στο const την σταθερά **pliktroexodou = 'q'**. Στην συνέχεια θα αντικαταστήσουμε το **'q'** στην γραμμή until.. με **pliktroexodou**. - Έστω ότι θα θέλαμε να αλλάξουμε τα πλήκτρα που χειριζόμαστε την κίνηση πάνω, κάτω, αριστερά, δεξιά. Θα τα βάλουμε σε σταθερές για να έχουμε ευκολία αλλαγής. Ορίστε λοιπόν στο **const** την σταθερά **pliktropanw = 'i';** - Στην συνέχεια αντικαταστήστε στην **case** όπου **'i'** με **pliktropanw** - Ομοίως ορίστε στο **const** τις σταθερές **pliktrokatw**, **pliktroaristera** , **pliktrodeksia** - Αντικαταστήστε στην **case** τα **'k'**, **'j'**, **'l'** με τις αντίστοιχες σταθερές. - Τώρα μπορείτε να βάλετε αν θέλετε, **4 άλλα πλήκτρα** για κίνηση αλλάζοντας **μόνο τις σταθερές** ενώ το κυρίως πρόγραμμα παραμένει ίδιο και πιο ευανάγνωστο. Δοκιμάστε το. - Αν σας βολεύουν τα προηγούμενα πλήκτρα **'i'**, **'k'**, **'j'**, **'l'**, ξαναβάλτε τα πάλι πίσω - Ομοίως φτιάχνουμε 3 σταθερές για τα πλήκτρα με τα χρώματα **pliktroxrwma1**, **pliktroxrwma2**, **pliktroxrwma3**. - Αντικαθιστούμε στην **case** τα **'1'**, **'2'**, **'3'** με τις αντίστοιχες σταθερές. - Τέλος φτιάχνουμε 3 σταθερές για τα πλήκτρα με τα χρώματα φόντου **pliktrofonto1**, **pliktrofonto2**, **pliktrofonto3**. - Αντικαθιστούμε στην **case** τα **'!'**, **'@'**, **'#'** με τις αντίστοιχες σταθερές. - **ΟΔΗΓΙΕΣ** - Τώρα που τα έχουμε όλα σε σταθερές μπορούμε να φτιάξουμε και οδηγίες χρησιμοποιώντας αυτές τις σταθερές. Πριν από την εντολή **pacman:=pacmandeksia** εμφανίστε οδηγίες με την παρακάτω εντολή writeln('Κίνηση με : ', pliktroaristera, pliktropanw, pliktrokatw, pliktrodeksia); - Φτιάξτε 2ο μήνυμα **Χρώματα με ** και δίπλα να εμφανίζονται τα πλήκτρα για τα χρώματα. - Επίσης 3ο μήνυμα **Φόντο με ** και δίπλα να εμφανίζονται τα πλήκτρα για το φόντο.