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.
 
FIbot2 0.043s, total queries 8