Implementace

Strategie dostane jako vstup jeden argument s ID hráče (0, 1, 2 nebo 3) a do 2 vteřin musí na standardní výstup vypsat jednořádkovou odpověď popisující plánovanou akci (popsáno níže).

Příklad spuštění strategie:

$ ./mojeNejlepsiStrategie 1
/ 1 3

Příklad ukazuje strategii, kdy hráč hraje jako ID 1 a rozhodl se postavit cestičku na souřadnicích [x,y] = [1,3] (spojuje tedy případná naleziště surovin na souřadnicích [0,2] a [2,4]).

Do pracovního adresáře je přiřazen soubor playfield.txt popisující herní plán a kuchařku lektvarů pro danou hru, a to v následujícím formátu:

Kolo: 123
Bodu: 0
Kamenu: 5
Hlavni: ABC
Kucharka:
RGB
AEE
EAD
Mapa:
A:3;B:3,-:1,A:1,,,,H:1,-:0,G:3;H:3
,,,,,#:2,-:0,,
B:1,-:0,,-:0,,-:0,,,G:1
,,,,,#:1,-:0,,
,,,,,,,,
,,,,,,,,
C:1,,,,,,,,F:1
,,,,,,,,
C:3;D:3,,D:1,,,,E:1,,E:3;F:3

kde:

  • Kolo: 123 udává aktuální kolo
  • Bodu: 0 udává kolik má hráč bodů
  • Kamenu: 5 udává zbývající počet kamenů
  • Hlavni: ABC udává recept na hlavní lektvar, který musí hráč sestavit jako první (tzn. dříve než začne vařit recepty z kuchařky). Tato řádka chybí pokud hráč již tento lektvar sestavil
  • Kuchařka: udává začátek kuchařky lektvarů
  • RGB popisuje lektvar skládající se z částí R, G a B
  • Mapa: po tomto návěstí následuje herní plán

Herní plán je popsán následovně:

  • Jeden řádek/sloupec (oddělený čárkou) odpovídá jednomu řádku/sloupci mapy
  • Jednotlivé buňky jsou buď vrcholy, nebo hrany a obě mohou obsahovat několik položek oddělených středníkem ; (např. A:3;B:3)
    • vrchol může obsahovat ingredienci
    • hrana může obsahovat cestičku(y) jednoho ze směrů (-, |, / nebo \, vždy jen mezi 2 vrcholy) a/nebo kámen
  • Každá položka se skládá ze svého jednopísmenného názvu a čísla odděleného středníkem, např:
    • A:3 políčko obsahuje 3 kusy suroviny A
    • |:0 na políčku je cestička postavená strategií 0 spojující vrchol nahoře a dole od políčka
    • \:1;#:3 políčko obsahuje cestičku postavenou strategií 1, která ale byla zablokovaná kamenem položeným strategií 3
  • Vyskytovat se mohou pouze:
    • Velká písmena bez diakritiky = suroviny do lektvarů
    • Znaky - | / \ = cestičky daných směrů
    • Mřížka # = kámen

Modrá cesta modré strategie sice spojuje souřadnice [0,0], [2,2] a [0,4] takže by strategie mohla vytvořit třeba i lektvar ACE, ale na [2,2] je kámen. Kvůli tomu může strategie namíchat jen lektvary ABE a BCE.

Každá strategie musí na standardní výstup odpovědět do 2 vteřin jednou z možných akcí:

AkceVýznam
c x yPostav cestičku na souřadnicích [x, y]. "c" může být jeden ze znaků - | / \
# x yPolož kámen na souřadnici [x, y]

Spuštění

  • Vyhodnocovací program vyžaduje nainstalován python2.7 (pravděpodobně i verze nižší, ale netestovali jsme to)
  • Typické spuštění serveru: ./redbot.py strategie0/random.sh strategie1/random.sh strategie2/random.sh strategie3/random.sh
  • Záznam hry je vypisován na standardní výstup a pro každé kolo je uložen soubor playfield-KOLO.txt.kolo
  • Grafický záznam hry je možné zobrazit spuštěním ./TODO

Stažení

Stáhněte si vyhodnocovací program jako tarball verze 2 verze 3 nebo naklonujte GitHub repozitář: git clone https://github.com/jhutar/RedBot.git