Robotas moka piešti
Šioje pamokoje sužinosi, kaip išmokyti robotą piešti.
Komanda PIEŠK liepia robotui nuleisti pieštuką. Judėdamas pirmyn ar atgal robotas ims piešti.
Komanda NEPIEŠK liepia robotui pakelti pieštuką.
Komanda SPALVA "<kodas>" keičia pieštuko spalvą.
Spalvų kodus gali rasti čia.
Pavyzdys nr. 1. Robotas piešia kvadratą
PIEŠK
SPALVA "#F39C12"
KARTOK 4 [
PIRMYN 130
DEŠINĖN
]
Pavyzdys nr. 2. Robotas piešia trikampį ir apskritimą
TAI TRIKAMPIS :ilgis [
PIEŠK
KARTOK 3 [
PIRMYN :ilgis
KAIRĖN 120
]
NEPIEŠK
]
TAI APSKRITIMAS :spindulys [
PIEŠK
:x = 2 * 3.14 * :spindulys / 360
KARTOK 360 [
PIRMYN :x
KAIRĖN 1
]
NEPIEŠK
]
TRIKAMPIS 120
PIRMYN 60
APSKRITIMAS 34
Pavyzdys nr. 3. Robotas – dailininkas
TAI ORNAMENTAS :žingnis :kampas :dydis [
PIEŠK
SPALVA rinkis @["GREEN", "RED", "BLUE", "ORANGE"]
JEIGU :žingnis > 100 [STOK]
PIRMYN :žingnis * :dydis
DEŠINĖN :kampas
ORNAMENTAS :žingnis + 2 :kampas :dydis
]
ORNAMENTAS 1 93 3
Spausk „Spręsti“ ir išbandyk šias komandas!
Pirma pamoka. Robotas juda į priekį ir atgal
Pirmoji komanda, kurią išmoksi, yra PIRMYN. Ji nurodo robotui važiuoti į priekį. Taip pat gali nurodyti, kiek langelių robotas turi važiuoti.
Pavyzdžiui, įvesk PIRMYN 3 ir tavo robotas važiuos tris langelius į priekį.
Kartais gali tekti važiuoti atgal. Komanda ATGAL yra skirta judėti atbulomis. Pavyzdžiui, įvesk ATGAL 2 ir tavo robotas važiuos du langelius atgal.
Pavyzdys nr. 1
PIRMYN 3
Pavyzdys nr. 2
ATGAL 2
Spausk „Spręsti“ ir išbandyk šias komandas!
Antra pamoka. Robotas moka pasisukti
Dabar išmoksi pasukti robotą į kairę ir dešinę. Tam yra naudojamos komandos KAIRĖN ir DEŠINĖN.
Taip pat gali nurodyti, kokiu kampu robotas turi pasisukti. Pavyzdžiui, KAIRĖN 180. Galimi kampai: 90, 180, 270.
Pavyzdys nr. 1
PIRMYN 3
DEŠINĖN
PIRMYN
Pavyzdys nr. 2
PIRMYN
DEŠINĖN
PIRMYN
KAIRĖN 180
Metas išbandyti naujas komandas!
Trečia pamoka. Robotas yra varomas energija
Kiekvienas roboto veiksmas eikvoja energiją. Kai roboto energija išsenka, jis sustoja.
Pastaba. Skirtingose užduotyse roboto energijos lygis gali skirtis.
Pavyzdys nr. 1. Robotas sustojo
PIRMYN 3
DEŠINĖN
PIRMYN
DEŠINĖN
PIRMYN
0
Pavyzdys nr. 2. Gerai padirbėta
PIRMYN
DEŠINĖN
PIRMYN
3
Ketvirta pamoka. Robotas kartoja komandas
Susipažink su komanda KARTOK X [<komandų seka>]. X tai skaičius nurodantis robotui, kiek kartų kartoti komandų seką. Komandų seka rašoma laužtiniuose skliaustuose.
Pavyzdys nr. 1. Robotas važiuoja ratu
KARTOK 4 [
PIRMYN 2
KAIRĖN
]
Pavyzdys nr. 2. Robotas nuvažiuoja ir grįžta
KARTOK 2 [
PIRMYN 4
DEŠINĖN 180
]
Penkta pamoka. Kurk naujas komandas
Vietoj ilgų komandų sekų gali sukurti naujas komandas, kurios palengvins programavimą.
Norėdamas sukurti naują komandą, naudok tokią sintaksę: TAI <naujos_komandos_pavadinimas> [<komandų seka>].
Naują komandą gali patobulinti pridėdamas parametrus – laisvai kintančias reikšmes. Parametrai leidžia prisitaikyti prie skirtingų situacijų. Pavyzdžiui, komandos PIRMYN parametras nurodo, kiek kartų robotas turi važiuoti į priekį.
Norėdamas sukurti naują komandą su parametru, naudok tokią sintaksę: TAI <naujos_komandos_pavadinimas> :<parametro1_pavadinimas> :<parametro2_pavadinimas> ir t.t. [<komandų seka>].
Pavyzdys nr. 1. Nauja komanda LIPK
TAI LIPK [
PIRMYN
DEŠINĖN
PIRMYN
KAIRĖN
]
KARTOK 4 [ LIPK ]
Pavyzdys nr. 2. Nauja komanda LIPK su parametru
TAI LIPK :n_kartų [
KARTOK :n_kartų [
PIRMYN
DEŠINĖN
PIRMYN
KAIRĖN
]
]
LIPK 4
Šešta pamoka. Roboto atmintis ir jutikliai
Atmintis
Robotas turi atmintį, kuri yra tarsi komoda su stalčiukais. Stalčiukuose gali būti saugoma informacija. Norint išsaugoti konkrečius duomenis, pirmiausia reikia pavadinti stalčiuką, o tada į jį įdėti informaciją. Pavyzdžiui:
:metai = 2023
:spalva = "geltona"
Stalčiuko pavadinimas – tai informacijos adresas. Jis rašomas taip :<pavadinimas>
Trečioje pamokoje sužinojai, kad robotas yra varomas energija. Bet kada patikrinęs adresą :ENERGIJA,
pamatysi, kiek energijos liko robotui.
Jutikliai
Taip pat robotas turi specialius jutiklius, panašius į akis, išdėstytus priekyje, gale, kairėje ir dešinėje.
Naudodamas jutiklius robotas geba atpažinti objektus.
Jutiklių duomenys yra saugomi šiuose adresuose: :PRIEKYJE, :GALE, :KAIRĖJE ir :DEŠINĖJE.
Objektų, kuriuos atpažįsta robotas, kodai yra saugomi šiuose adresuose:
:LAISVA = 0
:SIENA = 1
:ŽVAIGŽDĖ = 2
:ĮKROVIKLIS = 3
Pavyzdys nr. 1. Dešinėje yra žvaigždė
Roboto atmintyje, kurios adresas :DEŠINĖJE, bus įrašytas objektas :ŽVAIGŽDĖ
:DEŠINĖJE = :ŽVAIGŽDĖ
Pavyzdys nr. 2. Priekyje yra įkroviklis
Roboto atmintyje, kurios adresas :PRIEKYJE, bus įrašytas objektas :ĮKROVIKLIS
:PRIEKYJE = :ĮKROVIKLIS
Pastaba. Įkroviklis padidina roboto energijos lygį 10-čia vienetų.
Septinta pamoka. Robotas priima sprendimus
Iki šiol tu nuspręsdavai, ką robotas turi daryti. Tačiau robotas ir pats gali priimti sprendimus.
Jeigu robotui reikia rinktis iš dviejų veiksmų, tuomet naudok JEIGU ir KITU ATVEJU komandas.
Jeigu reikia rinktis iš daugiau nei dviejų veiksmų, tuomet naudok KAI komandą.
Taip pat robotas gali kartoti komandas, tik esant tam tikroms sąlygoms. Jeigu
nori, kad robotas kartotų veiksmą esant konkrečioms sąlygoms, naudok komandą KOL.
Pavyzdys nr. 1. Robotas renkasi iš dviejų veiksmų
Pavyzdžiui, šis programos kodas išmoko robotą eiti kairėn, kad išvengtų sienos.
JEIGU :PRIEKYJE YRA :SIENA [
KAIRĖN
PIRMYN
]
KITU ATVEJU [
PIRMYN
]
Pavyzdys nr. 2. Robotas renkasi iš daugiau nei dviejų veiksmų
Pavyzdžiui, šis programos kodas išmoko robotą apeiti kliūtis.
KARTOK 3 [
KAI [
:PRIEKYJE YRA :LAISVA [ PIRMYN ]
:DEŠINĖJE YRA :LAISVA [ DEŠINĖN PIRMYN ]
:KAIRĖJE YRA :LAISVA [ KAIRĖN PIRMYN ]
:GALE YRA :LAISVA [ ATGAL ]
KITU ATVEJU [ "ŠAKĖS!" ]
]
]
Pavyzdys nr. 3. Robotas kartoja veiksmą, esant konkrečioms sąlygoms
Šis programos kodas nurodo robotui važiuoti į priekį tol, kol pasibaigs energija ir kol kairėje bus siena.
KOL :ENERGIJA > 0 [
KOL :KAIRĖJE YRA :SIENA [
PIRMYN
]
KAIRĖN PIRMYN
]
0
Aštunta pamoka. Labirintas
Robotas atsidūrė labirinte. Šioje pamokoje išmokysi robotą, kaip iš jo ištrūkti. Tai visai nesudėtinga, jei žinai Vienos rankos taisyklę. Ji tokia – vieną ranką pridėk prie labirinto sienos ir neatitrauk. Jei eisi palei sieną, neatitraukdamas rankos, tu tikrai rasi išėjimą!
Vienos rankos taisyklę gali aprašyti taip:
KOL :ENERGIJA > 0 [
KAI [
GALI_PIRMYN [ PIRMYN ]
GALI_DEŠINĖN [ DEŠINĖN PIRMYN ]
KITU ATVEJU [ KAIRĖN ]
]
]
Bet tau pačiam reikės aprašyti dvi naujas komandas GALI_PIRMYN ir GALI_DEŠINĖN. Sėkmės!