Rajzolás (I, II, III, IV)
Név | Rövidítés | Típus | Paraméterek | Leírás
--- | --- | --- | --- | ---
Név | Típus
elõre :m | e | U | m | szám | A teknőc :m lépésnyit lép előre.
hátra :m | h | U | m | szám | A teknőc :m lépésnyit lép hátra.
jobbra :a | j | U | a | szám | A teknőc :a foknyit fordul jobbra.
balra :a | b | U | a | szám | A teknőc :a foknyit fordul balra.
irány |  | K |  | Értéke a teknőc jelenlegi fordulási szöge (fok). 0 - "felfelé", óramutató járásával megegyező irányba növekszik
irány! :d |  | U | d | szám | A teknőc jelenlegi fordulási szöge :d fok lesz. 0 - "felfelé", óramutató járásával megegyező irányba növekszik
poz |  | K |  | Értéke a teknőc jelnlegi pozíciója listaként: [x y]
poz! :p |  | U | p | számlista | A teknőc a megadott :p pozícióra ugrik (a két pont közt vonalat rajzolva, ha a toll lent van). :p két elemű: [x y]
xpoz |  | K |  | Értéke az aktuális X pozíció.
xpoz! :x |  | U | x | szám | A teknőc átugrik az X tengelyen a megadott :x koordinátára (Y tengelyen marad). A két pont között vonalat húz, ha a toll lent van.
ypoz |  | K |  | Értéke az aktuális Y pozíció.
ypoz! :y |  | U | y | szám | A teknőc átugrik az Y tengelyen a megadott :y koordinátára (X tengelyen marad). A két pont között vonalat húz, ha a toll lent van.
törölképernyõ | törölkép | U |  | A teknőc törli a rajzlapot, majd a kezdőpontra (0 0) ugrik (nem húz vonalat).
haza |  | U |  | A teknőc a kezdőpontra (0 0) ugrik (nem húz vonalat).
címke :sz |  | U | sz | szöveg | A teknőc kirajzolja a megadott :sz szöveget. Kezdő- és végpozíció: bal felső sarok
címke2 :sz |  | U | sz | szöveg | A teknőc kirajzolja a megadott :sz szöveget. Kezdőpozíció: bal felső sarok Végpozíció: jobb felső sarok
lenyomat |  | U |  | A teknőc készít egy lenyomatot saját magáról.
tölt |  | U |  | A teknőc kitölti a tatrományt az aktuális töltőszínnel.
kör :d |  | U | d | szám | A teknőc rajzol egy kört, amelynek középpontja az aktuális pozíció, átmérője :d.
töltöttkör :d |  | U | d | szám | A teknőc rajzol egy az aktuális töltőszínnel kitöltött kört, amelynek középpontja az aktuális pozíció, átmérője :d.
pontméret :d |  | U | d | szám | A teknőc rajzol egy az aktuális tollszínnel kitöltött kört, amelynek középpontja az aktuális pozíció, átmérője :d.
ellipszis :el |  | U | el | számlista | A teknőc rajzol egy ellipszist a megadott lista alapján, melynek középpontja az aktuális pozíció. :el felépítése: [a b d1 d2] (d1 és d2 opcionális). Az ellipszis szélessége és magassága a és b. Ha d1 és d2 meg van adva, az ellipszis a d1 szögtől a d2 szögig lesz megrajzolva.
töltöttellipszis :el |  | U | el | számlista | A teknőc rajzol egy az aktuális töltőszínnel kitöltött ellipszist a megadott lista alapján, melynek középpontja az aktuális pozíció. :el felépítése: [a b d1 d2] (d1 és d2 opcionális). Az ellipszis szélessége és magassága a és b. Ha d1 és d2 meg van adva, az ellipszis a d1 szögtől a d2 szögig lesz megrajzolva.
sokszög :szl |  | U | szl | számlista | A teknőc rajzol egy az aktuális töltőszínnel kitöltött sokszöget az :szl lista alapján. A teknőc sorban halad a lista elemein: Páratlan sorszámú elemeknél előrehalad a megadott értékkel. Páros sorszámú elemeknél jobbra fordul a megadott értékkel. A végén visszaugrik a kezdőpozícióra. Például egy 10 és 20 oldalhosszúságú téglalap listája: [10 90 20 90 10]
Toll (I, II, III, IV)
Név | Rövidítés | Típus | Paraméterek | Leírás
Név | Típus
toll |  | K |  | A toll aktuális állapota (szöveg). Lehetséges értékei az állapotnak megfelelően: "tollatle "tollatfel "tollradír "tollváltó
tollatle | tl | U |  | A toll "tollatle állapotba kerül. A teknőc rajzol mozgás közben.
tollatfel | tf | U |  | A toll "tollatfel állapotba kerül. A teknőc nem rajzol mozgás közben.
tollradír | trd | U |  | A toll "tollradír állapotba kerül. A teknőc kiradírozza a rajzolt pontokat, ahol halad.
tollszín | tsz | K |  | Értéke a toll aktuális színe (szöveg vagy RGB-lista).
tollszín! :sz | tsz! | U | sz | szöveg vagy RGB-lista | Átállítja a toll aktuális színét és töltőszínét :sz-re.
töltõszín! :sz | tlsz! | U | sz | szöveg vagy RGB-lista | Átállítja a toll töltőszínét :sz-re.
tollvastagság | tv | K |  | Értéke a toll aktuális vastagsága.
tollvastagság! :v | tv! | U | v | szám | Átállítja a toll aktuális vastagságát :v-re.
pontszín |  | K |  | Értéke annak a pontnak a színe, amelyen a teknőc áll.
Ciklusok (I, II, III, IV)
Név | Rövidítés | Típus | Paraméterek | Leírás
Név | Típus
ismétlés :n :ul | ism | U | n | szám | :ul végrehajtása :n-szer
ul | U-lista
ciklus :v :int :ul | cikl | U | v | szöveg | :ul többszöri végrehajtása a megadott :int intervallum alapján. :int 2 vagy 3 elemű számlista: [kezd vég lépés] (lépés alapértéke 1). :v a ciklusváltozó neve (:ul-ben használható), kezd-től megy vég-ig lépés-sel növekedve.
int | számlista
ul | U-lista
ciklusegyenként :v :l :ul | ciklegy | U | v | szöveg | :ul végrehajtása :l minden elemére. Az aktuális elem :v nevű változóban van tárolva.
l | lista
ul | U-lista
amíg :k :ul |  | U | k | kifejezés | :ul folyamatos végrehajtása amíg :k értéke igaz.
ul | U-lista
Elágazások (I, II, III, IV)
Név | Rövidítés | Típus | Paraméterek | Leírás
Név | Típus
ha :felt :ul |  | U | felt | logikai | :ul végrehajtása ha :felt igaz.
ul | U-lista
hakülönben :felt :uli :ulh | hak | U | felt | logikai | :uli végrehajtása ha :felt igaz, különben :ulh végrehajtása.
uli | U-lista
ulh | U-lista
elágazás :e :l |  | U/K | e | bármi | Az első :e-nek megfelelő eset végrehajtása/kiértékelése :l-ben. :l felépítése: -Minden eset egy azonosítóból (1 vagy több szó, :e megfeleltetéséhez) és egy U-listából vagy kifejezésből áll. -Ezek :l-ben egymás után következnek. -Az esetek után még egy U-lista vagy kifejezés a "különben" eset (opcionális). Minta: egyjegyű prímek esetlistája: [2 [mutat "|páros prím|] 3 5 7 [mutat "|páratlan prím|] [mutat "|nem prím|]]
l | lista
Több teknőc irányítása (I, II, III)
Név | Rövidítés | Típus | Paraméterek | Leírás
Név | Típus
aktív :t |  | U | t | szöveg vagy szöveglista | Az aktív teknőc átállítása a :t nevű teknőcre. Ha :t lista, minden elemének megfelelő teknőc aktív lesz.
kér :t :sz |  | U/K | t | szöveg vagy szöveglista | :ul végrehajtása vagy kiértékelése :t teknőccel vagy teknőcökkel (párhuzamosan).
ul | szöveg, kifejezés, vagy U-lista
kéregyenként :t :sz |  | U | t | szöveg vagy szöveglista | :ul végrehajtása :t teknőccel vagy teknőcökkel (egymás után a megadott sorrendben).
ul | szöveg vagy U-lista
végrehajt :sz |  | U/K | sz | szöveg, kifejezés, vagy U-lista | :sz végrehajtása vagy kiértékelése az aktív teknőccel vagy teknőcökkel (párhuzamosan).
egyenként :sz |  | U | sz | szöveg vagy U-lista | :sz végrehajtása az aktív teknőccel vagy teknőcökkel (egymás után a megadott sorrendben).
kiaktív |  | K |  | Értéke a jelenleg aktív teknőc neve. Ha több is van, az aktív teknőcök nevének listája.
mindenteknõc | mindtek | K |  | Értéke az aktív lapon lévő teknőcök nevének listája.
Animációk (I, II, III)
Név | Rövidítés | Típus | Paraméterek | Leírás
Név | Típus
várj :n |  | U | n | szám | Futás szüneteltetése :n ezredmásodpercre.
alakméret |  | K |  | Az aktív teknőc mérete. 1=alapméret, ha X és Y nem egyezik meg, az érték egy lista: [X Y]
alakméret! :m |  | U | m | szám vagy számlista | Az aktív teknőc mérete. 1=alapméret, ha :m egy szám, akkor X és Y is :m lesz, ha :m lista: [X Y]
látható |  | K |  | Logikai érték, igaz, ha a teknőc látható, különben hamis.
látható! :l |  | U | l | logikai | Ha :l igaz, a teknőc látható lesz, különben el lesz rejtve.
elrejtteknõc | rejttek | U |  | Teknőc elrejtése.
mutatteknõc | mutattek | U |  | Teknőc láthatóvá tétele.
animáció |  | K |  | Logikai érték, igaz, ha a teknőc automatikus animációja be van kapcsolva, különben hamis.
animáció! :l |  | U | l | logikai | A teknőc automatikus animációjának bekapcsolása, ha :l igaz, különben kikapcsolása.
képkocka |  | K |  | Az aktuális képkockának sorszáma.
képkocka! :n |  | U | n | szám | Az aktuális képkocka az :n. képkocka lesz.
képkockaelem |  | K |  | Az aktuális képkocka aktuális elemének sorszáma.
képkockaelem! :n |  | U | n | szám | A teknőc alakja az aktuális képkocka :n. eleme lesz. Vigyázat: ha az automatikus animáció be van kapcsolva, tovább fog ugrani a képkockához tartozó késleltetés után.
képkockamód |  | K |  | Logikai érték, igaz ha a a teknőc aktuális alakját a megadott képkocka adja, hamis ha a teknőc irány befolyásolja.
képkockamód! :l |  | U | l | logikai | A teknőc képkockamódjának átállítása: igaz, ha a a teknőc aktuális alakját a megadott képkocka adja, hamis ha a teknőc irány befolyásolja.
Változók (III, IV)
Név | Rövidítés | Típus | Paraméterek | Leírás
Név | Típus
lokálisérték :v :e | lokért | U | v | szöveg | :v lokális változó beállítása :e értékre.
e | bármi
globálisváltoztó :v :e | globvál | U | v | szöveg | :v globális változó beállítása :e értékre.
e | bármi
növel :v :n |  | U | v | szöveg | :v globális vagy lokális változó növelése :n-nel. (:n alapértelmezett értéke 1.)
n | szám (opcionális)
csökkent :v :n |  | U | v | szöveg | :v globális vagy lokális változó csökkentése :n-nel. (:n alapértelmezett értéke 1.)
n | szám (opcionális)
vanilyen? :v |  | K | v | szöveg | Logikai érték, igaz, ha létezik :v nevű lokális vagy globális változó, különben hamis.
értéke :v |  | K | v | szöveg | :v lokális vagy globális változó értéke (lecserélhető a kettőspontos kifejezésre)
Lista- és szövegkezelés (IV)
Név | Rövidítés | Típus | Paraméterek | Leírás
Név | Típus
szó :sz1 :sz2 |  | K | sz1 | szöveg | :sz1 és :sz2 összefűzése.
sz2 | szöveg
mondat :l1 :l2 |  | K | l1 | lista | :l1 és :l2 összefűzése.
l2 | lista
lista :e1 :e2 |  | K | e1 | bármi | Értéke egy kételemű lista, melynek első eleme :e1, második eleme :e2.
e2 | bármi
elsõnek :e :l |  | K | e | bármi | :e hozzáfűzése :l-hez első elemként.
l | lista
utolsónak :e :l |  | K | e | bármi | :e hozzáfűzése :l-hez utolsó elemként.
l | lista
elsõnélküli :l | en | K | l | lista | Lista :l elemeivel az elsőt (ha létezik) kihagyva.
utolsónélküli :l | un | K | l | lista | Lista :l elemeivel az utolsót (ha létezik) kihagyva.
elemsorszámnélküli :n :l | elemsn | K | n | szám | Lista :l elemeivel az :n. elemet kihagyva.
l | lista
elemnélküli :e :l | elemn | K | e | bármi | Lista :l értékeivel :e minden előfordulását kihagyva.
l | lista
elemtõl :e :l |  | K | e | bármi | Lista :l értékeivel :e első előfordulásától kezdve. Ha :e nincs :l-ben, az érték üres lista.
l | lista
csere :k :l :e |  | K | k | szám vagy számlista | Lista :l értékeivel, :k. elem kicserélve :e-re. :k lehet intervallum: [kezd darab]. Ilyenkor :e is lista, kezd elemszámú elem :e 1. elemére lesz lecserélve, kezd+1 a 2. elemre, stb.
l | lista
e | bármi
megfordít :l |  | K | l | lista | Lista :l értékeivel fordított sorrendben.
összekever :l |  | K | l | lista | Lista :l értékeivel véletlenszerű sorrendben.
! :l |  | K | l | lista | Lista :l értékeivel, a változó kifejezések kiértékelésével. Pl.: ! [1 :a 3] -> [1 2 3] (ha :a értéke 2)
elemszám :l |  | K | l | lista | Az :l lista elemszáma.
elsõ :l |  | K | l | lista | :l lista első eleme
utolsó :l |  | K | l | lista | :l lista utolsó eleme
elem :k :l |  | K | k | szám vagy számlista | :l lista :k. eleme. :k lehet intervallum: [kezd darab]. Ilyenkor az érték :l megfelelő részlistája.
l | lista
kiválaszt :l |  | K | l | lista | :l lista egy véletlenszerű eleme
Műveletek Infix műveletek: + - * / < <= <> = > >=
Név | Rövidítés | Típus | Paraméterek | Leírás
Név | Típus
és :a :b |  | K | a | logikai | Logikai művelet, értéke igaz, ha :a és :b is igaz, különben hamis.
b | logikai
vagy :a :b |  | K | a | logikai | Logikai művelet, értéke igaz, ha :a és :b közül legalább az egyik igaz, különben hamis.
b | logikai
nem :l |  | K | l | logikai | Logikai művelet, értéke :l negáltja (igaznak hamis, hamisnak igaz).
egyenlõ? :a :b | = (infix) | K | a | bármi | Logikai érték, igaz, ha :a és :b egyenlő, különben hamis.
b | bármi
nagyobb? :a :b | > (infix) | K | a | szám vagy szöveg | Logikai érték, igaz, ha :a nagyobb, mint :b, különben hamis. Ha valamelyik paraméter szöveg, az összehasonlított értékek a paraméterek első karaktereinek ASCII-kódjai.
b | szám vagy szöveg
kisebb? :a :b | < (infix) | K | a | szám vagy szöveg | Logikai érték, igaz, ha :a kisebb, mint :b, különben hamis. Ha valamelyik paraméter szöveg, az összehasonlított értékek a paraméterek első karaktereinek ASCII-kódjai.
b | szám vagy szöveg
összeg :a :b | + (infix) | K | a | szám | :a és :b összege.
b | szám
különbség :a :b | - (infix) | K | a | szám | :a és :b különbsége.
b | szám
szorzat :a :b | * (infix) | K | a | szám | :a és :b szorzata.
b | szám
hányados :a :b | / (infix) | K | a | szám | :a és :b hányadosa.
b | szám
egészhányados :a :b | eh | K | a | szám | :a és :b egészosztásának hányadosa.
b | szám
maradék :a :b | mod | K | a | szám | :a és :b egészosztásának maradéka. Előjele megegyezik :a előjelével.
b | szám
egészrész :n | int | K | n | szám | :n egészrésze.
kerekít :n |  | K | n | szám | :n egészre kerekítve.
absz :n |  | K | n | szám | :n abszolútértéke.
gyök :n |  | K | n | szám | :n négyzetgyöke.
hatvány :n |  | K | n | szám | Természetes alapú hatvány értéke (e:n).
ln :n |  | K | n | szám | :n természetes alapú (e alapú) logaritmusa.
sin :a |  | K | a | szám | :a szög (fok) szinusza.
cos :a |  | K | a | szám | :a szög (fok) koszinusza.
tan :a | tg | K | a | szám | :a szög (fok) tangense. Nincs definiálva 90 + k*180-ra (k egész szám).
arkusztangens :t | arctg | K | t | szám | Az a szög (fokban), amelynek tangense :t. Értékkészlete: [-90, 90].
Egyéb
Név | Rövidítés | Típus | Paraméterek | Leírás
Név | Típus
mutat :sz |  | U | sz | szöveg | :sz szöveg kiírása a kimenetre.
eredmény :e |  | U | e | bármi | :e visszaadása visszatérési értékként (az ezutáni utasítások nem lesznek végrehajtva).
stop |  | U |  | A futó eljárás megállítása.
véletlenszám :n | vszám | K | n | szám | Értéke egy véletlenszerű egész szám 0 és :n-1 között, ha :n pozitív, :n+1 és 0 között, ha :n negatív.