Sajnos még a LOGO-val foglalkozók közül is sokan gondolják úgy, hogy a LOGO ismerete néhány grafikus utasítás ismeretét jelenti, egész pontosan e területből is csak a teknőcgrafikát, mintha másra nem is lenne alkalmas e nyelv. Az összetettebb alkalmazások készítésének lehetőségét a divatos programozási nyelvekben látják, például a Flasht tekintik mindenhatónak.
Cikkünkben nem ezt a fuvallatot követjük, hanem megmutatjuk, hogy a LOGO sem marad el képességekben a többi nyelvtől. A sok LOGO-változat közül a talán egyik legelterjedtebbel, a Comenius LOGO használatával könnyen és gyorsan egy színvonalas játékot készíthetünk. A program nagyjából két óra alatt elkészíthető, és nem igényel különleges előismereteket.
A Játék
A játékos feladata a labirintusban való minél gyorsabb végighaladás a starttól a célig. Az elkészítendő program érdekessége, hogy magát a labirintust is a játék első változatával készítjük el.
A program elkészítését a következő lépésekre bontjuk fel:
- készítsük el a figurát és az azt mozgató eljárást;
- készítsük el a labirintust;
- helyezzük be a labirintusba a játékost, és mérjük az időt;
- írassuk ki a képernyőre és fájlba az eredményét, ha az első tízbe kerül ez alapján.
Előkészületek
Elsőként a labirintusban mozgatandó figurát készítsük el. Ez egy teknőc lesz, amelyre új, általunk elkészített ruhát adunk, azaz a megjelenését mi adjuk meg. Ezt képsor készítésével oldjuk meg. A ruha egy piros kör lesz, amit 17 képpont méretűnek választunk, mivel így egy 20 képpont széles folyosójú labirintusban is jól mozgathatjuk.
A Comenius LOGO-hoz tartozó Képsorszerkesztő program éppen a feladat megoldására szolgál. Ebben a kör megrajzolása után feladatunk még a tollpont felvétele is, ami a pont mozgásának figyeléséhez a viszonyítási pont lesz.
A tényleges megvalósítás során nem egy, hanem két fázisból álló ruhát készítünk el. A második fázis a labirintus megrajzolásában segít: a piros a letett tollat, a sárga a felemeltet jelzi majd. A Fázisok pontban lehetőségünk van később újabb ruhákat (fázisokat) is felvennünk, például ha a játékot szeretnénk bővíteni a cél távolságának jelzésével, vagy ha játékos hátralévő idejét jelezni akarjuk a pont színével is. (Például elkékül a pont, ahogy telik az idő, ezzel mintegy érzékeltetjük, hogy fogy a levegője a figurának, letelik az ideje.)
Az elkészített képsort hozzárendeljük a teknőcünkhöz. Ezután a Comenius LOGO-ban alapvetően két módon adhatjuk meg a teknőchöz rendelt képsor látható fázisát. Az egyik lehetőség, hogy a teknőc irányának megfelelően automatikusan módosíttatjuk a fázist. Ezt alkalmazzuk például az alapértelmezett teknőc megjelentetése esetében is. A másik lehetőség, amikor mi váltunk parancsokkal a képsor fázisai között. Ez utóbbi esetben az animációs módot IGAZ, míg az előzőben az alapértelmezett HAMIS értékűre kell állítanunk.
A program első részének kódját látva nem kell megrettenni: minden második sor megjegyzés, ami az utána következő utasítás jelentését írja le.
Vezérlés
A labirintus megrajzolását a játékban később felhasznált vezérléssel végezzük el. Ehhez tudnunk kell, hogyan is lehet mozgásra bírni billentyűzetről a teknősünket. A sok teknőc közül elsőként is meg kell szólítanunk a parancsainkat végrehajtó teknőcöt. Erre szolgál a kérem és a figyelj parancs. Előbbit csak néhány parancsra kiterjedő, utóbbit pedig tartós irányítás esetén szokás használni.
A játékok többségében a figura legtöbbször a kurzorbillentyűkkel irányítható, mi is ezt választjuk. A billentyűzetről egy billentyű lenyomásakor egy vagy két ASCII kód indul el. A kurzorbillentyűknél például elsőként egy 0, majd az irányt meghatározó másik kód generálódik. A LOGO-ban a két kód kezelését elkerülhetjük: a speciális vezérlőkarakterek kódjait negatív számokként kezeli a rendszer. A következő fontosabb billentyűkódokat célszerű ismernünk:
Esc 27, Enter 13, szóköz 32, fel -72, jobbra -77, le -80, balra -75.
A mozgat eljárás a beolvasott kód alapján a lenyomott billentyűnek megfelelő ágat hajtja csak végre, mégpedig úgy, hogy a teknősünket a nyílnak megfelelő irányba fordítva előre mozgatja 20 képponttal, vagy a tollának helyzetét állítja át a szóköz lenyomása esetén. Az eljárás önmagát hívja meg, ezért szükség van egy kilépési pontra is, amit az ESC megnyomása esetén a visszatér utasítással valósítunk meg.
A két eljárásból álló kis program már alkalmas arra, hogy a labirintust ezzel elkészítsük. A szóközzel lehelyezhetjük és felemelhetjük a tollat, amit a pont színváltása is jelez.
Az elkészített labirintust el kell mentenünk. Erre sem kell speciális program: a Fájl menüben a Rajzlapmentés... pont erre szolgál.
A PACA.LGP program tartalmazza az eddig megvalósított elemeket. Cikkünk második részében az időmérést és a toplista készítését valósítjuk meg a falak közötti haladás vizsgálata mellett.
Addig is jó labirintuskészítést!
Rozgonyi-Borus Ferenc (ABAX)
Módszertani ajánló
tantárgy | informatika |
témakör | programozás, emelt szintű érettségi |
évfolyam/korosztály | 8-12. évfolyam |
módszer | Játékprogramon keresztül a Comenius LOGO képsorkezelésének, billentyűzetkezelésének bemutatása. |
idő | 45 perc |
célok | A tanulók ismerjék meg egy egyszerű játék főbb moduljait, azt legyenek képesek később átalakítani saját probléma megoldása esetén. |
tanulási helyzet | Az algoritmizálási és programkódolási alapismeretek után összetettebb feladat megoldása. |
szükséges | kivetítő, használt nyelvi fordítók (Comenius LOGO) |
szerző | Rozgonyi-Borus Ferenc |
cím | http://www.sulinet.hu/tart/cikk/ae/0/25437/1 |
Rozgonyi-Borus Ferenc