Podrobná specifikace toho, co musí hráč umět a jak musí vypadat, aby mohl hrát turnaj s ostatními.
Odevzdávat budete ZIP archív s vaším modulem player.py
a případně se všemi moduly, které tento modul importuje. Tyto soubory musí být v kořeni archívu, archív nesmí obsahovat žádné adresáře!
ZIP archív (a jen tento soubor) nahrajete do BRUTE.
Hráče (v modulu player.py
) implementujete ve formě třídy MyPlayer
, která bude poskytovat tyto metody:
metoda | vstupní parametry | výstupní parametry | vysvětlení |
---|---|---|---|
__init__ | my_color (moje barva), opponent_color (barva soupeře) | žádné | Vytvoření instance hráče. Hráč vždy dostane barvu vlastních kamenů my_color a barvu soupeřových kamenů opponent_color . Barva kamene je buď hodnota 0 nebo 1. |
select_move | board (n x n matice hrací plochy) | r, c (row, column souřadnice Vašeho tahu v tuple(n-tici) se dvěma inty) | Vygenerování tahu. Na vstupu dostanete současný stav hrací plochy board , který je reprezentován dvourozměrným seznamem. Metoda vrací dvojici r, c (tuple, obě čísla typu int ) se souřadnicemi tahu, čímž umístíte svůj kámen na pozici board[r][c] . Pokud není možné zahrát validní tah, metoda vrací None . Hodnoty obsažené v board jsou -1 pro prázdné políčko a 0 /1 pro barvy již umístěných kamenů. Metoda nesmí měnit hodnoty v zadané hrací ploše board . Maximální setrvání v metodě je 1 sekunda. |
Příklad třídy MyPlayer:
class MyPlayer: '''Hrac hraje stále na pozici (0,0), tedy nehraje validně''' def __init__(self, my_color,opponent_color): self.my_color = my_color self.opponent_color = opponent_color def select_move(self,board): return 0, 0 # pozice, kam hráč chce umístit svůj kámen