Robot vezérlés
Van egy robotunk , amely az F, J, L, B parancsokra hallgat. Az F hatására felfele, a J hatására jobbra, az L hatására le, a B hatására balra megy a robot egészen addig, míg nem ütközik falba, akkor megáll és várja a következő parancsot. A pályát fal veszi körül, illetve a pályán belül is vannak falak (fekete négyzetek).
Amennyiben a robot olyan mezőre érkezik, amelyik egy nyilat tartalmaz, köteles megváltoztatni az irányát a nyíl irányába, és addig folytatja tovább útját, míg falba nem ütközik. Amennyiben egy teleportálás () mezőre érkezik, akkor a másik teleport mezőn fog előbukkanni, és ugyanolyan irányba folytatja az útját, mint korábban, amennyiben ez lehetséges. Ha ez nem lehetséges, mert ott akadály van, akkor ellentétes irányba mozog tovább a következő falig.
Lássunk egy példát:
Ha a szaggatott vonallal jelölt útvonalon szeretnénk végig vezetni a robotot a célig (), akkor a következő kódot kell kiadnunk:
JLJ
A pályát alkotó cellákra az oszlopokban látható betűvel és a sorokban látható számokkal tudunk hivatkozni.
pl. Az A1 cellában van a robot, a J10 cellában a cél. Az E5 cellában van egy teleportáló, az I8 cellában a lefele nyíl.
Most nézzük az alábbi pályát!
Melyik cellába kerül a robot az alábbi kódok hatására?
Kérdés
Kód
Cella
A.
LBFB
B.
LBLF
C.
LBLLJ
Milyen kódok kiadásával lehet eljuttatni a robotot megadott cellába? A legrövidebb utat találd meg! Figyelj arra, hogy a robotnak meg kell állnia a cellában, nem elég áthaladnia rajta!
Kérdés
Cella
Kód
D.
D7
E.
B8
F.
J10
Hivatalos megoldás (HTML)
Van egy robotunk , amely az F, J, L, B parancsokra hallgat. Az F hatására felfele, a J hatására jobbra, az L hatására le, a B hatására balra megy a robot egészen addig, míg nem ütközik falba, akkor megáll és várja a következő parancsot. A pályát fal veszi körül, illetve a pályán belül is vannak falak (fekete négyzetek).
Amennyiben a robot olyan mezőre érkezik, amelyik egy nyilat tartalmaz, köteles megváltoztatni az irányát a nyíl irányába, és addig folytatja tovább útját, míg falba nem ütközik. Amennyiben egy teleportálás () mezőre érkezik, akkor a másik teleport mezőn fog előbukkanni, és ugyanolyan irányba folytatja az útját, mint korábban, amennyiben ez lehetséges. Ha ez nem lehetséges, mert ott akadály van, akkor ellentétes irányba mozog tovább a következő falig.
Lássunk egy példát:
Ha a szaggatott vonallal jelölt útvonalon szeretnénk végig vezetni a robotot a célig ( JLJ A pályát alkotó cellákra az oszlopokban látható betűvel és a sorokban látható számokkal tudunk hivatkozni. pl. Az A1 cellában van a robot, a J10 cellában a cél. Az E5 cellában van egy teleportáló, az I8 cellában a lefele nyíl. |
Most nézzük az alábbi pályát!
Melyik cellába kerül a robot az alábbi kódok hatására?
Kérdés | Kód | Cella |
A. | LBFB | |
B. | LBLF | |
C. | LBLLJ |
Milyen kódok kiadásával lehet eljuttatni a robotot megadott cellába? A legrövidebb utat találd meg! Figyelj arra, hogy a robotnak meg kell állnia a cellában, nem elég áthaladnia rajta!
Kérdés | Cella | Kód |
D. | D7 | |
E. | B8 | |
F. | J10 |
Egy robot pálya kirajzolása lesz a feladatod. Készítsd el a pálya(oszlop,sor,méret) eljárást, amely kirajzolja a megfelelő pályát! Paraméterként a pálya oszlopainak és sorainak számát, valamint a pályát alkotó négyzetek oldalhosszát adjuk meg. Az egyes sorok mögött tüntesd fel a sorszámot, az oszlopok felett pedig az oszlop betűjelét A-tól kezdve! Segítség! Pythonban a write(″A″) parancs az A betűnek felel meg, a write(″B″) parancs a B betűnek, és így tovább. A pálya jobb alsó cellájába kell a célt kirajzolni! Készíts egy robot(oszlop,sor,méret) eljárást, amely az adott helyen kirajzolja a robotot
! Készíts egy fal(oszlop,sor,méret) eljárást, amely a kirajzolt pálya adott helyét kitölti feketével!
pálya(10,6,40) robot(9,1,40) fal(1,3,40) fal(10,1,40) fal(10,5,40) | |
Mintafuttatás | |
A. B4 4 pont
B. F4 4 pont
C. E4 5 pont
D. JLBLJF 12 pont
Annyiszor 2 pont, ahány kód egyezik a mintamegoldással balról jobbra vizsgálva. Vagyis, ha J-vel kezdődik a kód 2 pont, ha JL-el, akkor 4 pont, ha JLB-vel, akkor 6 pont, és így tovább. Max pont akkor adható, ha a megoldás pontosan a mintamegoldással egyezik meg.
E. JFJF 8 pont
(pontozási elv ugyanaz, mint a D. pont esetén, de minden egyezés 2 pontot ér)
F. JLJFJL 12 pont
(pontozási elv ugyanaz, mint a D. pont esetén)
$magyarázat kellene
Majdnem azonos az előző korcsoport feladatával, kivéve a számjegyek és betűk kiírását. Ezeket a megfelelő helyről kell meghívni.
eljárás oszlopcímke :o :m
előre :m/3
ismétlés :o [tollatfel címke jel 64+hányadik előre :m]
hátra :m*:o hátra :m/3 balra 90 hátra 20 jobbra 90 tollatle
vége
eljárás sorcímke :szám :m
tollatfel előre 10 jobbra 90 előre :m/3 címke :szám
hátra :m/3 balra 90 hátra 10 tollatle
vége
A. Van pálya eljárás 1 pont
B. A pálya 10 1 40 eljárás kirajzol egy 10 oszlopból és 1 sorból álló négyzethálót; ahol a négyzetek oldalhossza 40; a sor után az 1-es szám látható; minden cella felett a betűk helyesen látszódnak 2+1+1+3 pont
C. A pálya 1 10 40 eljárás kirajzol egy 10 sorból és 1 oszlopból álló négyzethálót; ahol a négyzetek oldalhossza 40; minden sor után a megfelelő sorszám látható; az oszlop felett az A betű van 2+1+3+1 pont
D. A pálya 10 6 40 eljárás kirajzol egy 10 oszlopból és 6 sorból álló négyzethálót; ahol a négyzetek oldalhossza 40; a sorindexek helyesek; oszlopindexek helyesek 2+1+2+2 pont
E. A pálya (négyzetrács) kirajzolása helyes a 30-as méretben; illetve 50-es méretben; a sor és oszlopindexek rendben megjelennek 3+3+2 pont
F. Van robot eljárás 1 pont
G. A robot két pontból (körből) áll; a nagyobb pont (vagy kitöltött kör) tetején egy kisebb pont (vagy kitöltött kör) van; a robot pontosan a paraméterben megadott helyre kerül (függetlenül a korábban kiadott parancsok utáni teknőc pozíciótól); a pozícionálás 30-as és 50-es méretű pályán is jól működik 2+3+3+3 pont
H. A cél két koncentrikus körből áll; a pálya utolsó cellájában 3+2 pont
I. Van fal eljárás 1 pont
J. A fal 1 2 40 eljárás befesti az első oszlop második celláját (csak akkor adható meg, ha az eljárás mindig az adott cellát tölti ki, függetlenül a korábban kiadott parancsok utáni teknőc pozíciótól) 3 pont
K. A fal 5 1 40 eljárás befesti az első sor ötödik celláját (csak akkor adható meg, ha az eljárás mindig az adott cellát tölti ki, függetlenül a korábban kiadott parancsok utáni teknőc pozíciótól) 3 pont
L. A fal eljárás akkor is jól színez, amikor nem 40-es, hanem 30-as méretben; illetve 50-es méretben kirajzolt pályán teszteljük (csak akkor adható meg, ha az eljárás mindig az adott cellát tölti ki, függetlenül a korábban kiadott parancsok utáni teknőc pozíciótól) 3+3 pont