IMAGINE parancsszavak
listája
|
Verziószám: Imagine HTML Súgó (EN) - 1.0
allturtles
(all)
A paranccsal elkészíthetjük az összes létező teknőc listáját, azaz ebben lesznek a new paranccsal létrehozott új teknőcök. Ne tévesszük össze ezt a parancsot a who paranccsal, mely az összes éppen aktív teknőc (active teknőcök) listáját készíti el, melyben természetesen nem szerepelnek a létező, de éppen nem aktív teknőcök.
Próbáld ki az alábbi utasításokat:
? show allturtles
[t1]
? new "Turtle [name Feri pos [10 10]]
? show
allturtles
[t1 Feri]
? eraseObject allturtles
? show allturtles
[]
? show who
[]
? new "Turtle [name Jani pos [100 40] heading 90]
?
new "Turtle [name Józsi pos [-100 40] heading 270]
? show
allturtles
[Jani Józsi]
? forward 100
? tell
allturtles
? show who
[Jani Józsi]
? each [print pos]
100 40
-100 40
? to négyzet :oldal
> repeat 4 [forward :oldal right 90]
> end
? showTurtle
? négyzet 60
? hideTurtle
? ask butFirst
allturtles [right 20 négyzet 40]
allUp logikai
Ez a beállítás csak akkor érvényes, ha a kapcsoló (switch) értéke igaz és
legalább két kapcsoló gomb ugyanabból a csoportból való.
Ha
megváltozatod a logikai értéket, akkor ezt átörökíted mindegyik, ebben a
csoportban levő kapcsológombra.
and logikai logikai
A kimenet értéke igaz, ha mindkét bemeneti érték igaz. Különben a kimenet értéke hamis. Ha több (vagy kevesebb), mint két bemeneted van, a kimeneten csak akkor lesz igaz érték, ha minden bemenő érték igaz.
Próbáld ki az alábbi utasításokat:
? show and number? first [2 3]
number? last [2 3]
true
? if and (count [1 2
3] = 3) member? 2 123 [print "igen]
igen
animation
A kimenet értéke igaz, ha az automatikus animáció be van
kapcsolva az első aktív teknőcnél (first active turtle), különben a kimenet
értéke hamis. Ennek a módosítására használhatod a setAnimation parancsot.
any
A kimenet az any szó, melyet a többi parancsnál használhatsz bemeneti értékként (pl.:setPos, setPenWidth stb.), ahol egy véletlenszerű értéket helyettesíti be. Például setPenWidth any ugyanazt jelenti, mint a setPenWidth 1 + random 20; right any megegyezik a right 1 + random 90 paranccsal stb.
Próbáld ki az alábbi utasításokat:
? cs
? repeat 10 [setpw any
setpc any fd 100 pu back 100 rt 90 fd 20 left 90 pd]
any
Az any bármilyen adat lehet, ami az Imagine-ben változó
értékként elfogadható. Ez lehet egy szó, lista vagy egy kép (image). Más típusú
adatot nem fogad el a Logo eljárás bemenetként.
aPos pont
Megadja a teknőc aktuális pozíciójának abszolút koordinátáit. A teknőc pozíciója alapesetben a helyének a középpontja.
Próbáld ki az alábbi utasításokat:
? cs
? show apos
[398
249]
? fd 100
? show apos
[398 149]
?
rt 90
? fd 100
? show apos
[498 149]
ask [teknőcök] [parancsok]
Ha az ASK második bemenete a végrehajtandó utasítások listája, akkor az ASK egy parancs. Ha a második bemenet egy olyan lista, ami egy értéket előállító kifejezést tartalmaz, akkor az ASK művelet.
Ha az ASK parancs, akkor az első bemenetben megnevezett teknőcök végrehajtják a második bemenetben leírt utasításokat. Itt a megnevezett teknőcök ideiglenesen aktívvá válnak, és egyszerre hajtják végre az utasításokat. Amikor az ASK utasítás befejeződött, az eredetileg aktív teknőcök lesznek újra aktívak.
Próbáld ki az alábbi utasításokat:
? new "Turtle [name Majom pos [10 10] heading 90]
?
tell allturtles
? showTurtle
? ask "Majom
[forward 50]
? ask [t1 Majom] [forward 100]
?
ask "Majom [left 90 forward 50]
askEach [teknőcök] [parancsok]
Az ask és each utasításokat egyesíti. Tehát a következő két parancsnak pontosan megegyezik a jelentése: askEach teknőcök list és az ask teknőcök [each list].
Próbáld ki az alábbi utasításokat:
? eraseObject allTurtles
? new "Turtle [name elso pos
[-100 100]]
? new "Turtle [name masodik pos [100 100]]
? new "Turtle
[name harmadik pos [100 50]]
? new "Turtle [name negyedik pos [-100 50]]
? askEach [elso negyedik] [repeat 6 [forward 50 right
60]]
? askEach [masodik harmadik] [repeat 5
[forward 70 right 72]]
autoDrag logikai
Ha az értéke igaz, akkor a teknőcöt a bal egérgomb lenyomásával tudod mozgatni. Ha a teknőc tolla penDown módban van, akkor mozgatás közben egy vonalat húz maga után.
Próbáld ki az alábbi utasításokat:
? cs
? show autodrag
false
? setAutodrag "true
back szám
(bk szám)
Ez a parancs az éppen aktív teknőcöket mozgatja, a megadott számú lépéssel (azaz pixellel), az aktuális irányukkal ellentétesen. Az forward parancshoz hasonlóan a (beállított színű, vastagságú és mintájú) vonal rajzolását, megszakítását és törlését a pendown, penup, penerase parancsokkal állíthatjuk be.
Próbáld ki az alábbi utasításokat:
? back 50
? setPenColour 12
? back
100
? back -40
? setPenColour
6
? repeat 4 [back 50 ]
bgColour
Megadja az oldal vagy panel jelenlegi háttérszínét.
Próbáld ki az alábbi utasításokat:
? show bgColour
white
? setBgColour "red
? show bgColour red
bgPicture
Háttérnek képet is beállíthatsz ezzel a paranccsal.
Próbáld ki az alábbi utasításokat:
? cs
? t1'setShape p1'bgPicture
browseDocument fájl,
browseDocument Web-cím
(browseDoc)
Megnyithatsz egy Internet böngészőt, ahol megnézheted a fájl
vagy az internet cím tartalmát. Ha az alkalmazást vagy dokumentumot nem lehet
megnyitni, akkor hibát jelez.
butFirst
bemenet
(bf)
Ha a bemenet egy szó, akkor a BUTFIRST a kimenetre megadja a szót az első karakter nélkül. Ha a bemenet egy lista, akkor azt az első tag nélkül adja vissza. Ha a bemenet egy képsor, akkor a BUTFIRST az első frame nélkül adja vissza azt.
Próbáld ki az alábbi utasításokat:
? show butFirst "Imagine
magine
? show butFirst [egy kettő három]
[kettő
három]
butItem szám bármi
Ezzel a művelettel a szóból a megadott sorszámú elemet tudjuk törölni. Ha az any egy szó, akkor a megadott betűt, ha lista akkor az adott elemét töröljük.
Próbáld ki az alábbi utasításokat:
? show butitem 4 "sziea
szia
? show butitem 6 "almafa
almaf
?
show butitem 5 butitem 6
"almafa
alma
butLast bármi
(bl)
Ha a bemenet egy szó, akkor a BUTLAST a kimenetre megadja a szót az utolsó karaktere nélkül. Ha a bemenet egy lista, akkor az utolsó eleme nélkül adja vissza. Ha a bemenet egy kép, akkor a BUTLAST az utolsó frame nélkül adja vissza.
Próbáld ki az alábbi utasításokat:
? show butLast "Imagine
Imagin
? show butLast [egy kettő három]
[egy
kettő]
butMember
karakter szó,
butMember bármi lista
A szóból törli a megadott karaktereket. Lista esetén pedig a megadott értékkel azonos elemeket törli a listából.
Próbáld ki az alábbi utasításokat:
? show butmember "a "almafa
lmf
? show butmember "e "esezeiea
szia
cancel szó, cancel lista
Megállítod a szó által megnevezett folyamatot. Ha a bemenő adat
egy lista, minden olyan folyamatot leállítasz, aminek a definíciója a listában
találhatóval megegyezik.
changeMe
Megnyitod a Change Me párbeszédablakot, ahol beállíthatod a változókat vagy módosíthatod az eljárásokat. Ha bezárod a dialógusablakot, (az OK gombra kattintva, vagy az F12 billentyűt használva) akkor elmented a változtatásokat.
Próbáld ki az alábbi utasításokat:
? changeMe
circle szám
Az aktív teknőc (active turtle) a megadott átmérővel rajzol egy kört. Megadhatod a toll színét (pen colour) és a toll vastagságát (pen width) is.
Próbáld ki az alábbi utasításokat:
? cs
? circle 50
?
circle 100
? circle 150
?
circle 200
cleanBgPicture
(cbg, clean)
Letörli, megtisztítja a lapot, és az aktuális háttérszínnel fedi be az oldalt. A cleanBgPicture nincs hatással a teknőcök jelenlegi irányára, pozíciójára, tollának állapotára.
Próbáld ki az alábbi utasításokat:
? loadBGPicture "|Hatterek\Szabadban\utca.lgf|
?
clean
? setBgColour "red
? loadBGPicture
"|Hatterek\Szabadban\utca.lgf|
? clean
clearScreen
(cs)
Letörli a képernyőt, az elmozgatott teknőc visszaáll a kiinduló állapotba. Az aktuális teknőc (active turtle) nem módosítható. Választhatsz, hogy a megjelenítés során rejtve maradjon-e a teknőc (hideTurtle), vagy látni szeretnéd (showTurtle).
Figyeld meg a különbséget a Clearscreen és a cleanBgPicture (clean) parancs között.
Próbáld ki az alábbi utasításokat:
? setBgColour 1
clearText
(ct)
Letörli a szöveges képernyőt.
Próbáld ki az alábbi utasításokat:
? show 1000 * 10
10000
?
clearText
clickedPos
A kimenet egy vektor, aminek a kezdeti pontja a teknőc aktuális
pozíciója, végpontja pedig a legutóbbi egérkattintás pozíciója a teknőc alakján
belül.
clipboard
A legtöbb eljárásnak, ami fájlokkal dolgozik, megadható a "Clipboard szó bemenetként a fájlnév helyett. Például a putPicture, loadBGPicture, loadImage, createFileSelection, setBGPicture, load, loadImage, loadText, loadTable, setShape stb. eljárások tudnak olvasni a Vágólapról. Hasonlóan a saveBGPicture, save, saveImage, saveText, saveTable, stb. eljárások tudnak a Vágólapra menteni.
Klikkelj a teknőcre mutatva a jobb gombbal az Alak másolása menüpontra, aztán próbáld ki az alábbi utasítást:
? show clipboard [2 LogoMotion (Images) 8 17]
clone objektum beállítás-lista
Az első bemenetben megadott objektumról készíthetsz másolatot. A másolat új névvel jön létre, de megtartja az összes többi tulajdonságot, saját és közös változót, eljárást. A második bemenettel lehetőséged van módosítani a hasonló objektumok általános beállításait: ? clone "t1 [pos [-200 0] autoDrag false]
Próbáld ki az alábbi utasításokat:
? clone "t1 [pos [-200 0] name
Napom shape |Szabadban\nap.lgf|]
? clone "t1 [pos [0 200] name
Kutyám shape |Allatok\kutya.lgf|]
count bemenet
A bemenő adat elemeit számolhatod meg ezzel a paranccsal.
Próbáld ki az alábbi utasításokat:
? show count "Imagine
7
? show count [egy kettő három]
3
? show
count [Szandra]
1
? show count [A B [C
D] ]
3
date
Megadja a dátumot egy négyelemű listával melynek formája: [nap hónap év hét_melyik_napja], ahol a hét_melyik_napja egy szám 0 (Vasárnap) és 6 (Szombat) között.
Próbáld ki az alábbi utasításokat:
? show date
[14 11 2005 1]
define szó definíciós-lista
A parancs egy eljárást definiál a jelenlegi fogadó részére, aminek a neve az első bemenet tartalma, szövege pedig a második bemenetben megadott parancslista. Így egy felhasználó által definiált eljárás jön létre. Ha azonban a jelenlegi fogadónak már létezik ugyanolyan néven saját vagy közös változója, akkor hibát fog jelezni, és az eljárás nem jön létre.
Próbáld ki az alábbi utasításokat:
? define "négyzet [[a][repeat 4
[fd :a rt 90]]]
? négyzet 50
? négyzet 100
defined? szó
A kimenet értéke igaz, ha a bemeneti szómegfelel egy felhasználó által definiált eljárás nevének, amely a jelenlegi fogadóhoz tartozik, vagy az örökölte.
Próbáld ki az alábbi utasításokat:
? define "négyzet [[a][repeat 4 [fd :a rt 90]]]
? show
t1'defined? "négyzet
true
difference szám1 szám2
A két szám különbségét adja meg.
Próbáld ki az alábbi utasításokat:
? forward difference 50 10
? show difference 100 10
90
dot
Hatására minden aktív teknőc az előre beállított színnel, illetve tollvastagsággal egy pontot rajzol ki a jelenlegi pozíciójában.
Figyeld meg, hogy azok az aktív teknőcök is fognak pontot rajzolni, amelyeknek a tolla fel van emelve.
Azt is vedd észre, hogy a dot ugyanaz, mint a fd 0, ha teknőc tolla lenn van. Azonban a fd 0 nem rajzol tökéletes kört. Ezt jól lehet látni, ha a toll vastagsága 10-nél nagyobb.
Próbáld ki az alábbi utasításokat:
? clearscreen
? dot
?
penUp
? forward 50
? setPenWidth 11
? dot
? forward 50
dotColour
Megadja az oldal, vagy panel azon pontjának színét, ahol az első aktív teknőc jelenleg elhelyezkedik.
Próbáld ki az alábbi utasításokat:
? show dotColour
white
? setBgColour 2
? show dotColour
green3
each [parancsok listája]
Erre a parancsra minden aktív teknőc végrehajtja a bemenetben található összes utasítást. Ezt sorban hajtják végre; első teknőc, aztán a második teknőc stb.
Az utasítások listájában használhatod a who műveletet: ennek az értéke amíg az each parancs fut, mindig annak a teknőcnek a neve, aki éppen végrehajtja a parancsokat.
Míg az each parancs hatására az aktív teknőcök az adott parancsokat egyenként hajtják végre, az ask hatására az összes megnevezett teknőc egyszerre hajtja azokat végre.
Próbáld ki az alábbi utasításokat:
? new "Turtle [name Ádám pos [10 10] heading 90]
? tell allturtles
? showTurtle
? each [repeat 4
[forward 100 right 90 wait 100]]
empty? bemenet
Igazat (TRUE) ad a kimenetre, ha a bemenet üres szó, üres lista, vagy üres kép. Ellenkező esetben hamisat (FALSE) ad.
Próbáld ki az alábbi utasításokat:
? show empty? [gép]
false
? show empty? []
true
? show
empty? butFirst [gép]
true
? show empty?
butFirst "A
true
end
Speciális kulcsszó, melyet az eljárás lezárására használunk.
Próbáld ki az alábbi utasításokat:
? to négyzet :oldal
> repeat 4 [ forward :oldal right
90]
> end
? négyzet 40
? négyzet 100
equal? bemenet1 bemenet2
Igaz értéket ad vissza, ha a megadott két szó, kép vagy lista tartalma, értéke megegyezik egymással. Ellenkező esetben hamis értéket ad vissza.
Ha a bemenetek száma kettőnél több, az equal? akkor ad igaz értéket, ha minden bemenet megegyezik. Különben a kimenet hamis.
Próbáld ki az alábbi utasításokat:
? show equal? 3 3
true
? show equal? 7 3
false
? show equal? "Ferenc "Ferenc
true
? show equal? "Ferenc
"ferenc
true
? show equal? "Ferenc "János
false
? show equal? [fekete piros]
[fekete piros]
true
? show equal? [fekete
piros]
[fekete piros kék]
false
? show equal? 7*12 word 8 last
[ 2 4 ]
true
? show equal? 27 "27
true
erase ":változó
erase [:változó1 ... ]
Kitörli a megadott globális változót. Ha nem létezik ez a globális változó, akkor
a következő hibaüzenetet kapod:
? erase ":Vál
A Változó változónak
nincs értéke. Használd a globálisváltozó vagy név parancsot,
hogy értéket adj a változónak.
Próbáld ki az alábbi utasításokat:
? make "a 100
? show :a
100
? fd :a
?
erase ":a
? show :a
eraseAll
Minden felhasználó által definiált eljárást, minden objektumot és minden futó folyamatot töröl. Visszaáll a kezdeti üres Imagine környezet.
Próbáld ki az alábbi utasításokat:
? new "Turtle [pos [100 100]]
? new "Turtle [pos
[-100 100]]
? eraseAll
eraseObject
objektum
eraseObject objektum_lista
A bemenetben meghatározott objektumot, vagy objektumokat törli.
Próbáld ki az alábbi utasításokat:
? new "Turtle [pos [any any]]
? new "Turtle [pos [any
any]]
? tell all
? show who
[t1 t2 t3]
?
eraseObject who
? new "Turtle [pos [100 100]]
? new "Turtle [pos [100
50] heading 90]
? new "Turtle [pos [50 100] heading 270]
?
eraseObject [t1 t3]
? eraseObject "t2
every N lista
Ahol a lista utasításokat tartalmaz. Elindít egy új, független folyamatot, amelyik minden N ezredmásodpercben futtatja a listában megadott utasítássort.
Próbáld ki az alábbi utasításokat:
? eraseAll
? every 5 [fd
50 wait 500]
? stopAll
false
A "hamis" vagy "nem" logikai értéket képviseli.
Próbáld ki az alábbi utasításokat:
? show (6 = 2 + 3)
false
file
Megegyezik a Windows file értelmezésével pl.: "project1.IMP vagy
"|my image 23.LGF|.
fill
Minden aktív teknőc az előre beállított színnel, illetve mintával tölti ki a körülötte lévő területet.
Az aktív teknőcök kitöltő színének beállításához használd a setFillColour parancsot. Az új szín beállításig a kitöltő szín a toll aktuális színe. Az első aktív teknőc kitöltőszínének megállapításához használd a fillColour parancsot. Az aktív teknőcök kitöltő mintájának beállításához használd a setFillPattern parancsot. Az első aktív teknőc kitöltő mintájának megállapításához használd a fillPattern parancsot.
Próbáld ki az alábbi utasításokat:
? setPenColour 5
? setPenWidth 4
? repeat 4
[forward 50 right 90]
? right 45
? penUp
? forward 10
? setFillColour 3
? fill
fillColour
(fc)
Az első aktív teknőc kitöltőszínének megállapításához használd a fillColour parancsot. Ha nincs beállítva a kitöltő szín, akkor az értéke a teknőc tollszínével egyezik meg. A fillColour művelet eredménye az a szín, amit a fill és a polygon parancsok használnak kitöltéskor.
Próbáld ki az alábbi utasításokat:
? show fillColour
? black
? repeat 4 [fd 50 rt 90] pu rt 45 fd 20
? fill back 20 left 45 left 90 pd
? repeat 4 [fd 50 rt 90] pu rt 45 fd 20
? setPenColour "darkblue8 fill
?
show fillColour
darkblue8
fillPattern
(fp)
A kimenete az első aktív teknőcnél beállított kitöltő minta. Ha előzőleg nem állítottál be más mintát, akkor az alapérték 0, a teljes kitöltés. A fillPattern művelet eredménye az a minta, amit a fill és a polygon használ kitöltésnél.
Próbáld ki az alábbi utasításokat:
? show fillPattern
? 0
? repeat 4 [fd 50 rt 90] pu rt 45 fd 20
? fill back 20 left 45 left 90 pd
? repeat 4 [fd 50 rt 90] pu rt 45 fd 20
? setfillPattern "4 fill
? show
fillPattern
4
first bemenet
Ha a bemenet egy szó, akkor a First a kimenetre megadja a szó első karakterét. Ha a bemenet egy lista, akkor az első elemét adja vissza. Ha a bemenet egy kép, akkor a FIRST az első frame-et, képkockát adja vissza.
Próbáld ki az alábbi utasításokat:
? show first "Imagine
I
? show first [egy kettő három]
[egy]
font
Az első aktív teknőcnek beállított betűtípust adja meg. Az alapértéke, ha nincs beállítva betűtípus:[[System] [0 400 0 0 0 1]].
Próbáld ki az alábbi utasításokat:
? show font
[[System] [0
400 0 0 0 1]]
? pu label SZIA!!!!
? fd 150
? setFont [[Tahoma][10
700 1 0 0 238]]
? label "SZIA!!!!
? show
font [[Tahoma][10 700 1 0 0 238]]
for szó
[szám1 szám2] U-lista
for szó
[szám1 szám2 szám3] U-lista
Először tegyük fel, hogy szám1 < szám2. A szó változó megkapja a szám1 értékét, majd lefut az U-lista utasításlista. Ezután a szó változó értéke növekszik 1-gyel (vagy szám3-mal, ha meg van adva) és újra futtatja az U-lista utasításlistát. Ez addig ismétlődik, amíg a szó értéke nagyobb nem lesz, mint szám2. Ha a szám3 - lépés nagyság - nincs megadva és a szám1 > szám2, a szó változó értéke minden alkalommal 1-gyel csökken. Különben a szám3 mindig hozzáadódik a szó változóhoz: ha a szám3 negatív, a szó értéke minden alkalommal csökken. Az U-listán belül használhatod a repcount kifejezést arra, hogy az idáig végrehajtott lépések számára hivatkozz. Jegyezd meg azt is, hogy ha a szám3 értéke 0, az utasításlista csak egyszer hajtódik végre. Ez akkor is igaz, ha szám1=szám2.
Próbáld ki az alábbi utasításokat:
? for "j [1 3] [show :j]
1
2
3
? for "j [1 3 2] [show :j]
1
3
? for "j [1 7 2] [show :j]
1
3
5
7
forEach szó bármi U-lista
A word változó értéke először a második bemenet (bármi ) első eleme lesz (egy karakter, ha ez egy szó; egy elem, ha ez lista; egy képkocka, ha ez kép stb...) és futtatja az U-lista utasításlistát. Ezután a bármi második eleme lesz a word változó értéke, és az utasításlista ismét lefut, ... stb, a bármi minden elemére. Az utasításlista pontosan annyiszor fut le, ahány eleme van a bárminek. Így ha bármi üres, az utasításlista egyszer sem fut le. Jegyezd meg, hogy az U-lista utasításlistában használhatod a repcount kifejezést, hogy utalj arra, hogy hányadik ismétlésben vagy éppen.
Próbáld ki az alábbi utasításokat:
? forEach "w [krokodil zsiráf
majom] [(print word repcount ". "szó "hossza: count :w )]
1. szó hossza: 8
2. szó hossza: 6
3. szó hossza: 5
forever U-lista
forever
U-lista szó
Készít egy új párhuzamos és végtelen önálló folyamatot. Ez
örökli a jelenlegi fogadót, és az összes helyi változóról másolatot kap. Ezután
az U-lista (a folyamat törzse) elkezd futni egy végtelen ciklusban ismétlődve. A
nem kötelező második bemenet (word) határozza meg a folyamat nevét. Ha nincs
meghatározva egy pontos név, akkor a folyamat neve azonos lesz az U-lista
szövegével.
forward
szám
(fd)
Ez a parancs az éppen aktív teknőcöket lépteti előre, a megadott számú lépéssel (pixellel), abba az irányba, amerre néznek. Figyeld meg, hogy a forward 0 azt jelenti, hogy a teknőc 0 mezővel lép előre, azaz egy 1 hosszúságú vonalat rajzol. A forward 1 azt jelenti, hogy előre kell menni 1 lépést, ezért egy 2 hosszúságú vonalat rajzol. Ha a pendown parancsot használtuk, egy vonalat rajzol a teknőc. Ha a penup parancsot használtad, nem rajzolódik ki a vonal. Penerase módban a teknőc minden színt kitöröl.
Próbáld ki az alábbi utasításokat:
? forward 50
? setpencolour 12
? forward
100
? setpencolour 6
? setpenwidth 4
?
forward 50
fPut bemenet
[lista]
fPut szó1 szó2
Ha a második bemenet egy lista, az FPUT kimenete egy megváltozott lista, amelynek első eleme az első bemenet, a butFirst elemei pedig a bemeneti lista elemei. Ha második bemenet egy szó, akkor az FPUT kimenete egy megváltozott szó, ami úgy jön létre, hogy a word1 és a word2 szavak összekapcsolódnak. Az FPUT word1 word2 ugyanaz mint a word word1 word2.
Próbáld ki az alábbi utasításokat:
? show fPut "A [B C D]
[A
B C D]
? show fPut [A B] [C D E]
[[A B] C D
E]
frozen
Az alapértéke hamis. Megadja, hogy az egész főablak és annak
minden objektuma (azaz minden) rögzített-e, vagy sem.
fullScreen
Átméretezi a grafikus és a szöveges képernyőt úgy, hogy az egész képernyőt fedjék. Azaz, sem a címsor sem a főmenü nem lesz látható. Az eredeti maximum méretet a maximize begépelésével állíthatod vissza. A grafikus képernyő átméretezésének egy másik módja, hogy kiválasztod a Nézet/Teljes képernyő parancsot a főmenüben.
Próbáld ki az alábbi utasításokat:
? fullScreen
? maximize
graphicScreen
(gs)
A teljes FőAblakot (az eszköztárai alatt - ha látszanak) átállítja grafikus képernyőre. A szöveges képernyő nem látszik, de aktív lesz. Azaz az Imagine minsden parancsot végrehajt (és megjegyez) amit a billentyűzetről gépelsz be.
Próbáld ki az alábbi utasításokat:
? textscreen
? graphicscreen
greater?
szám1 szám2
greater? (szám1 szám2 szám3)
A kimenet igaz, ha az első szám nagyobb a másodiknál. Ellenkező esetben hamis értéket ad vissza.
Próbáld ki az alábbi utasításokat:
? show greater? 3 30
false
? show greater? 30 3
true
heading
Megad egy szöget, amely az első aktív teknőc iránya.
A 0 jelenti Északot, s az irány az óramutató járásával megegyező irányban növekszik. Az irány változtatásához a left, right, vagy setHeading parancsokat használhatod.
Próbáld ki az alábbi utasításokat:
? clean
? forward 100
? show
heading
45
hideButtons
Eltünteti a képernyőről a Gombsort. Ezt a gombokhoz rendelt tevékenységektől függetlenül teszi - a gombdefiníciók nem változnak a gombsor eltüntetésével, vagy felfedésével.
Próbáld ki az alábbi utasításokat:
? showButtons
? hideButtons
turtlename'hideMe
Ez ugyanaz, mint a hideTurtle.
hideSpeedBar
Elrejti a Főeszköztárat. Amikor Főeszköztár rejtett, a grafikai képernyő nagyobb lehet.
Ha újra meg akarod jeleníteni, használd a showSpeedBar parancsot.
Próbáld ki az alábbi utasításokat:
? hideSpeedBar
? wait 300
showSpeedBar
hideTurtle
(ht)
A parancs elrejt minden aktív teknőcöt.
Az összes aktív teknőcöt a showTurtle paranccsal hozhatjuk vissza a képernyőre. Azt, hogy az első aktív teknőc éppen látszik-e, a shown? kérdéssel tudhatjuk meg. A megjelenített teknőcökkel lassabban lehet vonalakat rajzolni. Ezért néha érdemes az összeset elrejteni.
Az összes aktív teknőc alakjának megváltoztatásához használd a setShape parancsot bemenetként bármilyen képpel.
Próbáld ki az alábbi utasításokat:
? showTurtle ; megmutatja a teknőst
? forward 100 ; a teknős 100 lépést előre lép
?
hideTurtle ; elrejti a teknőst
?
showTurtle ; megmutatja a teknőst
? repeat 90
[forward 140 right 172] ; egy alakzatot rajzol
?
penUp ; felemeli a tollat a
papírról
? back 150 ; teknős 150 lépést visszalép
? penDown ; visszahelyezi a tollat a papírra
?
hideTurtle ; elrejti a teknőst
? repeat 90
[forward 140 right 172] ; figyeljük meg a
sebességkülönbséget
home
A parancs az aktív teknőcöket visszahelyezi az eredeti pozíciójukba, amit akkor határoztunk meg, amikor a teknőcöt a new paranccsal létrehoztuk.
A parancs nem változtatja meg a teknőc jelenlegi irányát, vagy a toll aktuális beállítását (penUp, penDown, penErase, tollszín, minta vagy vastagság). Így ha a toll bármilyen rajzoló módban van a teknőc vonalat húz hazatérés közben is. A teknőc továbbra is látszik, ha előtte látszott (lásd shown?). A képernyő sem törlődik.
Próbáld ki az alábbi utasításokat:
? clean
? forward 100
? right 90
?
home
? right 45
? forward 100
? right 15
? forward 50
? hideTurtle
? home
? showTurtle
if bemenet
[lista1]
if bemenet [lista1] [lista2]
Ha az bemenet igaz, akkor a list1 listában szereplő utasításokat hajtja végre. Ha az első bemenet hamis, és a harmadik bemenetet megadtuk, akkor a list2 listában szereplő utasításokat hajtja végre. Ha az első bemenet hamis és nincs harmadik bemenet, az if parancsnak nincs hatása.
Próbáld ki az alábbi utasításokat:
? if 1<2 [show [Egy kisebb
kettőnél]]
[Egy kisebb kettőnél]
? if 2<1 [show [Kettő
kisebb egynél]]
ifElse logikai U-lista1 U-lista2
Ha az első bemenet igaz, akkor az U-lista1 listát futtatja. Ha az első bemenet hamis, akkor az U-lista2 utasításait hajtja végre.
Próbáld ki az alábbi utasításokat:
? to faktoriális :n
> op ifElse
:n < 2
> [1]
> [:n * faktoriális :n - 1]
> end
? show
faktoriális 3
6
? show faktoriális 4
24
ifFalse
U-lista
(iff)
Futtatja a bemeneti listában található utasításokat, ha egy, az ifFalse előtt futtatott test parancs hamis értéket adott. Ha a kimenet igaz volt, az ifFalse parancsnak nincs hatása.
Próbáld ki az alábbi utasításokat:
? to faktoriális :n
> test :n < 2
> ifTrue [op 1]
> ifFalse [op :n * faktoriális :n - 1]
> end
?
show faktoriális 3
6
? show faktoriális 4
24
ifTrue U-lista
(ift)
Futtatja a bemeneti listában található utasításokat, ha egy, az ifTrue előtt futtatott test parancs ugyanabban az eljárásban igaz értéket adott. Ha a kimenet hamis volt, az ifTrue parancsnak nincs hatása.
Próbáld ki az alábbi utasításokat:
? to faktoriális :n
> test :n < 2
>
ifTrue [op 1]
> ifFalse [op :n * faktoriális :n - 1]
> end
?
show faktoriális 3
6
? show faktoriális 4
24
ignore bármi
Ez az eljárás kap egy bemenetet (vagy bemeneteket) és figyelmen
kívül hagyja azt (vagy azokat). Az ignore olyan esetekben használható, amikor
kapsz egy értéket egy műveletből, de nincs rá szükséged.
image? bármi
A kimenet értéke igaz, ha a bemenet egy kép volt.
Próbáld ki az alábbi utasításokat:
? make "myShape loadImage "|Animacio\Bringas.lgf|
? show
image? :myShape
true
inc szó
A bemenet által megnevezett változó értékét eggyel megnöveli - ha a parancsnak csak egy bemenete van. Különben a változó értékét egy adott számmal növeli. A változónak számnak kell lennie.
Próbáld ki az alábbi utasításokat:
? make "valami 99
? inc
"valami
? show :valami
100
? inc
"valami 3
? show :valami
103
item szám bemenet
item
[szám1 szám2] bemenet
Ha az első bemenet egy szám , ITEM a második bemenetből megadja a szám sorszámú tagot. Ha a második bemenet egy lista, a kimenet a szám sorszámadik eleme. Ha a második bemenet egy szó, a kimenet a szám sorszámadik karaktere. Ha a második bemenet egy kép, a kimenet a szám sorszámadik képkockája. Mindhárom esetben az első bemenet egy olyan szám, ami legalább 1, de legfeljebb annyi, ahány eleme van a második bemenetnek. (Ha a szám nem egész, a törtrésze le lesz vágva)
Próbáld ki az alábbi utasításokat:
? show item 1 "róbert
r
? show item 2 "róbert
ób
? show
item 3 [A B C D]
C
? show item [2 2]
[A B C D]
B C
? show item 1 [[AB] [BC] [CD]]
[AB]
? show item [3 4] "fabula
bula
key
A kimenet annak a billentyűnek a neve, amit a billentyűzeten megnyomtunk. Ha nem nyomtál meg egy billentyűt sem, a key vár, amíg leütsz egy billentyűt (azaz vár, amíg a key? igaz értéket ad ki). A begépelt karakter nem jelenik meg a képernyőn.
Próbáld ki az alábbi utasításokat:
? show key
key?
Igaz értéket ad, ha a billentyűzeten lenyomtak egy billentyűt. Különben hamis értéket ad vissza.
Amikor beolvas egy karaktert a billentyűzetről, a READKEY és a READCHAR addig vár, amíg a KEY? kimenete igaz nem lesz.
Próbáld ki az alábbi utasításokat:
? to várakozz
> if key?
[stopMe]
> print [Várakozok...]
> Wait 10
> end
?
várakozz
Az eljárás leállításához meg kell nyomnod egy billentyűt.
label szöveg
Hatására minden aktív teknőc kiírja a bemeneti szöveget a jelenlegi helyén az aktuális betűtípus beállítást használva. A bemeneti szöveg a teknőc aktuális tollszínével íródik ki. Ha a szöveg egy lista, a label a zárójelek nélkül írja ki azt.
Próbáld ki az alábbi utasításokat:
? repeat 10 [pu fd 50 setpencolour any label "SZIA back 50 rt 36]
last lista
Ha a bemenet egy szó, akkor a LAST a kimenetre megadja a szó utolsó karakterét. Ha a bemenet egy lista, akkor az utolsó elemét adja vissza. Ha a bemenet egy kép, akkor a LAST az utolsó képkockát adja vissza.
Próbáld ki az alábbi utasításokat:
? show last "TIBOR
R
? show last [[MAJOM] [ELEFÁNT][TIGRIS]]
[TIGRIS]
? show last [Tom és Jerry]
Jerry
? show
last ["TIBOR ]
["TIBOR ]
lastName
A kimenete az utoljára létrehozott objektum neve - de csak akkor, ha ugyanabban a folyamatban használod, amiben a new (vagy newObject) előfordult. Ez azt jelenti, hogy mind a new, mind a lastName parancsot vagy a paranccsorban kell használnod, vagy ugyanabban a "programrészben" (például egy felhasználó által definiált eljárásban).
Próbáld ki az alábbi utasításokat:
? new "Turtle [name kutyám shape |Allatok\kutya.lgf| pen pu]
? show
lastname
MyDog
left szám
(lt)
Az aktív teknőcöt a megadott szögben balra (óra járásával ellentétes irányba) fordítja. Az első aktív teknőc irányát a heading paranccsal tudhatjuk meg.
Próbáld ki az alábbi utasításokat:
? left 90
? wait 300
?
left 90
? wait 300
? left 180
less? szám1 szám2
A kimenő érték igaz, ha az első szám kisebb a másodiknál. Különben hamis értéket ad vissza.
Próbáld ki az alábbi utasításokat:
? show less? 1 3
true
? show less? 2 1
false
? show
less? 4 4
false
list bemenet1
bemenet2
list (bemenet1 bemenet2 bemenet3)
Kimenete egy lista, melynek elemei a bemenetek. A bemenetek lehetnek szavak, listák, képek. Figyeld meg a különbséget a list és a sentence között.
Próbáld ki az alábbi utasításokat:
? show list "Tea "Kanna
[Tea
Kanna]
? show list "A [B C]
[A [B C]]
?
show list ( 1 2 3 4)
[1 2 3 4]
? show (
list "kék "vörös "fekete )
[kék vörös fekete]
? show
list "egy [kettő három]
[egy [kettő három]]
? show
list [egy] [kettő három]
[[egy] [kettő három]]
list? bemenet
Igaz a kimenet, ha a bemenet egy lista. Egyébként a kimenet hamis.
Próbáld ki az alábbi utasításokat:
? show list? [A B C]
true
? show list? "Robert
false
? show
list? 2+3
false
? show list? FIRST [A
B]
false
? show list? FIRST [[A B][C D]]
true
loadImage fájl
Bemenetként egy LGF fájl, vagy bármely más elfogadott grafikus fájl nevét kapja, kiolvassa annak tartalmát és képként adja ki. Ha nincs meghatározva a kiterjesztés, a loadImage hozzáadja az LGF-et. Ha nincs meghatározva az elérési út, a jelenlegi (path "image) mappában keres.
Próbáld ki az alábbi utasításokat:
? make "kutya loadimage
"|Allatok\kutya.lgf|
? setshape :kutya
local szó
Létrehoz egy változót, vagy változókat a megadott névvel, ami
helyi változó lesz abban a folyamatban, eljárásban, ami a parancsot használja.
Ha több név van megadva, vagy nevek listája, egyetlen lépésben több helyi
változó jön létre. A local parancs bárhol lehet az eljárásban, mielőtt a make
vagy a name paranccsal értéket adunk neki. Jegyezd meg, hogy a local nem ad a
változónak értéket.
loop U-lista
Az bemeneti lista utasításait ismétli egy végtelen ciklusban. Ugyanazt jelenti, mint a while ["true] U-lista. A bemenetben szereplő utasítások "örökké" fognak futni - hacsak a folyamat, amely ezt a ciklus parancsot futtatja, nem törlődik. Azonban ne téveszd össze ezt az egyszerű vezérlő utasítást a forever utasítással, amely egy új független folyamatot indít el.
Próbáld ki az alábbi utasításokat:
? loop [rt random 360 fd 5 if abs pos > 80 [bk 5]]
lPut bemenet [lista]
Ha a második bemenet egy lista, az LPUT létrehoz egy módosított listát,
aminek az utolsó tagja az első bemenet és butLast tagjai a bementi lista elemei.
Ha mindkét bemenet kép, az LPUT kimenete egy módosított kép, melynek első része
a második kép kockáiból, a második része az első kép kockáiból áll. Az LPUT
image1 image2 ugyanaz, mint az image image2 image1. (Vigyázz a bemenetek
sorrendjére!)
Ha a második bemenet egy szó, az LPUT létrehoz egy módosított
szót úgy, hogy összerakja a második és az első szót. Az LPUT word1 word2 ugyanaz
mint a word word2 word1. (Vigyázz a bemenetek sorrendjére!)
Próbáld ki az alábbi utasításokat:
? show lPut "A [B C D]
[B
C D A]
? show lPut "A []
[A]
? show
lPut [Y Z] [W X]
[W X [Y Z]]
make szó érték
Egy változót definiál, melynek neve az első bemenet, értéke a második bemenet. Ahhoz, hogy ennek a változónak megtudd az értékét, a :word kifejezést használd.
Próbáld ki az alábbi utasításokat:
? make "kicsoda [TE
és ÉN]
? print thing "kicsoda
TE és ÉN
? make "száz 100
?
show :száz
100
member képsor1 képsor2
Megkeresi az képsor1 első előfordulását képsor2-ben, és kimenetként megadja azt a pozíciót képsor2-ben ahol az képsor1-et megtalálta. Ha nincs ilyen kép az képsor2-ben, a művelet eredménye 0.
Próbáld ki az alábbi utasításokat:
? show member "Imag "Imagine
1
? show member "gin "Imagine
4
member? bemenet1 bemenet2
A kimenet értéke igaz, ha az első bemenet tagja a második bemenetnek, ami egy lista. Különben a kimenet hamis.
Ha második bemenet egy szó, a MEMBER? egy szórészként keresi az első bemenetet a második bemenetben.
Próbáld ki az alábbi utasításokat:
? show member? "Imag "Imagine
true
? show member? "gin "Imagine
true
?
show member? "ima "Imagine
true
? show
member? "Imagine "imag
false
? show member?
"true "Imagine
false
myObjName szó
A kimenet értéke igaz, ha a fogadó maga tartalmazza a bemenet
által megnevezett objektum változót.
myPlace
A jelenlegi fogadó helyét jelöli.
name szó
A name beállítás csak akkor használható, amikor új teknőcöt hozol létre. A bemenetben szereplő szó az új teknőc nevét határozza meg.
Próbáld ki az alábbi utasításokat:
? new "Turtle [name kutyám shape |Allatok\kutya.lgf| pen pu]
name? szó
Igaz értéket ad vissza, ha a szó egy helyi vagy globális változó
neve.
new "osztály_név beállítás-lista
Egy osztály példányát, vagy egy példány példányát hozhatod létre. A második lehetőség lehetővé teszi, hogy először elkészíts egy példány prototípust, majd lépésről lépésre fejleszd a jellemzőit - változókat, eljárásokat és eseményeket. Ezután számos példányát készítheted el ezen prototípus alapján: mindegyikük örökli ugyanazokat az eljárásokat és eseményeket és megkapják a maguk másolatát minden egyes saját változóból.
Egy osztály vagy egy példány példányának létrehozása ugyanúgy történik, a new
paranccsal:
? new "osztály_név beállítás-lista
? new "egyed_név
beállítás-lista
Próbáld ki az alábbi utasításokat:
? new "Turtle []
?
new "Turtle [name kutyám shape |Allatok\kutya.lgf| pen pu]
not logikai
Ha a bemenet hamis, a kimenet az igaz érték. Különben a kimenet a hamis érték.
Próbáld ki az alábbi utasításokat:
? show number? 5
true
? show
not(number? 5)
false
number? bemenet
Igaz értéket ad vissza, ha a bemenet egy szám, azaz egy numerikus szó. Különben a kimenet hamis.
Próbáld ki az alábbi utasításokat:
? show number? 6
true
? show number? "6
true
? show
number? 1+1
true
? show number? first
[6 8]
true
onBegin web
Akkor fut, amikor egy weboldal betöltése elkezdődik a Web
böngészőben.
onChange csúszka, szövegdoboz
Ismételten fut, miközben a felhasználó mozgatja a csúszka
nyelvét, vagy amíg egy szövegdoboz jelenlegi tartalma változtatás alatt van.
Mindkét esetben ez azt jelenti, hogy az esemény reakciója ismételten fut, amikor
csak az objektum value (érték) tulajdonsága változik.
onChanged csúszka
Hasonló az onChange eseményhez. Azonban ez a reakció csak egyszer fut le, amikor a felhasználó (miután egy csúszka nyelvét vonszolta) elengedi a bal egérgombot.
onClean Lap, Panel
Akkor fut, ha a felhasználó létrehoz, vagy letöröl egy lapot,
vagy panelt.
onClick
Akkor fut, amikor a felhasználó rákattint az objektumra, azaz
lenyomja és elengedi a bal egérgombot az objektum fölött. Ha az objektumnak van
onClick eseménye, vagy örökli azt, akkor az ideiglenes fogadója a kattintott
objektum lesz.
onCollide Teknőc
Ha azt akarod, hogy az A teknőc reagáljon a teknőc B-vel való összeütközésre (vagy ugyanígy több teknőccel), a következő feltételeknek kell teljesülni:
Ekkor, ha az A teknőc mozgásban van, és nekimegy B teknőcnek, az onCollide
eseményének hatása fog futni. Arra a pillanatra az ideiglenes fogadó az A teknőc
lesz.
onComplete web
Akkor fut, amikor egy weboldal letöltése a Web böngészőben
befejeződik.
onCreate minden osztály
Amikor a felhasználó létrehoz egy új példányt a new vagy a
newObject használatával, minden onCreate esemény futni fog. Az így megtalált
onCreate események föntről lefelé futnak a Main osztálytól le az objektum
szülőjéig. Jegyezd meg, hogy az Imagine-ben nem egy általános stratégia az, hogy
az összes eseményt lefuttatja, amit az objektumban és a leszármazottaiban talál.
Általában csak az öröklésben talált első esemény fut le.
onDoubleClick
Akkor fut amikor duplát kattintasz az objektumra. Ha az
objektumnak van onDoubleClick eseménye, vagy örökli azt, akkor az úgy fut, hogy
az ideiglenes fogadó az az objektum, amire kétszer kattintottál.
onDrag
Akkor fut, amikor a felhasználó az objektum fölé mozgatja az
egérmutató úgy, hogy a bal egérgomb le van nyomva. Ha a felhasználó a gombot az
objektum fölött nyomja meg, akkor addig fogja ismételten futtatni az onDrag
eseményt, amíg a gombot föl nem engeded - akkor is, ha az egérmutatót kihúzod az
objektumról. Amíg az esemény fut, az ideiglenes fogadó az objektum lesz.
onJoystickButton1Down tetszőleges objektum, amely irányítható a joystick-el
Akkor fut, ha a joystick objektum első gombját lenyomod. Az
esemény úgy fut, hogy az ideiglenes fogadója az objektum controlledObject-je.
Ugyanez igaz minden négy gombra.
onJoystickButton1Up tetszőleges objektum, amely irányítható a joystick-el
Ugyanaz mint fent, amikor egy joystick első négy gombjából
valamelyiket elengeded.
onJoystickMove tetszőleges objektum, amely irányítható a joystick-el
Akkor fut, amikor bármelyik joystick jelenlegi X, Y vagy Z
értéke megváltozik.
onLeftDown
Akkor fut, ha a felhasználó lenyomja a bal egérgombot egy
objektumon. Ha az objektumnak van onLeftDown eseménye, vagy örökli azt, akkor az
úgy fut, hogy az ideiglenes fogadója az adott objektum.
onLeftUp
Akkor fut, ha a felhasználó lenyomja a bal egérgombot egy
objektumon, azután elengedi (bárhol). Ha az objektumnak van onLeftUp eseménye,
vagy örökli azt, akkor az úgy fut, hogy az ideiglenes fogadója az adott
objektum.
onLoad
Akkor fut egy objektumnál, miután az létrejött a következő
módszerek valamelyikével; fájlból, vagy a Windows Vágólapról lett betöltve a
load, loadproject vagy clone parancsokkal, vagy a Paste from Clipboard menüpont
választásával a környezeti menüben. Ha az objektumnak van onLoad eseménye, vagy
örökli azt, akkor az úgy fut, hogy az ideiglenes fogadója az adott objektum.
onMiddleDown
Akkor fut, ha a felhasználó megnyomja a középső egérgombot egy
objektumon. Ha az objektumnak van onMiddleDown eseménye, vagy örökli azt, akkor
az úgy fut, hogy az ideiglenes fogadója az adott obejktum.
onMiddleUp
Akkor fut, ha a felhasználó lenyomja a középső egérgombot egy
objektumon, azután elengedi azt (bárhol). Ha az objektumnak van onMiddleUp
eseménye, vagy örökli azt, akkor az úgy fut, hogy az ideiglenes fogadója az
adott objektum.
onMouseEnter
Akkor fut, ha a felhasználó az egérmutatót úgy mozgatja -
anélkül, hogy a bal gomját lenyomná - hogy az rámegy egy objektumra a képernyőn.
Ha az objektumnak van onMouseEnter eseménye, vagy örökli azt, akkor az úgy fut,
hogy az ideiglenes fogadója az adott objektum.
onMouseLeave
Akkor fut, ha a felhasználó az egérmutatót úgy mozgatja -
anélkül, hogy lenyomna egy gombot - hogy az elhagyja azt az objektumot a
képernyőn, amire korábban rálépett. Ha az objektumnak van onMouseLeave eseménye,
vagy örökli azt, akkor az úgy fut, hogy az ideiglenes fogadója az adott
objektum.
onMouseMove
Ismételten fut akkor, ha a felhasználó az egérmutatót egy
objektum fölött mozgatja - anélkül, hogy lenyomna egy gombot. Ha az objektumnak
van onMouseMove eseménye, vagy örökli azt, akkor az úgy fut újra és újra, hogy
az ideiglenes fogadója az adott objektum - addig, amíg meg nem állítod az
egeret, vagy el nem hagyod az objektumot. Ekkor visszaáll az előző fogadó.
onPositionChange MédiaLejátszó
Akkor fut, amikor a MédiaLejátszó objektum megváltoztatja a
pozícióját azon a média fájlon belül, amelyik jelenleg nyitva van. Ez az esemény
csak akkor fut, ha az alábbi parancsok valamelyikével változtatod meg a
MédiaLejátszó pozícióját: backstep, rewind, step és setPosition. Amíg ez az
esemény fut, az ideiglenes fogadó a MédiaLejátszó objektum lesz.
onPush gomb, eszközgomb
Akkor fut, amikor a felhasználó megnyom egy (bármilyen típusú)
gombot úgy, hogy a bal egérgombot lenyomja fölötte. Ha a gombnak van onPush
eseménye, vagy örökli azt, akkor úgy fut, hogy önmagát teszi ideiglenes
fogadóvá.
onRelease gomb, eszközgomb
Akkor fut, amikor a felhasználó felenged egy kapcsoló gombot,
vagy egy eszközgombot (ami előtte le volt nyomva). Amíg az esemény fut, az
ideiglenes fogadó az adott gomb.
onRigthUp
Akkor fut, amikor a felhasználó elengedi a jobb egérgombot,
amely előtte le volt nyomva egy objektumon. Ha az objektumnak van onRightUp
eseménye, vagy örökli azt, akkor az úgy fut, hogy az ideiglenes fogadója az
adott objektum.
or logikai logikai
A kimenete hamis, ha minden bemenete hamis. Különben a kimenet igaz.
Próbáld ki az alábbi utasításokat:
? show or number? 5 number? 6
true
? show or number? "s number? 6
true
? show or number? "s number? "z
false
overlapped
Kimenete azoknak a teknőcöknek a listája, amelyek jelenleg
takarásban vannak az első aktív teknőccel. A takarás vizsgálata az overlapMode
változó jelenlegi értéke szerint történik.
overlap? teknőc
overlap? teknőc1 teknőc2
A kimenet értéke igaz, ha a első aktív teknőc takarja a
bemenetben megnevezett teknőcöt. Ha a bemenet teknőcök listája, akkor a művelet
akkor ad igaz értéket, ha az első aktív teknőc a listában szereplő teknőcök
közül legalább egyet takar. Különben a művelet kimenete hamis. A takarás
vizsgálata az overlapMode változó jelenlegi beállítása szerint történik.
pageWho szó vagy lista
Megadja a következők közül valamelyiket:
pause
Megállítja a megnyitott medialejátszó fájlt, amely jelenleg
lejátszódik. A media player állapota Paused lesz.
pauseAll
Mindenfajta jelenleg futó folyamatot megállít. Ha egy paranccsori folyamat futott, és megállítottad, a paranccsor maga nem lesz elérhető újabb parancs beírásához. Ugyanezt megteheted, ha rákattintasz a Megállít/Folytat gombra a Főeszköztárban. Az összes megállított folyamat újraindításához kattints mégegyszer a gombra.
pen toll-állapot
A teknőc tollának állapotát adja meg. A pu, pd, pe vagy px szavak egyikét kell megadni. Az alapértéke pd (a toll letéve).
Próbáld ki az alábbi utasításokat:
? show pen
pd
? fd 100
? setpen "pu
? fd 100
? show pen
penColour
tollszín
(pc)
Megadja a teknőc tollának a színét. Alapértéke black (fekete).
Próbáld ki az alábbi utasításokat:
? show pencolour
black
?fd 30
? setPenColour "darkblue8
? fd 30
? show
pencolour
darkblue8
penDown
(pd)
A parancs segítségével letehetjük minden aktív teknőc tollát a papírra. A parancs kiadása után minden aktív teknőc (a beállított vastagság, szín és minta értékeknek megfelelő) vonalat fog rajzolni, ahogy a grafikus képernyőn halad. Az aktív teknőc tollának viselkedését a penUp és a penErase parancsokkal változtathatod meg.
Próbáld ki az alábbi utasításokat:
? penDown
? forward 50
? penUp
? forward 50
? penDown
? forward
50
penErase
(pe)
Mindegyik aktív teknőc tollának állapotát megváltoztatja úgy, hogy ha azok a
lapon mozognak, minden pontot kitörölnek, amin átmennek. Egy pont törlése azt
jelenti, hogy háttérszínű lesz.
Az aktív teknőc tollállapotának
megváltoztatására használd a penUp, penDown parancsokat. A háttérszín
megváltoztatására pedig használd a setBgColour parancsot.
Próbáld ki az alábbi utasításokat:
? showTurtle
? penDown
? repeat 4 [forward 50
right 90]
? penErase
? repeat 4 [forward 50
right 90]
penPattern
toll-minta
(pp)
A toll mintázatát adja meg. Az alap beállítás 0, azaz egy normál egyenes vonal.
Próbáld ki az alábbi utasításokat:
? show penPattern
0
?fd 30
? setPenPattern "1
? fd 30
? show
penPattern
1
? setPenPattern "4
? fd 30
? show
penPattern
4
penReverse
(px)
Mindegyik aktív teknőc tollának állapotát megváltoztatja úgy, hogy amikor az a rajzterületén mozog, invertál (azaz felcseréli a tollszínt és a háttérszínt) minden pontot, (a jelenlegi tollvastagságot használva) amelyen keresztülhalad. Ez a tollállapot sok érdekes effektust (hatást) kínál, amelyek a tollszín és a háttérszín jelenlegi kombinációjától függenek. Például, ha beállítod a tollszínt ugyanolyanra, mint a háttérszín, és rajzolsz egy vonalat penReverse állapotban, lehetséges lesz, hogy ezt a vonalat kitöröld anélkül, hogy a rajzterületen más vonalak sérülnének úgy, hogy újrarajzoltatod a teknőccel ugyanazt a vonalat mégegyszer a kezdeti pontjától a végpontjáig.
Próbáld ki az alábbi utasításokat:
? cs
? repeat 100 [fd 100 bk 100 rt 90 pu fd random 5
left 90 pd]
? px
? setPc "white
? setPw 3
? fd 200
? left 90
? px
? fd 200
penUp
(pu)
Ezzel a paranccsal minden aktív teknőc tollát felemelhetjük a papírról. A parancs kiadása után az aktív teknőcök nem húznak vonalat, amikor a grafikus képernyőn haladnak. Az aktív teknőc tollának aktuális állapotát a penDown és penErase parancsokkal változtathatjuk meg.
Próbáld ki az alábbi utasításokat:
? forward 30
? penUp
?
forward 30
penWidth
(pw)
A kimenete az aktív teknőc tollának jelenlegi vastagsága. Az alapértelmezett beállítás 1.
Próbáld ki az alábbi utasításokat:
? show penWidth
1
?
repeat 5 [fd 30 setPenWidth penWidth * 3]
? show
penWidth
243
pick képsor
Az eredmény tartalmazza a kép (image) véletlenszerűen kiválasztott részletét (frame).
Próbáld ki az alábbi utasításokat:
? t1'setshape pick [|Szamok\1.lgf| |Szamok\2.lgf| |Szamok\3.lgf|]
play lista
(play lista1 lista2 ....)
Hatására a számítógép lejátssza a bemeneti listában szereplő dallamot (vagy
dallamokat).
A bemeneti lista lehet a zenei hagjegyek megadása betűvel: c d
e f g a b (vagy h), és még néhány szimbólum, melyeknek jelentése a következő:
Az L, T, O, V és I által megadott beállítások mindaddig érvényesek az utánuk következő play parancsokra, amíg új értéket nem kapnak, vagy az R vissza nem állítja őket.
Próbáld ki az alábbi utasításokat:
? play [R O2 c d e f g a b O3
c]
? to CsendesÉj
> play [I19 R T70 L8 O2]
> repeat 2 [ play [f. 16g f 4d.] ]
>
play [L4 O# c 8c Ob a.]
> play [hb 8hb f.]
> repeat 2 [ play [O2 G 8G 8A#. 16A 8G 8F. 16G 8F
D.]]
> play [O3 C 8C 8D#. 16C O2 8A A#. O3 D.]
> play [O2 8A#. 16F 8D 8F. 16EB 8C T65 O1 A#. A#.]
> end
? CsendesÉj
playFile multimedia-fájl
ahol a multimedia-fájl típusát az elfoadott multimédia fájlok közül kell
kiválasztani. Átadja a fájlt a Windows MCI felületének, hogy az lejátssza azt.
Ha a playFile parancsot paranccsori folyamatban használod, az Imagine leállítja
az utána következő összes utasítás futását addig, amíg az egész bementi fájlt
lejátssza. Csak aztán folytatja a következő utasításokkal.
playWave fájl
(play fájl1
fájl2 ....)
play [ fájl1 fájl2 ....]
Lejátssza a zenét, mely a WAV fájlokban van kódolva. Ha csak egy
bemenete van, akkor elkezdi lejátszani, és azonnal továbbmegy a következő
utasításokra, miközben a dallamot még játssza. Ez azonban nem igaz, ha az
Imagine talál egy másik playWave utasítást, és le kell jászania annak bemenetét,
vagy bemeneteit. Ha az első dallam még mindig megy, akkor megszakad és a második
playWave játszódik le. Ha először be akarod fejezni az első dallam lejátszását,
és csak utána lejátszani a másodikat és utána esetleg egy harmadikat stb., akkor
lehetséges őket egy playWave utasításba tenni (playWave "X "Y "Z ...) formában.
pos
A kimenete egy [X Y] pont, mely megadja (Descartes koordinátákkal) az első aktív teknőc aktuális pozícióját. Figyeld meg, hogy a Descartes sík origója a grafikuis képernyő közepén helyezkedik el. Az összes aktív teknőc jelenlegi pozícióját (Descartes stílusban, azaz egy új [X1 Y1] pont megadásával) a setPos, setXcor, setXY vagy a setYcor paranccsal változtathatod meg.
Próbáld ki az alábbi utasításokat:
? clearScreen
? forward 100
? show
pos
[0 100]
? right 90
? forward 100
? show
pos
[100 100]
position szám
Azt adja meg, hogy a media player ablakban a média fájlnak mely
képkockája látható jelenleg.
print bemenet1
(print bemenet1 bemenet2)
Kiír minden bemenetet a szöveges képernyőre vagy a kimeneti fájlba. Ha egynél több bemenet van, akkor szóközökkel elválasztva írja ki őket. A print parancs a kurzort a következő sor elejére viszi. A print "olvasható" kiírást készít - elhagyja a listák külső zárójeleit. Hasonlítsd össze a show és type parancsokkal.
Próbáld ki az alábbi utasításokat:
? print "fiú
fiú
? (print
"fiú "lány)
fiú lány
? print [Gyere
ide]
Gyere ide
? (print [Gyere ide][most])
Gyere
ide most
product szám1 szám 2
(product szám1 szám2 szám3 ...)
A kimenete a két bemenet szorzata. Kettőnél több (vagy kevesebb) bemenetnél az egész utasítást zárójelek közé kell tenni.
Próbáld ki az alábbi utasításokat:
? show product 2 30
60
? forward product 10 10
? show (product
2 10 10)
200
prompt
Megadja a MainWindow jelenlegi készenléti jelét. Az alapértéke egy kérdőjel és utána egy szóköz ? .
Próbáld ki az alábbi utasításokat:
? show prompt
?
?
setprompt "+
+ show prompt
+
? setprompt
"?
quotient szám1 szám2
Két szám hányadosát adja meg. A nullával való osztás esetén hibaüzenetet küld: ERROR.
Próbáld ki az alábbi utasításokat:
? show 10/2
5
? forward 100/2
? forward
quotient 100 2
random szám
0 és 1 között ad egy véletlen egész számot. (Ha a bemenet nem egész szám, akkor először kerekíti azt.) Például a random 5 kimenete 0, 1, 2, 3, vagy 4.
Próbáld ki az alábbi utasításokat:
? show random 2
0 or 1
? repeat 4 [show random 5]
? setBgColour
random 16
randomize
Elindítja a beépített véletlenszám generátort egy olyan véletlen
értékkel, amit a rendszeróra segítségével nyer. Ez mindig automatikusan lefut,
amikor elindítod az Imagine-t, így (szinte) soha nem kapod ugyanazokat a
véletlen számokat, amikor kétszer megnyitod és futtatod ugyanazt a projektet.
readChar
(rc)
Kimenete egy, a billentyűzeten begépelt karakter. Ha nem gépeltél be karaktert (azaz a billetyűzet egyetlen gombja sem lett lenyomva), a READCHAR vár. (Gyakorlatiasabban: addig vár, amíg a key? kimenete igaz nem lesz). A begépelt karakter nem látható a képernyőn. Ha valamelyik kiválasztott vezérlőbillentyűt nyomod meg(nyilak, Insert, Del, Home, End, PageUp, PageDown), akkor a READCHAR kimenete CHAR 0 lesz és újra használnod kell a READCHAR parancsot, hogy magát a kódot megtaláld. Hasonlítsd össze figyelmesen a readKey paranccsal.
Próbáld ki az alábbi utasításokat:
? make "key readChar
Gépeld be az "a" betűt.
? show :key
a
readKey
A kimenete annak a billentyűnek a numerikus ASCII kódja, amelyet a billentyűzeten megnyomtál. Ha nem nyomtál meg billentyűt a billentyűzete, a readKey vár (azaz addig vár, amíg a key? kimenete igaz nem lesz). A begépelt karakter nem jelenik meg a képernyőn. A readKey speciális értékeket ad ki az alábbi vezérlő billentyűkre:
Próbáld ki az alábbi utasításokat:
? show sentence readKey readKey
Nyomj meg bármilyen billentyűt!
[98 66]
; ha a "b"
és a
"B" billentyűt nyomtad le.
readList
(rl)
Kiír egy listabeolvasó készenléti jelet ( : ) a szöveges képernyőre, és vár, amíg begépelsz valamit és megnyomsz egy Enter-t. A kimenete az lesz listaként, amit begépeltél.
Próbáld ki az alábbi utasításokat:
? show readlist
: csak
három szó
[csak három szó]
? show readlist
: nagyon [furcsa [szerkezet]]
[nagyon [furcsa [szerkezet]]]
readWord
(rw)
A Logo kiír egy listaolvasó készenléti jelet és egy szóközt a szöveges képernyőre, és vár, amíg begépelsz egy szót és megnyomod az Enter-t. A readWord művelet kimenete ez a szó lesz. Ha egynél több szót gépelsz be (mielőtt megnyomod az Enter-t), A readWord csak az elsőt fogja kiírni.
Próbáld ki az alábbi utasításokat:
? make "teNeved readWord
: Péter
? print :teNeved
reorder list
Átrendezi mind az összes teknőc listáját, azaz az allturtles listát, és az összes tulajdonképpen aktív teknőc listáját is, azaz a who listát. Ha a bemeneti listában [turt1 turt2 ... turtN] szerepel, és ennek minden eleme aktív, vagy passzív teknőc, akkor a turt1 lesz az allturtles lista első tagja, a turt2 a második... stb. Az első teknőc, amelyik a turt1, ... turtN között jelenleg aktív, az lesz a who lista első tagja is, azaz ez lesz az első aktív teknőc.
Próbáld ki az alábbi utasításokat:
? new "Turtle [name egy]
? new "Turtle [name
kettő]
? show allturtles
[t1 egy kettő]
? reorder [kettő
egy]
? show allturtles
[kettő egy t1]
repcount
(repc)
Csak a repeat, FOR, WHILE és FOREACH parancsokon belül használhatod. Kimenetként azt adja meg, hogy egy adott repeat utasítás (ezzel együtt) hányszor futott már le:
A REPCOUNT művelet változóként viselkedik, melynek értéke a repeat parancs törzsében mindig eggyel növekszik.
Próbáld ki az alábbi utasításokat:
? repeat 20 [show repcount wait 100]
repeat szám [lista]
Adott számszor végrehajtja az utasításlistát. Ha REPEAT első bemenete kisebb egynél, az utasításlista nem fut le. Ha a szám nem egész, annak törtrészét először levágja. A REPEAT parancsot használhatod egy másik REPEAT parancson belül is, stb. Gyakran nagyon hasznos, a repcount műveletet használni az utasításlistán belül annak ellenőrzésére, hogy hányszor volt már ismételve az utasításlista.
Próbáld ki az alábbi utasításokat:
? repeat 3 [show "Hello]
Hello
Hello
Hello
? repeat 10 [forward 10 wait
100]
? repeat 4 [right 90
repeat 4 [forward 10 wait 100]]
right szám
(rt)
Mindegyik aktív teknőcöt a megadott szögben jobbra elforgatja. Az első aktív teknőc aktuális irányát a heading paranccsal tudhatjuk meg.
Próbáld ki az alábbi utasításokat:
? clean
? right 90
?
wait 300
? right 90
? wait 300
?
right 180
round szám
Kimenete a bemeneti számhoz legközelebbi egészet.
Próbáld ki az alábbi utasításokat:
? show round 7.72
8
?
show round -55.5
-56
run U-lista
run
[expression]
Ha a RUN szót parancsként használod, akkor lefuttat minden utasítást az utasításlistából. A RUN list parancs egyenértékű a REPEAT 1 list paranccsal. Ha a RUN parancsot műveletként használod, akkor a bemeneti kifejezés értékét adja meg (azaz, a kifejezés kiértékelésének eredményét).
Próbáld ki az alábbi utasításokat:
? run [print "egy forward 100]
egy
? make "valami [repeat 40 [forward 80 left 117] ]
? run :valami
save fájl
save fájl
[obj1 obj2 ..]
Ha a parancsnak egy bemenete van, akkor az Imagine memória
teljes tartalma (azaz az összes felhasználó által létrehozott objektum és azok
eljárásai, eseményei, stb.) el lesznek mentve a bemenet által megadott Imagine
projekt fájlba. Ha a parancsnak két bemenete van, akkor csak a második bemeneten
szereplő listában felsorolt objektumokat menti. Az objektumok mellett itt
felsorolhatsz globális változók neveit - a nevek kettősponttal : kell, hogy
kezdődjenek. Például (save "fájl22 [pane1 text22 :X :Y :Z]).
saveBgPicture fájl
Ez ugyanaz mint a saveImage fájl bgPicture egy kis különbséggel: ha a fájlnévben nem adtunk meg kiterjesztést, a saveBgPicture BMP kiterjesztést ad neki LGF helyett.
Próbáld ki az alábbi utasításokat:
? saveBgPicture "firka
?
cs
? loadBgPicture "firka.bmp
saveImage fájl [képsor ...]
Menti az összes megadott képet egy LGF fájlba. Például közülük a harmadik visszatöltéséhez az Imagine-be a loadImage "fájl:3 parancs használható.
Próbáld ki az alábbi utasításokat:
? t1'setshape "|Gombok\balra.lgf|
? saveimage
"balra_1 t1'shape
? t1'setshape "|Gombok\jobbra.lgf|
? t1'setshape
"balra_1
say szöveg
Ha van a gépeden telepítve beszédszintetizátor, ez a parancs kimondatja azzal a bementben szereplő szöveget, a jelenleg beállított hangot használva. Választhatsz másik hangot a főmenüből az Beállítások/beszédhang beállítása parancs kiválasztásával. Ekkor megnyílik a Válaszd ki a megfelelő... dialógusablak, és fölajánlja különböző hangokat, amelyeket a beszédszintetizátor rendelkezésre bocsát.
Próbáld ki az alábbi utasításokat:
? say [Hello I'm the computer]
sentence
bemenet1 bemenet2
(sentence bemenet1 bemenet2 bemenet3)
(se)
Kimenete egy lista, melyet a következő módon alkot: ha minden bemenet lista, azok elemeit egyetlen listába teszi. Ha valamelyik bemenet szó, akkor az elemként lesz beillesztve az eredmény listába.
Figyeld meg a különbséget a sentence és a list parancs között. Szintén nézd meg a különbséget a show és a print parancs között, ha mindkettőt listára alkalmazod.
Próbáld ki az alábbi utasításokat:
? show sentence "Hello
"Világ
[Helló Világ]
? show ( sentence
"kék "zöld "lila)
[kék zöld lila]
? show sentence
"egy [kettő három]
[egy kettő három]
? show sentence
[kettő három] "egy
[kettő három egy]
? show sentence
[A B C] [D E]
[A B C D E]
setBgColour szám
A bemenetben megadott színre (számkód alapján) állítja a grafikus képernyő háttérszínét. A teljes grafikus képernyő törlődik, a megadott színnel lesz befedve, és a képernyő tartalma elvész. Azonban a teknőcök állapota nem változik, mindegyik a helyén marad, továbbra is látszanak, vagy nem látszanak, mint azelőtt, stb. Nézd meg a cleanBgPicture és a clearScreen parancsokat.
Próbáld ki az alábbi utasításokat:
? setBgColour 1
setDelay képsor szám
Az első bemenetben megnevezett kép mindegyik képrészének mindegyik képkockájára a második bemenetben megadott számot állítja be késleltetési értéknek. Kimenete az így megváltoztatott kép. A bemenetként megadott számnak egésznek kell lennie, ami 0, vagy annál nagyobb. Az 1000 késleltetési érték 1 másodpercnek felel meg. Ha a különböző képelemeknek különböző késleltetési értéket akarsz megfeleltetni, használd a LogoMotion szerkesztőt.
Próbáld ki az alábbi utasításokat:
? make "újkutya loadImage |Allatok\kutya.lgf|
? show delay :újkutya
100
? setShape toAnimFilm :újkutya
? setShape toAnimFilm
setDelay :újkutya 150
setFillColour
szám
(setfc)
Minden aktív teknőcnek megadja azt a kitöltőszínt, amit a fill fog használni. Ha egy teknőcnek nem adtál meg kitöltőszínt, akkor az ugyanaz lesz, mint a teknőc tollszíne. Tehát ez a parancs lehetővé teszi, hogy a vonalakhoz és a kitöltésekhez különböző színeket használj. Azonban minden alkalommal, amikor megváltoztatod a tollszínt a setPenColour paranccsal, az aktuális kitöltőszín ugyanarra a színre változik. Az első aktív teknőc kitöltőszínének megállapításához használd a fillColour parancsot. A kitöltő mintázat beállításához a setFillPattern parancsot használd.
Próbáld ki az alábbi utasításokat:
? clean
? setPenColour 12
? repeat 4 [forward 100
right 90]
? right 45
? penUp
? forward 2
? penDown
?
setFillColour 14
? fill
setFillPattern
szám
(setfp)
A setFillPattern meghatározza minden aktív teknőc számára azt a kitöltőmintát, amelyet a fill, vagy a filling használ. Ha még nem használtad a parancsot, a kitöltőszín 0.
Próbáld ki az alábbi utasításokat:
? setPenColour 12
? repeat 4 [forward 100 right 90]
? right 45
? penUp
? forward 2
? penDown
?
setFillPattern 3
? fill
setHeading
szám
(seth)
Minden aktív teknőcöt elforgat úgy, hogy iránya megegyezik a megadott szöggel (azaz függetlenül az aktuális irányától). Az irányt fokokban mérjük az óra járása szerinti irányban északi irányból, azaz a SETHEADING 0 parancs az északi irányba állítja az aktív teknőcöket, a SETHEADING 90 kelet felé fordítja őket, stb. Az első aktív teknőc irányát a heading művelettel állapíthatod meg.
Próbáld ki az alábbi utasításokat:
? clean
? setHeading 180
? setHeading 90
setHotSpot képsor [X Y]
A megnevezett kép minden képelemének minden képkockájának érzékeny pontját a megadott [X Y] koordinátára állítja, és kimenetként megadja az így módosított képet.
Próbáld ki az alábbi utasításokat:
? setShape []
? show hotSpot
shape
[7 18]
setPenColour
szám
(setpc)
A bemenet egy 0 és 15 közötti szám lehet. A paranccsal az aktív teknőcök tollának aktuális színe változtatható a bemenetben megadott színnel. Minden teknőc vonalat húz (a beállításnak megfelelő színűt, mintájút és vastagságút), ha aktív és a tollának állapota penDown, azaz le van téve a papírra.
Próbáld ki az alábbi utasításokat:
? setPenColour 9
? forward
50
? setPenColour 10
? forward 50
setPenPattern
szám
(setpp)
A bemenet 0, 1, 2, 3, vagy 4 lehet. A paranccsal az összes aktív teknőc által (penDown állapotban) rajzolt vonalak mintáját állíthatod be .
Próbáld ki az alábbi utasításokat:
? setPenPattern 2
?
penDown
? forward 50
? cs
? setPenWidth 1
?
setPenPattern 2
? repeat 4 [fd 150 rt 90]
setPenWidth
szám
(setpw)
A paranccsal az aktív teknőcök tollának vastagsága változtatható a bemenet szerint. Amikor új teknőc jön létre a new paranccsal, annak tollvastagsága 1.
Próbáld ki az alábbi utasításokat:
? home
? setPenWidth 5
? forward 100
? setPenWidth 200
? forward 100
setPos [szám1, szám2]
Minden aktív teknőcöt a bemenetben meghatározott pontra mozgat. A SETPOS nem változtatja meg a teknős irányát. Amennyiben a teknőc tolla penDown állapotban van, a mozgás során a teknőc vonalat húz maga után. Az első aktív teknőc helyzetének megtalálásához használd a pos parancsot. A setXcor, setYcor, setXY, és setPos parancsokon kívül egy aktív teknőc pozicóját a forward, back, clearScreen, és home parancsokkal is megváltoztathatjuk.
Próbáld ki az alábbi utasításokat:
? clean
? penDown
? left 45
?
setPos [100 100]
setShape képsor/ fájl / []
Egy képet határoz meg, amely minden aktív teknőc alakja lesz: ha a bemenet egy LGF fájl neve, vagy egy kiterjesztés nélküli fájl, akkor a parancs ugyanaz, mint a setShape loadImage "fájl. Ha a bemenet egy elfogadott grafikus fájl neve, akkor az betöltődik és tartalma átalakul a megfelelő képformátummá. Ha a bemenet egy üres lista [], akkor minden aktív teknőc alakja az alapformára cserélődik.
Próbáld ki az alábbi utasításokat:
? setShape []
?
setShape "Forgo_alakok\\Bogi3
setShapeColour szám
Mindegyik aktív teknőcnek van egy aktív alakszíne. A bemenetnek a 16 alapszín közül az egyiknek kell lennie. Ha a bemenet egy üres lista [ ], akkor minden atív teknőc aktív alakszíne "No"-ra lesz állítva, azaz ezeknek a teknőcöknek nem lesz meghatározva az aktív alakszínük. Ebben az esetben a shapeColour művelet kimenete [ ] lesz. Vedd észre, hogy habár az aktív alakszín az egyike a 16 alapszínnek, (a setPenColour paranccsal) ki lehet cserélni az alakban bármelyik RGB színre.
Próbáld ki az alábbi utasításokat:
? setPenColour 0
? setShapeColour
2
? forward 100
? wait 1000
? setShapeColour
4
setVoice
Beállítja azt a hangot (pl.: Sam, Mary etc.) vagy hang módot
(pl.: TextAssist (TrueVoice, Echo, ENGLISH), stb.) amelyiken a szöveg elmondásra
kerül a say parancs használatakor. Használhatod a Options / Set computer voice
menüt is a hang beállítására. A kiválasztás megkönnyítésére a setVoice
parancsnak van egy kiválasztója (chooser), amely megnyitja a Select Voice...
dialógusablakot. Itt csak rá kell kattintani a listában található egyik
lehetőségre, és be kell zárni a Do it! vagy a Write it! gombbal.
setXcor szám
A parancs minden aktív teknőcöt vízszintesen a bemenet által meghatározott új X koordinátára mozgat a jelenlegi pozíciójáról. A setXcor nem változtatja meg a teknőc aktuális irányát, vagy helyzetének Y koordinátáját. Ha a teknőc penDown állapotra van állítva, az új X koordinátára való mozgás során a vonalat húz.
Az első aktív teknőc X koordinátájának meghatározásához használjuk a xcor parancsot. Jelenlegi helyzetének meghatározásához használjuk a pos parancsot. A setXcor, setYcor, setXY, és setPos parancsokon kívül egy aktív teknőc pozicóját a forward, back, clearScreen, and home parancsokkal is megváltoztathatjuk.
Próbáld ki az alábbi utasításokat:
? showTurtle
? penDown
?
setXcor 50
? right 45
? penUp
? setXcor
100
setXY szám1 szám2
A parancs minden aktív teknőcöt egy új pontra mozgat, melynek X koordinátáját az első, Y koordinátáját pedig a második bemenet határozza meg. A setXY nem változtatja meg a teknőc irányát. Ha a teknőc penDown állapotban van, az új pozícióra való mozgás során vonalat húz maga után. Az első aktív teknőc jelenlegi helyzetének meghatározásához használjuk a pos parancsot. A setXcor, setXY, setYcor, és setPos parancsokon kívül egy aktív teknőc pozícóját a forward, back, cleanScreen, és home parancsokkal is megváltoztathatjuk.
Próbáld ki az alábbi utasításokat:
? showTurtle
? penDown
?
setXY 50 70
? penUp
? setXY 30 150
setYcor szám
A parancs minden aktív teknőcöt függőlegesen egy új Y koordinátára mozgat amelyet a bemenet határoz meg. A setYcor nem változtatja meg a teknőc irányát, vagy helyzetének X koordinátáját. Ha a teknőc penDown állapotban van, az új Y koordinátára való mozgás során vonalat húz maga után. Az első aktív teknőc Y koordinátájának meghatározásához használd az ycor parancsot. Jelenlegi helyzetének meghatározásához pedig használd a pos utasítást. A setYcor, setXcor, setXY, és setPos parancsokon kívül egy aktív teknőc pozicóját a forward, back, clearScreen, és home parancsokkal is megváltoztathatjuk.
Próbáld ki az alábbi utasításokat:
? showTurtle
? penDown
?
setYcor 50
? right 45
? penUp
? setYcor
100
shape
A kimenete az a kép amit a jelenlegi első aktív teknőc használ alakként: Ha a teknőc formáját egy rajzlista adja meg, akkor a shape művelet kimenete az a lista, nem pedig az alak maga. Ha a teknőc alakját rajzlisták listája határozza meg, a shape kimenete az a lista.
Próbáld ki az alábbi utasításokat:
? show shape
(image24)
?t1'setshape "Forgo_alakok\\Bogi3
? show shape
(image1/1)
shapeColour
Kimenete az első aktív teknőc jelenlegi aktív alakszíne. A jelenlegi shapeColour megváltoztatásához használd a setShapeColour parancsot.
Próbáld ki az alábbi utasításokat:
? setShapeColour 1
? print
shapeColour
blue3
? setShapeColour 2
? print
shapeColour
green3
shapeScale
Kimenetként az első aktív teknőc alakjának méretarányát adja meg, például 2 vagy [3 1] vagy [-1 1].
Próbáld ki az alábbi utasításokat:
? show shapeScale
1
?
t1'setShapeScale 3
? t1'setShapeScale 5
? t1'setShapeScale [3 5]
?
t1'setShapeScale [3 2]
? t1'setShapeScale [5 3]
? show
shapeScale
[5 3]
? t1'setShapeScale 1
show bemenet1
(show bemenet1 bemenet2)
Kiír minden bemenetet a szöveges képernyőre, vagy a kimeneti fájlba. Ha több bemenet van, akkor szóközökkel elválasztja őket. A SHOW utána a kurzort a következő sor elejére viszi. A show "technikai" kiírást használ - változatlanul ír ki minden zárójelet. Nézd meg a print és type parancsokat.
Próbáld ki az alábbi utasításokat:
? show "Imagine
Imagine
? print [egy kettő]
[egy kettő]
? print [EGY [KETŐ HÁROM] [NÉGY]]
[EGY
[KETTŐ HÁROM] [NÉGY]]
? show allturtles
[t1]
? show pos
[0 0]
showButtons
Előhozza a Gombsor ablakot a képernyőn. Ez a gombok eljárásaitól
függetlenül történik - a gombok beállításai nem változnak azáltal, hogy
eltünteted, vagy előhozod a Gombsor ablakot.
turtlename'showMe
Ez ugyanaz mint a showTurtle.
shown?
A kimenete igaz, ha az első aktív teknőc jelenleg látszik a helyén. Különben a kimenete hamis. (Ez összefügg a teknőc shown tulajdonságával).
Próbáld ki az alábbi utasításokat:
? showTurtle
? show shown?
true
? hideTurtle
? show shown?
false
shown?
A kimenet értéke igaz, ha az első aktív teknőc jelenleg látható a helyén. Különben hamis értéket ad vissza. (Ez összefügg a teknőc shown beállításával).
Próbáld ki az alábbi utasításokat:
? show shown?
true
?
hideme
? show shown?
false
showSpeedBar
Láthatóvá teszi a Főeszköztárat (Main Bar) a képernyőn. A hideSpeedBar paranccsal el is rejtheted.
Próbáld ki az alábbi utasításokat:
? hideSpeedBar
? wait 300
showSpeedBar
showTurtle
(st)
A parancs megjeleníti az összes aktív teknőc alakját a képernyőn. Az összes megjelenített aktív teknőc elrejtéséhez használd a hideTurtle parancsot. Azt, hogy az első aktív teknőc éppen megjelenített állapotban van-e, a shown? paranccsal tudhatjuk meg. A vonalak rajzolása sokkal lassab, ha a teknőc (vagy teknőcök) látszanak. Ezért néha jobb, ha az összes teknőcöt eltüntetjük a képernyőről. Az összes aktív teknőc alakjának változtatásához használd a setShape parancsot, melynek bemenetként bármilyen képet megadhatsz.
Próbáld ki az alábbi utasításokat:
? showTurtle
? forward 10
? hideTurtle
shuffle image
Véletlenszerűen megkeveri (átrendezi) a bemeneti kép képkockáit, és kimenetként megadja az eredményt.
Próbáld ki az alábbi utasításokat:
? show shuffle "turtle
nőtcek
? show shuffle "turtle
tkeőnc
? show shuffle "turtle
tőcnke
splitScreen
(ss)
Megosztja a MainWindow-t (az összes eszköztára alatt - ha azok látszanak), így megmutatja mind a grafikus (felső rész) és a szöveges (alsó rész) képernyőt. A grafikus képernyő tartalma, és működése nem változik a parancs hatására akkor sem, ha a szöveges képernyő részben fedi is azt. A szöveges képernyő jelenlegi tartalma sem változik a splitScreen hatására - mutatja a paranccsort, és az előző parancsok listájának legutóbbi részének számos parancsát.
Próbáld ki az alábbi utasításokat:
? ts
? ss
stamp
Minden aktív teknőc rábélyegzi a formáját (a jelenlegi képkockát) a grafikus képernyőre. A parancs kiadásával a képkocka a grafikus képernyő tartalmának részévé válik.
Próbáld ki az alábbi utasításokat:
? penup
? showTurtle
? repeat 24 [forward 45
stamp right 165]
? right 90 forward 110
stop
Megállítja a megnyitott média lejátszó fájlt. A médialejátszó
állapota leállított lesz.
stopAll
Az összes jelenleg futatott eljárást felfüggeszti.
stopMe
Csak egy folyamat definíciójában használható. Azonnal megállítja a folyamatot, amelyikben benne van.
? forever [fd 2 if ycor > 100 [stopMe]]
? repeat 1000 [fd 2 if ycor > 100 [stopMe]]
sum szám1
szám2
(sum szám1 szám2 szám 3 ...)
A két bemenet összegét adja kimenetként. Ha kettőnél több, vagy kevesebb bemenetet szeretnél használni, akkor az egész utasítást zárójelek közé kell tenni.
Próbáld ki az alábbi utasításokat:
? show sum 20 30
50
?
show (sum 10 10 10 10)
40
? forward
sum 20 30
tell [név] / [nevek listája]
A bemenetben meghatározott teknőcöt, vagy teknőcöket tesz aktívvá. Amikor az Imagine-t elindítod, az egyetlen létező és aktív teknőc a t1.
Ahhoz, hogy megkapd az összes aktív teknőc listáját (vagy egyetlen nevet, ha csak egy aktív teknőc van), használd a who parancsot. Ennek a listának a megváltoztatásához használd a reorder parancsot.
Bármelyik létező teknőc, akár aktív, akár nem, megkérhető az ask paranccsal arra, hogy egy adott utasításlistát végrehajtson. Bármely teknőc kitörölhető az eraseObject utasítással.
Próbáld ki az alábbi utasításokat:
? show who
t1
? new "Turtle [name Józsi pos [10
10] heading 90]
? tell "Józsi
? showTurtle
? show who
Józsi
? repeat 4 [forward 60 right 90]
? new "Turtle [name Imi pos [100 100] heading 270]
?
tell [Józsi Imi]
? repeat 4 [forward 60 right 90]
textScreen
(ts)
Beállítja a MainWindow-t (minden eszköztára alatt - ha látszanak), hogy csak a szöveges képernyőt mutassa. Azonban a grafikus képernyő jelenlegi tartalma nem vész el. A szöveges képernyő ideiglenesen eltakarja, és még mindig aktív, azaz a teknőcök rajzolhatnak rá és mozoghatnak még a szöveges képernyő alatt is, stb.
Próbáld ki az alábbi utasításokat:
? ts
? ss
thing szó
A kimenet a bemenetben megadott lokális, vagy globális változó
értéke. A változót előzőleg létre kell hozni a make, vagy name parancsok
egyikével. A thing egy művelet, amit rendszerint egy kettőspont helyettesít :,
azaz a thing "A ugyanarra az értékre utal, mint a :A.
time
A kimenete a pontos idő egy négy számból álló lista formájában [óra perc másodperc, századmásodperc] alakban - a számítógépen beállított óra szerint.
Próbáld ki az alábbi utasításokat:
? show time
[21 51 23 280]
? show time
[21 51 37 655]
? show
time
[21 51 55 937]
timer
timer
szó
Ha nincs bemenet, a nulladik időmérő jelenlegi állapotát adja vissza. Az időmérő pillanatnyi állapota az a szám, amely azt jelzi, hogy mennyi ezredmásodperc telt el attól a pillanattól kezdve, hogy az időzítő létrejött, vagy újraindítottuk a resetTimer segítségével. Az alap nulladik időzítő abban a pillanatban jön létre, és indul el, amikor elindítod az Imagine-t. Újraindíthatod ezt (vagy bármely másik időzítőt) a resetTimer paranccsal. Ha a parancsnak van egy bemenete, és a megadott névvel már létezik egy időzítő, az időzítő jelenlegi állapota a kimenet. Ha még nem létezik ilyen nevű időzítő, a timer parancs létrehozza új időzítőként, és 0-ról elindítja.
Próbáld ki az alábbi utasításokat:
? show timer
51031
?
resettimer
? show timer
1594
to szó
to
szó :bemenet1 ...
Ha a parancssorban használod, a szokásos Imagine párbeszéd mód eljárás definiáló módra változik. A készenléti jel helyett egy speciális készenléti jel jelenik meg >, hogy tudd, hogy éppen eljárást írsz. A word az új eljárás nevét adja meg, a többi bemenet :bemenet1, :bemenet2 stb. szöveg, és az eljárás paramétereinek nevét adják meg. A neked következő sorokba gépeld be az új eljárás törzsét. Jegyezd meg, hogy az eljárás definiáló mód csak egysoros parancsokat enged meg. Az eljárás megadását úgy fejezed be, hogy begépeled az end utasítást egy külön sorba.
Próbáld ki az alábbi utasításokat:
? to négyzet
> repeat 4 [
forward 100 right 90]
> end
? négyzet
towards [szám1 szám2 ]
A kimenete egy irány, amerre az első aktív teknőcnek fordulnia kell, hogy a bemenetben meghatározott pont felé nézzen. Az irányt fokokban mérjük északról haladva az óramutató járásával megegyező irányban. Ha a bemenet egy másik teknőc, akkor a művelet kimenete az az irány, amerre az első aktív teknőcnek fordulnia kell, hogy erre a teknőcre nézzen.
Ne feledjük, hogy a TOWARDS paranccsal nem azt a jobbra, vagy balra fordulási szöget határozzuk meg, amennyivel a teknőcnek el kell fordulnia, hogy a megadott pont felé nézzen. Azonban a kimenetet használhatja a setHeading parancs ahhoz, hogy a teknőc arra mutasson, amerre te akarod.
Próbáld ki az alábbi utasításokat:
? clearScreen
? setHeading
towards [-50 50]
? clearScreen
? new "Turtle [name Imi pos [60
40] pen pu]
? tell "Imi
? forward 40
? tell "t1
? setHeading
towards ask "Imi [pos]
transparent logikai
Igaz, ha a szövegdoboz háttere áttetsző. Alapértéke hamis.
true
Az "igaz" logikai értéket jelképezi.
Próbáld ki az alábbi utasításokat:
? show (6 = 2 + 3)
false
? show 9 > 3
true
type bemenet1
(type bemenet1 bemenet2 ...)
Kiírja a bemeneteket a szöveges képernyőre, vagy a kimeneti fájlba. A kiírt bemenetek nincsenek elválasztva szóközzel és a kurzor sem ugrik a következő sor elejére (hasonlítsd össze a type parancsot a show és print utasításokkal).
Próbáld ki az alábbi utasításokat:
? type "Hello
Hello
?
type [A B [1 2] C D]
A B [1 2] C D
unFreezeMe
Kioldja a fogadót. Ez ugyanaz, mint a setFrozen "false parancs.
A parancs kioldja az összes objektumot is, ami a fogadón belül él.
vertical logikai
Az alapértéke hamis, ebben az esetben a csúszka vízszintes. Ha
az értéke igaz, a csúszka függőleges. Bármikor megváltoztathatod az értékét
igazról hamisra, és vissza.
voiceChooser
Megnyitja a Select Voice For Text to Speech Engine dialógusablakot és
megmutat minden lehetséges hangot (vagy módot), amelyet a Text to Speech gép
installált a számítógépedre. A voiceChooser művelet kimenete egy word, ami
megadja, mit választottál. Bemenetként használhatod a setVoice
parancshoz.
wait szám
ahol a szám egy pozitív egész szám, ami nem nagyobb, mint 65535. Az Imagine minden tevékenységet leállít a beállított ideig. A wait 1000 mindent megállít körülbelül 1 másodpercre.
Próbáld ki az alábbi utasításokat:
? repeat 100 [forward 10 wait 1000]
waitUntil [command]
Amíg a kifejezés kiértékelésének eredménye igaz TRUE nem lesz, addig várakozik.
Próbáld ki az alábbi utasításokat:
? waitUntil [key?]
?
waitUntil [readKey = 32] ;A SPACE BILLENTYŰ lenyomásáig vár
while [kifejezés] U-lista
Kiértékeli a kifejezést. Ha az értéke igaz, a parancs futtatja az U-lista-ben szereplő utasításokat. Aztán ismét futtatja a kifejezést. Ha az értéke igaz, a parancs ismét futtatja az U-lista utasításait. Ez a folyamat addig ismétlődik, amíg a kifejezés igaz.
Próbáld ki az alábbi utasításokat:
? cs
? while [heading <
359][fd heading bk heading rt 1]
who
A kimenete az aktív teknőc neve, vagy minden aktív teknőc listája, ha egynél több van.
A listát módosíthatod a tell paranccsal. Vigyázz, hogy össze ne téveszd a who listát az allturtles kimenetével, ami az összes létező teknőc listáját adja meg, azaz az aktívakét és a nem aktívakét egyaránt.
A who listában a teknőcök sorrendje ugyanaz, amilyen sorrendben létrehoztad őket a new paranccsal. Ez a sorrend azonban megváltoztatható a reorder paranccsal. A WHO gyakran használható a each paranccsal.
Próbáld ki az alábbi utasításokat:
? new "Turtle [name Vonat]
? new "Turtle [name
Autó]
? show who
Vonat
? tell "Autó
? show
who
Autó
? tell [Vonat Autó]
? show who
[Vonat Autó]
? eraseAll
? eraseObject "t1
? new "Turtle [name
1]
? new "Turtle [name 2]
? new "Turtle [name 3]
? tell [1 2 3]
? show who
[1 2 3]
? showTurtle
? each [
setHeading 45+90*who forward 25+30*who
]
window
Beállítja azt a tartományt minden aktív teknőcre, amelyikben rajzolhat, szöveget írhat ki a label utasítással, területet tölthet ki, stb., és újradefiniálja azt a tartományt is a show változónak, amelyikben a teknőc látható.
Ha a parancsnak nincs bemenete, és eddig nem volt beállítva tartomány ennek a bizonyos teknőcnek, akkor a parancs beállítja a range és shownRange tulajdonságait úgy, hogy az egész helyével legyen azonos.
Próbáld ki az alábbi utasításokat:
? (window [0 0 100 100])
?
(window [-100 0 100 100])
? (window [-100
-100 100 100])
? (window [-100 100 400 400])
?
forward 95
? (window [] )
? forward 95
word bemenet1
bemenet2
(word bemenet1 bemenet2 bemenet3)
Kimenete egy szó, amely az összes bemenet összefűzésével alakul ki. A bemenetek lehetnek üres szavak is.
Próbáld ki az alábbi utasításokat:
? show word "Imag "ine
"Imagine
? show ( word "Im "agi "ne)
"Imagine
word? bemenet
A kimenet értéke igaz (TRUE), ha a változó word típusú, azaz betűkből vagy számokból áll. Különben hamis értéket ad vissza (FALSE).
Próbáld ki az alábbi utasításokat:
? show word? "Imagine
true
? show word? 3
true
? show
word? "3
true
? show word? [ANDREA
IVAN PETER]
false
wrap
Beállítja minden aktív teknőcnél azt a tartományt (range tulajdonság), amelyikben rajzolhat, szöveget írhat ki a label utasítással, kitölthet, stb., és beállítja a láthatósági tartományt (shownRange tulajdonság) is, amelyben a teknőc látható.
Ha a parancsnak nincs bemenete, és ennek a bizonyos teknőcnek még nem volt beállítva tartomány, akkor a parancs a látható területet adja a teknőcnek helyéül.
Ha a bemenet egy téglalap, a parancs beállítja a range és a shownRange tulajdonságokat.
Ha a bemenet egy üres lista [], a parancs visszaállítja az előző beállításokat, és a range és shownRange tulajdonságok értéke ismét az egész rajzterület lesz.
Próbáld ki az alábbi utasításokat:
? setRangeStyle "window
? setRangeStyle "wrap
Mozgasd a teknőcöt! Látod a különbséget?
xcor
Kimenetként megadja az első aktív teknőc pozíciójának X koordinátáját.
Bármely teknőc jelenlegi X koordinátájának megváltoztatásához használjuk a setXcor parancsot. A helyzete is megváltoztatható a forward, back, setPos, setXY, setYcor ,clearScreen, vagy a home parancsokkal.
Próbáld ki az alábbi utasításokat:
? clean
? right 90
? forward 40
? show
xcor
40
? showPos
[0 0]
? show first
pos
0
? show xcor
0
ycor
Az első aktív teknőc pozíciójának aktuális Y koordinátáját mutatja meg. Bármelyik aktív teknőc aktuális Y koordinátájának megváltoztatásához használjuk a setYcor parancsot. A helyzete is megváltoztatható a forward, back, setPos, setXY, setYcor, clearScreen, és home parancsokkal.
Próbáld ki az alábbi utasításokat:
? clean
? forward 40
? show
ycor
40
? showPos
[0 40]
? show last pos
40
?
show ycor
40