====== Hráč ====== Podrobná specifikace toho, co musí hráč umět a jak musí vypadat, aby mohl hrát turnaj s ostatními. ===== Soubor k odevzdání ===== 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 [[https://cw.felk.cvut.cz/brute/|BRUTE]]. ===== Třída MyPlayer a její metody ===== 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.| ===== Vlastnosti třídy MyPlayer ===== * Třída MyPlayer se bude identifikovat popisem ve formě doc-stringu. Maximální délka je 80 znaků. Popis by měl pokud možno vysvětlovat jak hráč hraje. /* * Třída bude obsahovat proměnnou ''name'' s FEL username studenta (například 'novakj16').*/ 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