Miklós
-7 °C
4 °C

Pisti a gépzivatarban

2001.10.04. 16:51
Kapcsolódó cikkek (1)
A programozók remekül szórakoznak, a kóderpalánták pedig programozni tanulhatnak a Colobot játékkal, melyben Javához és C-hez hasonló programnyelven irányíthatók a bolygókat kolonizáló robotok. A valós idejű stratégiai játék célja idegen bolygók elfoglalása, a gyarmatosító a játék saját programnyelvén nemcsak utasításokat adhat, de harci stratégiákat is kidolgozhat távoli ügynökei számára.
Kinek mi jut eszébe Svájcról? Svájcibicska? Legalizáció? CoLoBoT? Programozással vegyített real-time stratégia? De ne szaladjunk ennyire előre!

C64-en Omega volt a neve

Kattintson a nagyításhoz!
1990 körül járunk. Az azóta már eltűnt Origin szoftverház gondozásában megjelenik az Omega című játék. A nagy C-64 hype a vége felé közeledik, a közönség egyre komolyabb programokat igényel, ez a játék mégis megelőzi korát.

A feladat: tankunk hardverét és szoftverét fejlesztve legyőzni az ellenséges tankokat. Vagyis a játékos kell, hogy rendelkezzen némi programozói vénával. Itt buktam én el, kb. félórányi próbálkozás után töröltem is a cuccot. Csak 20 darab nagy flopim volt, jól meg kellett ám gondolni, mit tartok meg.

Cél: az emberiség megmentése

CoLoBoT. Colonize with bots, mondja a játék weboldala. A kivitel és a cél változott, a fejlesztők - az Epsitec - eddig ismeretlen svájci arcok. A korántsem sablonos kerettörténet szerint a földi levegő olyannyira szennyezetté vált, hogy az emberiségnek új otthont kell keresnie, az elsőként kiküldött - kizárólag szállító- és harci robotokból álló - csapattal azonban megszakadt a kapcsolat. Mi mást tehet ilyenkor az ember, mint hogy a Második Expedíció élére áll, és segítségükkel új otthont keres az emberiségnek? Csapjunk hát bele a lecsóba, rontsuk el idegen civilizációk napját, és tegyük tönkre lakható planétáikat!

Most jön még csak a Java

A játék maga egy térben megjelenített, építkezős-nyersanyaggyűjtős real-time stratégia, nagyjából húszféle robottal és tucatnyi különböző épülettel a robotgyártól az atomerőműig. Saját 3D engine-je kissé elmaradottnak tűnik mondjuk a Sacrifice-hoz képest, de kárpótol minket az, hogy hardverigénye is 1998-at idézi. Nem is a grafika miatt szeretjük, hanem mert titánból és energiacellából készült társainkat mi magunk programozhatjuk.

Kattintson a nagyításhoz!
A C-hez és Javahoz hasonló, CBOT nevű programnyelvben néhány soros nyersanyaggyűjtő scriptet vagy akár az ellenséget felkutató és megsemmisítő, az energiaszintet és a hajtómű hőmérsékletét is figyelemmel kisérő komplex légiharcszoftvert is írhatunk. Persze időről időre kapunk Houstontól kisebb programokat, cellacsere, töltés, ilyesmik, ezek azonban éles helyzetben nem sokat - őszinte leszek, fabatkát sem - érnek, így ha boldogulni akarunk, el kell dörrenjen néhány while ciklus.

Programozói affinitást nem érző embertársaimat önmérsékletre inteném hát, mindenki más viszont, kicsik és nagyok, harcra fel! A szoftvernek oktatási verziója is létezik, de a játékbolti darab is tartalmaz néhány igazi kihívást jelentő gyakorló feladatot. A nemrég megjelent 1.7-es patch javítja a 3D kezelés és a CBOT nyelv számos hibáját, valamint pótol néhány hiányosságot. Ígéretes holmi ez, remélem nem az utolsó ebben a műfajban.

Egy probléma három megoldása
Álljon itt néhány megoldás arra a problémára, mikor magányos robotunk egy mező közepén áll, és három irányból óriáshangyák közelítenek hozzá:

//legegyszerubb
extern void object::Spider1() {
 turn(90);
 fire(1);
 turn(-180);
 fire(1);
 turn(90);
 fire(1);
}

//legadazabb
extern void object::Spider2() {
 object spider;
 spider = radar(AlienSpider);
 while( spider != null) {
  turn(direction(spider.position));
  fire(1);
  spider = radar(AlienSpider);
 }
}

//csendes vadasz
extern void object::Spider3() {
 object spider;
 spider = radar(AlienSpider);
 while( spider != null) {
  while (distance(position,spider.position)>20) {
   turn( direction( spider.position ) );
  }
  fire(0.5);
  spider = radar(AlienSpider);
 }
}