1 Δπαστηπιότητα 1 - ανάπτςξη, μεταγλώττιση, αποσυαλμάτωση και εκτέλεση ππογπάμματορ Κάζε πξσί ν Karel μππλάεη ζην θξεβάηη ηνπ όηαλ έλα ξνκπόη-εθεκεξηδνπώιεο ηνπ πεηάεη ηελ εθεκεξίδα, πνπ αλαπαξηζηάλεηαη κε έλα beeper, ζηελ κπξνζηηλή βεξάληα ηνπ ζπηηηνύ ηνπ. Πξνγξακκάηηζε ηνλ Karel ώζηε λα καδέςεη ηελ εθεκεξίδα θαη λα ηελ θέξεη πίζσ ζην θξεβάηη ηνπ. Η αξρηθή θαηάζηαζε θαίλεηαη παξαθάησ, ελώ ζηελ ηειηθή θαηάζηαζε ν Karel πξέπεη λα βξίζθεηαη πίζσ ζην θξεβάηη ηνπ (ίδηα δηαζηαύξσζε & θαηεύζπλζε) κε ηελ εθεκεξίδα. 1 task 2 { 3 Primitive_Robot Karel ( 3, 4, West, 0 ); 4 Karel.turnLeft(); 5 Karel.turnLeft(); 6 Karel.turnLeft(); 7 Karel.move(); 8 Karel.move(); 9 Karel.turnLeft(); 10 Karel.move(); 11 Karel.move(); 12 Karel.turnLeft(); 13 Karel.move(); 14 Karel.move(); 15 Karel.turnLeft();
2 16 Karel.move(); 17 Karel.pickBeeper(); 18 Karel.turnLeft(); 19 Karel.move(); 20 Karel.turnLeft(); 21 Karel.move(); 22 Karel.turnLeft(); 23 Karel.turnLeft(); 24 Karel.turnLeft(); 25 Karel.move(); 26 Karel.turnLeft(); 27 Karel.turnLeft(); 28 Karel.turnLeft(); 29 Karel.move(); 30 Karel.move(); 31 Karel.turnLeft(); 32 Karel.turnLeft(); 33 Karel.turnLeft(); 34 Karel.move(); 35 Karel.move(); 36 Karel.turnLeft(); 37 Karel.turnLeft(); 38 Karel.turnLeft(); 39 } Εθηειέζηε ηα παξαθάησ βήκαηα, αθνινπζώληαο ηηο νδεγίεο πνπ ππάξρνπλ ζηε 2 ε ζηήιε ηνπ πίλαθα:
3
4
5
6
7 Δπαστηπιότητα 2 Σα ηκήκαηα ηνίρνπ ζηελ Εικόνα 1 αλαπαξηζηάλνπλ έλα βνπλό. Γξάςε έλα πξόγξακκα γηα ηε δεκηνπξγία ελόο ξνκπόη (ζηηγκηόηππνπ/αληηθεηκέλνπ) ηεο θιάζεο Primitive_Robot θαη ηελ απνζηνιή ησλ θαηάιιεισλ κελπκάησλ (ή αιιηώο ηελ θιήζε ησλ θαηάιιεισλ κεζόδσλ), έηζη ώζηε ην ξνκπόη λα αλέβεη ζηελ θνξπθή ηνπ βνπλνύ θαη λα ηνπνζεηήζεη κηα ζεκαία, πνπ αλαπαξηζηάλεηαη κε έλα beeper. ηε ζπλέρεηα ην ξνκπόη πξέπεη λα θαηέβεη από ηελ άιιε κεξηά ηνπ βνπλνύ. Θπκήζνπ όηη έλα ξνκπόη ηεο θιάζεο Primitive_Robot δελ είλαη έλα super-ξνκπόη γηα λα πεδήμεη κε έλα άικα ζηελ θνξπθή, λα ηνπνζεηήζεη ηελ ζεκαία θαη λα πεδήμεη θάησ κε έλα άικα. Όπσο θαίλεηαη ζηελ ηειηθή θαηάζηαζε ην ξνκπόη πξέπεη λα αθνινπζήζεη ηε δηαδξνκή ηνπ βνπλνύ αλεβαίλνληαο θαη θαηεβαίλνληαο. Δπαστηπιότητα 3 Επηζηξέθνληαο ζην ζπίηη από ην super market, ε ζαθνύια ηνπ ξνκπόη ηεο Εικόνας 2 ζθίζηεθε θαη θάπνηα από ηα ςώληα ηνπ έπεζαλ ζην δξόκν. Η αξρηθή θαηάζηαζε όηαλ ην ξνκπόη αλαθάιπςε όηη ε ζαθνύια ηνπ έρεη ζρηζηεί θαίλεηαη ζηελ Εικόνα 2. Γξάςε έλα πξόγξακκα γηα ηε δεκηνπξγία ελόο ξνκπόη (ζηηγκηόηππνπ/αληηθεηκέλνπ) ηεο θιάζεο Primitive_Robot θαη ηελ απνζηνιή ησλ θαηάιιεισλ κελπκάησλ (ή αιιηώο ηελ θιήζε ησλ θαηάιιεισλ κεζόδσλ), έηζη ώζηε ην ξνκπόη λα ζπγθεληξώζεη όια ηα πξντόλησλ (αλαπαξηζηάλνληαη κε beepers) πνπ έπεζαλ από ηελ ζαθνύια θαη λα επηζηξέςεη ζηελ ζέζε πνπ ήηαλ όηαλ αλαθάιπςε ηελ δηαξξνή.
8 Δπαστηπιότητα 4 Η νκάδα ησλ ξνκπόη ηεο Εικόνας 3 απνηειεί έλα ζπλεξγείν πνπ ζηξώλεη πιαθάθηα. Η απνζηνιή ηνπο ζηε ζπγθεθξηκέλε πεξίπησζε είλαη λα ζηξώζνπλ πιαθάθηα (beepers) ζε έλα θήπν δεκηνπξγώληαο έλα δηάδξνκν κε ην κέγεζνο θαη ην ζρήκα πνπ θαίλεηαη ζηελ ηειηθή θαηάζηαζε ηεο Εικόνας 3. Γξάςε έλα πξόγξακκα γηα ηε δεκηνπξγία ηεζζάξσλ ξνκπόη (ζηηγκηόηππσλ/αληηθεηκέλσλ) ηεο θιάζεο Primitive_Robot θαη ηελ απνζηνιή ζηε ζπλέρεηα ησλ θαηάιιεισλ κελπκάησλ (ή αιιηώο ηελ θιήζε ησλ θαηάιιεισλ κεζόδσλ) ζε θάζε έλα από ηα ξνκπόη γηα ηελ εθηέιεζε απηήο ηεο απνζηνιήο. Σειεηώλνληαο ηελ απνζηνιή ηα 4 ξνκπόη δελ πξέπεη λα βξίζθνληαη πάλσ ζην δηάδξνκν κε ηα πιαθάθηα (όρη όκσο απαξαίηεηα ζηηο ζέζεηο πνπ θαίλνληαη ζηελ ηειηθή θαηάζηαζε ηεο Εικόνας 3). Δπαστηπιότητα 5 Μηα νκάδα 4 ξνκπόη πξνπνλείηαη γηα ην αγώληζκα ηεο ζθπηαινδξνκίαο. Η δηαδξνκή πνπ αθνινπζνύλ ηα ξνκπόη θαίλεηαη ζηελ Εικόνα 4. πγθεθξηκέλα: Σνλ αγώλα μεθηλάεη ην ξνκπόη πνπ βξίζθεηαη ζηε δηαζηαύξσζε (3, 3) έρνληαο ηε ζθπηάιε (beeper) ζηελ ηζάληα ηνπ. Όηαλ ην ξνκπόη θηάζεη ζηε δηαζηαύξσζε (3, 7) αθήλεη θάησ ηε ζθπηάιε Σν 2 ξνκπόη πνπ βξίζθεηαη ζηε δηαζηαύξσζε (3, 7) ζεθώλεη ηε ζθπηάιε θαη ζπλερίδεη ηε δηαδξνκή κέρξη ηε δηαζηαύξσζε (6, 8) νπόηε αθήλεη θάησ ηε ζθπηάιε. Ο αγώλαο ζπλερίδεηαη κε ηνλ ίδην ηξόπν θαη ηειεηώλεη όηαλ ην 4 ξνκπόη θηάζεη ζηε δηαζηαύξσζε (3, 3) κε ηε ζθπηάιε ζηελ ηζάληα ηνπ. Γξάςε έλα πξόγξακκα γηα ηε δεκηνπξγία ηεζζάξσλ ξνκπόη (ζηηγκηόηππσλ/αληηθεηκέλσλ) ηεο θιάζεο Primitive_Robot θαη ηελ απνζηνιή ζηε ζπλέρεηα ησλ θαηάιιεισλ κελπκάησλ (ή αιιηώο ηελ θιήζε ησλ θαηάιιεισλ κεζόδσλ) ζε θάζε έλα από ηα ξνκπόη γηα ηελ εθηέιεζε απηήο ηεο απνζηνιήο. 92
9 Εικόνα 4. Το αγώνισμα της σκσταλοδρομίας. Δπαστηπιότητα 6 Σν ξνκπόη ηεο Εικόνας 5 πξνπνλείηαη γηα ηνπο Οιπκπηαθνύο αγώλεο ησλ Ρνκπόη. Έλα από ηα αγσλίζκαηα απαηηεί από ηνπο αζιεηέο λα θηλνύληαη γύξσ από δύν beepers ζρεκαηίδνληαο νρηάξηα, όπσο θαίλεηαη ζηελ Εικόνα 5. Γξάςε έλα πξόγξακκα πνπ θαζνδεγεί ην ξνκπόη ζηελ εθηέιεζε απηνύ ηνπ αγσλίζκαηνο όζν ην δπλαηό γξεγνξόηεξα (εθηειώληαο όζν ην δπλαηό ιηγόηεξεο εληνιέο). Σν ξνκπόη πξέπεη λα ζηακαηήζεη ζην ίδην ζεκείν από όπνπ μεθίλεζε θαη λα βιέπεη πξνο ηελ ίδηα θαηεύζπλζε. Δπαστηπιότητα 7 Σν ζπλεξγείν ησλ 4 ξνκπόη ηεο Εικόνας 6 αλέιαβε λα μειώζεη ηα ραιαζκέλα πιαθάθηα ελόο δηαδξόκνπ πνπ ππάξρεη ζηνλ θήπν ελόο μελνδνρείνπ. Κάζε έλα από ηα 4 ξνκπόη μεθηλάεη από ηε ζέζε πνπ θαίλεηαη ζηελ Εικόνα 6 θαη μειώλεη 3 πιαθάθηα (beepers), ηα νπνία ηνπνζεηεί ζηελ ηζάληα πνπ θνπβαιάεη καδί ηνπ. Γξάςε έλα πξόγξακκα γηα ηε δεκηνπξγία ηεζζάξσλ ζηηγκηόηππσλ/αληηθεηκέλσλ ηεο θιάζεο Primitive_Robot, δειαδή ηεζζάξσλ ξνκπόη κε ηηο βαζηθέο δπλαηόηεηεο, θαη ηελ απνζηνιή ζηε ζπλέρεηα ησλ θαηάιιεισλ κελπκάησλ γηα ηελ εθηέιεζε απηήο ηεο απνζηνιήο.
10