Ezzel a programmal szó szerint játszva tanulhatunk meg programozni. De azért ne vegyük olyan komolyan, hiszen egy játékról van szó, vagy talán mégsem? Érdemes kipróbálni...
A PC tulajdonosok többsége már bizonyára elgondolkozott azon, hogy jó lenne
egy kicsit megtanulni programozni. De ez sokszor nem könnyű feladat, a programozást
kevesen, de számítógépes játékokat nagyon sokat kedvelik. Így ha csak hobbi
szinten kerül elő a programozás és a játék lehetősége, a felhasználók többsége
általában az utóbbit választja.
Most bemutatok egy "játékot", ennek segítségével némi programozói "rutinra"
is szert tehetünk. Tehát ez a cikk azoknak szól, akik alig tudnak programozni,
és szeretnének ebben némi sikert elérni.
A játék neve: COLOBOT,
de nem is igazán illik rá a játék név, azonnal kiderül, hogy miért. A tapasztalatok
azt mutatják, hogy ha az ember irányítani tud valamit (az uralkodáshoz hasonlóan),
az kvázi örömet okoz. Ez a megfogalmazás nagyon nyers és lényegretörő volt,
de ha belegondolunk, akkor ez tényleg sokaknak komoly motiváló erőt jelent.
Lásd, ha a kis gyerek kezébe távirányítós autót adunk, akkor hatalmas örömet
okozhatunk (amíg az elemek bírják). Később sincs ez másként, csak ekkor már
másként gondolkodunk. Némi lelki bemelegítő után nézzük meg, mit is tud a COLOBOT.
Kezdjük a játék részével, majd rátérünk a programozásra is:

Ez a COLOBOT 1.7-es demo verziójának nyitó lapja. Mivel demo verzióról van
szó, így a játék funkcióit a küldetésekben korlátozták. De ez most nem is olyan
fontos, hiszen programozni szeretnénk... Természetesen nem arról van szó, hogy
a program végét nem írták meg és nekünk kell pótolni, hanem arról, hogy spéci
robot autóirányító programját kell megírnunk. Ez kezdetben egyáltalán nem nehéz,
a zseniális help-nek köszönhetően.
Először célszerű a beállításokat lerendezni. Egyből kezdjük a felbontás beállításával:

A 3D-s gyorsítós videokártya elengedhetetlen. Az RGB emulációval egy 1.5GHz-es
processzorral szerelt gép is csak 8-10FPS-re képes, ami finoman szólva kevés.
Megjegyzem, hogy ha Voodoo videokártyánk van, akkor gondban leszünk (mindegy
milyen típusú ezen belül), mert kép zavarodottá válik, sokszor csak a felét
látjuk a tárgyaknak.
Minimális gépigény:
Processzor
|
Intel Pentium 300MHz
vagy ennek megfelelő
|
Memória
|
64M
|
Videokártya
|
3D gyorsító, min.
16M
|
HDD
|
min. 100M szabad
háttérterület
|
A program 31Mbyte méretű lesz a feltelepítés után (mentések nélkül).
Meglepően jó az egész program grafikus motorja. A dinamikus megvilágítások
beállításától kezdve a ködön és az égen át mindenfélét beállíthatunk.
Az irányítás részt (controll) nem is érdemes megnézni, illetve átállítani,
úgy is csak az egérre és a billentyűzetre lesz szükségünk. Ezt úgy értem, hogy
a billentyűzetre is csak azért, hogy a programot meg tudjuk írni.

Mint azt kezdetben említettem a célunk egy autó irányítása. Ez egy robotkarral
is rendelkezik. A cél, ezt a járművet a megfelelő helyre irányítani és a robotkarral
manipulálni. Az irányítás a fenti kis programrészlettel könnyen megoldható.
Kezdetben ennyi utasítás bőven elég.
move(10);
|
Ezzel az utasítással
a jármű annyi métert megy előre, mint ami a zárójelben szerepel.
|
turn(90);
|
Ennek hatására a
kocsi a zárójelben jelzett fokkal elfordul. (A -90 és a 270 fok ugyanazt
eredményezi.)
|
grab();
|
A robotkar aktiválása
ezzel az utasítással történik, ha a jármű előtt felvehető dolog van,
akkor azt felveszi.
|
drop();
|
Ez szintén a robotkarra
vonatkozik. Ennek segítségével le tudjuk tenni a felvett tárgyakat.
|
Ezzel a pár utasítással fapadosan ugyan, de már irányíthatjuk a járművet. És
végre egy kép, mit is kell irányítani:

A képen látható "palackos" robotban mi vagyunk. Repkedhetünk, mászkálhatunk,
de ez csak a nézelődést szolgálja. Gyorsan megunjuk. Kattintsunk inkább a bal
oldalon látható terepjáróra. A tetején egy robotkar található. Ha figyelmesen
megnézzük, akkor a jármű előtt egy kis gombócot láthatunk, itt az lesz a gyakorló
feladat, hogy a gombócot egy konverterbe kell tenni. Végül is ilyen egyszerű
a cél (de csak kezdetben), máris megvillogtathatjuk programozói tudásunkat.
Az előbb bemutatott pár soros programot nem csak úgy a nagyvilágba begépeljük.
Ha rákattintunk a robotra, akkor a képernyő alján megjelenik egy kapcsos zárójel.
Erre kattintva írhatjuk meg a programot:

Noha a move(); turn(); grab(); drop(); utasításokkal is elboldogulunk, később
már unalmassá válhat. Ahogy a pályák egyre nehezebbek lesznek egyre több utasítást
tanít meg a program, csak az F1-es gombot meg kell nyomi és egyből (magyarázattal
és példaprogrammal együtt) láthatjuk az utasítások jelentőségét/jelentését.
Ha megnézzük az előbbi kép utasításait, gyorsan rájöhetünk a program működésére.
Arról van szó, amit az előbb leírtam. Elmegyünk a gombócért. De nem a move();
utasítással, mert a tárgy távolságát csak saccolni tudjuk. Így a gépünk vagy
túlhalad, vagy cél előtt megáll. Ekkor sincs semmi gond, mert korrigálhatunk
a programon. De sokkal elegánsabb az a megoldás, ha kihasználjuk azt, hogy van
radar is a masinán. Így a radar(TitaniumOre) utasítás annyit tesz, hogy a radar
által bemért titániumért (ezt eddig gombócnak neveztem) lemegy. Ezt fel kell
venni, majd a konverterhez vinni.
Néhány trükk segítségével rövid, de annál hatékonyabb programot írhatunk. És
pontosan ez a programozás lényege! Most az mindegy, hogy ez nyelv a fantázia
műve vagy sem. Mert a stílus elsajátítása talán fontosabb, mint az utasítások
ismerete (természetesen az sem árt). Megjegyzem, hogy ez a Java-hoz hasonló,
tehát mégsem olyan légből kapott ez a nyelv.

Ha megírtuk a programot, akkor kattintsunk az OK-ra. Ha létező utasításokból
kalapáltuk össze a programot követtük a help-ben megadott dolgokat, akkor nagy
valószínűséggel futásra kész a program. Két lehetőségünk van miután megírtuk
a programot. Vagy jármű belsejében foglalunk helyet, vagy kívülről szemléljük
az eseményeket (utóbbi talán szimpatikusabb). Így ha nekirohanunk egy oszlopnak,
vagy beleborítjuk a masinánkat a vízbe, akkor azért a programunk a felelős!
Mindent úgy csinál a masina, ahogy beprogramoztuk!
Később izgalmasabb feladatokkal kell megküzdenünk. Ellenséges pókokat pörkölhetünk
meg, repülőket tankolhatunk stb. Sőt arra is rá fogunk jönni, hogy a gumikerekek
nem nagyon bírják a terepet, de semmi gond, lánctalpassá is varázsolhatjuk a
"taligát". Innentől kezdve szinte csak a fantázia szab határt, hogy mit valósítunk
meg a kis programunk segítségével. Kezdetben bővel elég lesz a 4-5 utasítás,
de akár oldalakat is gépelhetünk. Jó szórakozást és programozást!