Játékprogram írása LOGO-ban
Abonyi-Tóth Andor
2005/02/23 13:00
1573 megtekintés
A cikk már legalább egy éve nem frissült, az akkor még aktuális információk lehet, hogy mára elavultak.
A LOGO nyelv alapjainak egyszerűsége miatt sokan úgy gondolják, hogy összetettebb programok készítésére alkalmatlan. Cikkünkkel ezt a tévhitet szeretnénk eloszlatni.

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árgyinformatika
témakörprogramozás, emelt szintű érettségi
évfolyam/korosztály8-12. évfolyam
módszerJátékprogramon keresztül a Comenius LOGO képsorkezelésének, billentyűzetkezelésének bemutatása.
idő45 perc
célokA 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 helyzetAz algoritmizálási és programkódolási alapismeretek után összetettebb feladat megoldása.
szükségeskivetítő, használt nyelvi fordítók (Comenius LOGO)
szerzőRozgonyi-Borus Ferenc
címhttp://www.sulinet.hu/tart/cikk/ae/0/25437/1

Rozgonyi-Borus Ferenc

Ajánlott link

Csatlakozz hozzánk!

Ajánljuk

European Schoolnet Academy Ingyenes online tanfolyamok tanároknak
School Education Gateway Ingyenes tanfolyamok és sok más tanárok számára
ENABLE pilot Program iskoláknak a bullying ellen
eBiztonság Minősítés Minősítési rendszer oktatási intézményeknek