Scratch: αποφάσεις και μεταβλητές
«Εάν… τότε», αισθητήρες, και ένα σκορ που μετράει.
40 λεπτά
Θα μάθεις να
- Να χρησιμοποιείς τα «εάν … τότε» και «εάν … τότε … αλλιώς» με συνθήκες από τους Αισθητήρες και τους Τελεστές.
- Να εξηγείς γιατί ένας έλεγχος πρέπει να μπει μέσα σε «για πάντα» για να γίνεται συνεχώς.
- Να φτιάχνεις μεταβλητή και να την αλλάζεις με «όρισε … σε» και «άλλαξε … κατά».
- Να γράφεις ένα μικρό παιχνίδι με έλεγχο από το πληκτρολόγιο και σκορ, και να βρίσκεις τα λάθη του.
Ένα πρόγραμμα που αποφασίζει
Τα σενάρια του προηγούμενου μαθήματος έκαναν πάντα το ίδιο: η γάτα ζωγράφιζε το ίδιο τετράγωνο, όσες φορές κι αν πατούσες τη σημαία. Ένα παιχνίδι όμως πρέπει να αντιδρά: αν πατήσεις το δεξί βέλος, να πηγαίνει δεξιά· αν πιάσεις το μήλο, να παίρνεις πόντο· αν η απάντησή σου είναι σωστή, να σε επαινεί.
Για αυτό χρειάζεται η δεύτερη δομή των αλγορίθμων, η επιλογή, που στο διάγραμμα ροής ήταν ο ρόμβος. Και για να μετράμε πόντους, χρειαζόμαστε μια μεταβλητή.
Εάν … τότε
Στην κατηγορία Έλεγχος υπάρχουν δύο τουβλάκια επιλογής:
εάν ⟨συνθήκη⟩ τότε
…εκτελείται μόνο αν η συνθήκη ισχύει…
εάν ⟨συνθήκη⟩ τότε
…εκτελείται αν η συνθήκη ισχύει…
αλλιώς
…εκτελείται αν δεν ισχύει…
Η συνθήκη μπαίνει στην εξαγωνική υποδοχή (εδώ τη γράφουμε ⟨ ⟩). Είναι πάντα ένα εξαγωνικό τουβλάκι, που απαντά αληθές ή ψευδές, όπως το ΝΑΙ και το ΟΧΙ του ρόμβου. Τέτοια τουβλάκια βρίσκεις σε δύο κατηγορίες:
| Κατηγορία | Συνθήκες |
|---|---|
| Αισθητήρες | «αγγίζει [δείκτη ποντικιού];», «αγγίζει [Μήλο];», «αγγίζει χρώμα [ ];», «πλήκτρο [διάστημα] πατήθηκε;» |
| Τελεστές | ⟨ ⟩ > ⟨ ⟩, ⟨ ⟩ < ⟨ ⟩, ⟨ ⟩ = ⟨ ⟩, «και», «ή», «όχι» |
Στους Αισθητήρες υπάρχει και το ζευγάρι «ρώτα [ ] και περίμενε» και «απάντηση»: το αντικείμενο κάνει μια ερώτηση, περιμένει να γράψεις κάτι, και ό,τι έγραψες μπαίνει στο στρογγυλό τουβλάκι «απάντηση».
Έλεγχος από το πληκτρολόγιο
Θέλουμε η γάτα να κινείται δεξιά-αριστερά με τα βελάκια:
όταν γίνει κλικ στην πράσινη σημαία
πήγαινε στη θέση x: 0 y: -120
για πάντα
εάν ⟨πλήκτρο δεξί βέλος πατήθηκε;⟩ τότε
άλλαξε x κατά 10
εάν ⟨πλήκτρο αριστερό βέλος πατήθηκε;⟩ τότε
άλλαξε x κατά -10
Το «για πάντα» ξαναρωτά τα πλήκτρα δεκάδες φορές το δευτερόλεπτο. Κάθε φορά που βρίσκει το δεξί βέλος πατημένο, μετακινεί τη γάτα 10 βήματα.
Μεταβλητές: το σκορ
Μια μεταβλητή είναι ένα κουτί στη μνήμη με όνομα, που κρατά μία τιμή η οποία μπορεί να αλλάζει. Στο Scratch τη φτιάχνεις από την κατηγορία Μεταβλητές, με το κουμπί «Φτιάξε μια μεταβλητή», και της δίνεις όνομα, π.χ. σκορ. Αν τσεκάρεις το κουτάκι δίπλα της, η τιμή της φαίνεται στη σκηνή.
| Τουβλάκι | Τι κάνει | Στον ψευδοκώδικα |
|---|---|---|
| «όρισε σκορ σε 0» | βάζει στο κουτί την τιμή 0, ό,τι κι αν είχε | σκορ ← 0 |
| «άλλαξε σκορ κατά 1» | προσθέτει 1 σε ό,τι έχει ήδη | σκορ ← σκορ + 1 |
| «άλλαξε ζωές κατά -1» | αφαιρεί 1 | ζωές ← ζωές − 1 |
Το στρογγυλό τουβλάκι «σκορ» δίνει την τιμή της μεταβλητής, για να τη χρησιμοποιήσεις σε μια συνθήκη, π.χ. «εάν ⟨σκορ = 10⟩ τότε πες Κέρδισες!».
Ένα μικρό παιχνίδι: πιάσε το μήλο
Ένα μήλο πέφτει από ψηλά. Αν το πιάσει η γάτα, παίρνεις πόντο και το μήλο ξαναπέφτει από άλλο σημείο. Το σενάριο του μήλου:
όταν γίνει κλικ στην πράσινη σημαία
όρισε σκορ σε 0
πήγαινε στη θέση x: (επίλεξε τυχαίο από -200 έως 200) y: 170
για πάντα
άλλαξε y κατά -5
εάν ⟨αγγίζει Γάτα;⟩ τότε
άλλαξε σκορ κατά 1
πήγαινε στη θέση x: (επίλεξε τυχαίο από -200 έως 200) y: 170
εάν ⟨(θέση y) < -170⟩ τότε
πήγαινε στη θέση x: (επίλεξε τυχαίο από -200 έως 200) y: 170
Εδώ δουλεύουν μαζί και οι τρεις δομές: ακολουθία στην αρχή, επανάληψη με το «για πάντα», και επιλογή με τα δύο «εάν». Το δεύτερο «εάν» ξαναστέλνει το μήλο πάνω όταν φτάσει στο κάτω μέρος χωρίς να πιαστεί.
Ας το κάνουμε μαζί
Παράδειγμα 1
Φτιάξε ένα κουίζ: η γάτα ρωτά «Πόσο κάνει 7 × 8;». Αν απαντήσεις σωστά λέει «Σωστό!» και κερδίζεις πόντο, αλλιώς λέει τη σωστή απάντηση.
Δοκίμασέ το πρώτα. Μετά δες τη λύση.
Παράδειγμα 2
Στο παιχνίδι με το μήλο, κάποιος έγραψε το σενάριο χωρίς το «πήγαινε στη θέση» μέσα στο πρώτο «εάν». Όταν η γάτα πιάνει το μήλο, το σκορ ανεβαίνει από 0 σε 7 με μία επαφή. Γιατί;
Δοκίμασέ το πρώτα. Μετά δες τη λύση.
Ασκήσεις
Πρώτα ερωτήσεις με επιλογές: διαλέγεις, πατάς «Έλεγξε» και μαθαίνεις αμέσως αν το βρήκες και γιατί. Στο τέλος, λίγες ασκήσεις χωρίς επιλογές — εκεί κρύβεται μόνο η απάντηση.
Τα κατάφερες;
- Να χρησιμοποιείς τα «εάν … τότε» και «εάν … τότε … αλλιώς» με συνθήκες από τους Αισθητήρες και τους Τελεστές.
- Να εξηγείς γιατί ένας έλεγχος πρέπει να μπει μέσα σε «για πάντα» για να γίνεται συνεχώς.
- Να φτιάχνεις μεταβλητή και να την αλλάζεις με «όρισε … σε» και «άλλαξε … κατά».
- Να γράφεις ένα μικρό παιχνίδι με έλεγχο από το πληκτρολόγιο και σκορ, και να βρίσκεις τα λάθη του.
Λύσε τις ασκήσεις πιο πάνω και θα δεις εδώ πού στέκεσαι.