Proboj
Programátorský boj

Python

Pozor: Na serveri Python boti bežia pod PyPy, čo znamená, že tam je ekvivalent verzie Python 3.9. Vyhnite sa používaniu funkcionalít z novšieho Pythonu.

Template v jazyku Python obsahuje 3 súbory:

Začíname

V player.py je jedna trieda, v ktorej budeme implementovať metódu make_turn(). Proboj túto funkciu zavolá pri každom kole a očakáva, že vráti list ťahov, ktoré chceme spraviť.

Táto trieda dedí od ProbojPlayer, ktorý v nej zabezpečuje ukladanie dát o hre. Vďaka tomu máme k dispozícií dáta ako atribúty našej triedy:

Tiež obsahuje niektoré pomocné metódy:

Ťahy

Tvoja funkcia má vrátiť list ťahov. Čo to ale je? Počas kola vieš vykonať niekoľko ťahov, spravidla jeden pre každú loď + nákup lodí. Druhy ťahov sú:

Mapa (self.map)

Mapa obsahuje tieto atribúty:

Tiež obsahuje tieto pomocné metódy:

Tile

Tile obsahuje dva atribúty: type (TileEnum) a index. Ak ide o základňu, v index bude číslo hráča, ktorému patrí.

Prístavy (self.harbors)

Prístav obsahuje tieto atribúty:

Obsahuje pomocnú metódu resource_cost(resource), ktorá vráti aktuálnu základnú cenu suroviny.

Myself

Obsahuje dve atribúty:

Lode (self.ships)

Loď má tieto atribúty:

Utils

Existuje ešte trieda Utils, ktorá má naimplementované BFS.

Utils.bfs_path(xy_start, xy_end, self.map)

Vracia zoznam políčok, cez ktoré vedie najkratšia cesta, alebo None, ak sa do cieľa nedá dostať.