Základní pravidla

Ve virtuálním bludišti se pohybují virtuální roboti a sbírají poklady. Úkolem je napsat algoritmus (strategii), který řídí robota. Jednotlivé strategie potom spolu soutěží v turnaji - v několika různých bludištích, v různých konfiguracích. 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á.

Svět

Hrací plán tvoří čtverečkované pole. Jednotlivá pole mohou být obsazena následujícími prvky:

  • volné pole,
  • zeď (neprůchodné pole),
  • baterie (slouží k dobíjení energie),
  • poklad.

Okraj hracího pole tvoří zdi.

Roboti

Roboti mohou provádět následující příkazy:

  • STEP - robot posune se o jedno pole dopředu,
  • LEFT, RIGHT - robot se otočí 90 stupňů doleva/doprava
  • SHOOT - robot vystřelí před sebe,
  • TAKE - robot sebere poklad (tento příkaz má efekt pouze na poli, kde leží poklad),
  • REST - robot dočerpává energii,
  • RECHARGE - robot dobije energii z baterie (tento příkaz má efekt pouze na poli, kde je baterie).

V každém kole může robot provést nejvýše jeden příkaz. V každém kole robot přijde o jednu jednotku energie. Pokud robot nemá žádnou energii, nemůže již nic dělat. Pokud je robot zasažen střelou, přijde o polovinu své energie. Energii roboti získávají pomocí odpočívání a dobíjení u baterií.

Strategie dostává jako vstup aktuální konfiguraci celé hrací plochy a informace o všech robotech. Jako výstup dává jeden z příkazů. Strategie se programují v jazyce Java. Běh algoritmu je omezen časovým limitem.

Hra končí po pevně daném počtu kol (ten je strategiím znám).

Cíl

Cílem strategií je získat co nejvíce bodů. Body získávají za:
  • sbírání pokladů (každý poklad má udanou bodovou hodnotu),
  • zasažení nepřítele (počet bodů za zásah je roven množství energie odčerpané zasaženému),
  • energii na konci hry (za každou jednotku energie jeden bod).

Turnaj

Turnaj proběhne způsobem, který bude respektovat následující pravidla:

  • Během turnaje se každý robot zúčastní určitého počtu her. O pořadí v turnaji rozhoduje součet bodů z jednotlivých her (není tedy důležité absolutní pořadí v jednotlivých hrách, ale celkový součet bodů!).
  • Turnaj proběhne na několika různých herních plánech, přičemž:
    • Část plánů včetně všech parametrů a startovních pozic (zhruba 30%) bude známa dopředu a zveřejněna minimálně dva týdny před termínem odevzdání robotů.
    • Zbytek plánů a parametrů bude tajný.
    • Použité plány a parametry budou voleny tak, aby byly co nejrozmanitější (velké/malé pole, hodně/málo pokladů, drahé/levné poklady, málo/hodně baterií, ...).

    Proběhne též testovací turnaj.

    Podrobnosti o turnajích viz samostatné stránky.