Základní pravidla
Ve virtuálním bludišti se pohybují týmy virtuálních robotů, kteří sbírají poklady. Úkolem je napsat strategii, která robota řídí. Jednotlivé strategie potom spolu soutěží v zápasech - na jednom plánu se utkají vždy dva týmy. Soutěž probíhá systémem liga - hraje každý s každým.
Zde jsou uvedena základní pravidla, přesná pravidla doplňující technické parametry a základní popis implementačních detailů jsou uvedeny na samostatných stránkách.
Soutěž probíhá v programovacím jazyce Java. K účasti na soutěži není potřeba hluboká znalost tohoto programovacího jazyka - implementace strategie spočívá v implementování jedné samostatné třídy a povolené prvky jazyka Java jsou stejně poměrně omezeny. Pokud znáte např. C++, neměli byste mít s programováním strategie větší problémy. Každopádně je vhodné mít v týmu alespoň jednoho člověka, který Javu zná.
Pro účastníky prvního ročníku soutěže FIbot: hlavní rozdíly proti předcházejícímu roku jsou následující:
- soutěží nikoliv jeden robot, ale tým robotů, roboti spolu mohou komunikovat,
- soutěží vždy jen dva nepřátelské týmy,
- poklady se přenášejí po jednom bodu do základny,
- roboti mají omezený výhled,
- roboti se neotáčí (vidí na všechny strany, krok mohou dělat na všechny strany),
- není energie, není střelba.
Svět
Hrací plán tvoří čtverečkované pole. Jednotlivá pole mohou být obsazena následujícími prvky:
- zeď (neprůchodné pole),
- volné pole,
- volné pole s poklady,
- volné pole označené jako základna jednoho z týmů (případně s poklady).
Okraj hracího pole tvoří zdi.
Roboti
Každý robot je zcela samostatný a platí pro něj následující základní pravidla.
- Pohyb:
- Na každém poli může stát nejvýše jeden robot.
- Robot se v jednom tahu může přesunout na jedno ze čtyř sousedních polí (sever, jih, východ, západ).
- Roboti nesmí vstupovat na pole se zdí (okraj plánu tvoří automaticky zdi) a do soupeřovy základny.
- Pokud se dva roboti pokouší vstoupit na stejné pole, dojde ke kolizi a nepohne se ani jeden z nich. Není také možné aby si dva roboti vyměnili pozice tím, že udělají krok proti sobě.
- Výhled (robot vidí jen omezenou část herního plánu):
- Robot nevidí přes zdi a přes ostatní roboty, jinak vidí do všech směrů. Dohled do dálky není omezen (pokud není ničím blokován).
- Robot z dálky nevidí množství pokladu (vidí pouze, zda je na volném poli nějaký poklad či ne). Robot vidí přesné množství pokladu na poli, na kterém stojí.
- Robot z dálky pozná základnu a pozná komu patří.
- Robot je schopen rozlišit roboty svého a cizího týmu, není však schopen rozlišit jednotlivé roboty svého týmu (nepozná jejich ID). Robot pozná, zda druhý robot nese poklad.
- Robot zná celkový počet robotů ve svém týmu.
- Poklady:
- Každý robot unese maximálně jeden kus pokladu.
- Kusy pokladu mohou roboti libovolně zvedat a pokládat.
- Za každý kus pokladu, který na konci hry leží v základně, získává tým jeden bod.
- Komunikace:
- Robot může vysílat "rádiem" 10 bytů. Vysílání je samostatná akce.
- Robot automaticky zachytává všechny vysílané zprávy (i zprávy soupeřových robotů). Má k dispozici identifikaci číslo robota (ID) + zprávu.
- Strategie zná identifikační číslo svého robota.
Roboti tedy mohou provádět následující příkazy:
- NORTH - robot se posune o jedno pole směrem nahoru,
- WEST - robot se posune o jedno pole směrem vlevo,
- EAST - robot se posune o jedno pole směrem vpravo,
- SOUTH - robot se posune o jedno pole směrem dolů,
- TAKE - robot zvedne kus pokladu (má efekt pouze pokud stojí na poli, kde něco leží a když nic nenese),
- DROP - robot položí kus pokladu (má efekt pouze pokud něco nese),
- SEND x - robot "rádiem" vyšle zprávu x.
V každém kole může robot provést nejvýše jeden příkaz.
Každý robot je řízen samostatnou strategií, všichni roboti jsou řízeni identickým kódem. Strategie dostává jako vstup informace o části hrací plochy, kterou vidí, a dále informace zachycené "rádiem" (informace vyslané v předchozím kole). Jako výstup dává jeden z příkazů. Strategie se programují v jazyce Java. Strategie jsou limitovány časovým limitem a množstvím paměti.
Hra končí po pevně daném počtu kol (ten je všem strategiím znám).
Parametry hry
Omezení na parametry hry jsou následující:
- Hrací plán: velikost maximálně 40x40, herní plán je vždy symetrický (z pohledu dvou strategií), nemusí být nutně čtvercový.
- Počet robotů v jednom týmu: 3-15.
- Počet kol hry: 10-200.