====== Hráč ======
Podrobná specifikace toho, co musí hráč umět a jak musí vypadat, aby mohl hrát turnaj s ostatními.
* Reversi hráč musí fungovat v **Pythonu 3.8.x**, který bude nainstalován na strojích pro automatické hodnocení! Jinak se může stát, že vaše kódy nebudou fungovat správně!
===== 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 souboru '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.|
| ''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í tuple(n-tici) délky 2 (obe cisla typu int) se souřadnicemi tahu - například (0,0), čí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ů. 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 username studenta (například 'novakjan').
Příklad třídy MyPlayer:
class MyPlayer:
'''Hrac hraje nahodne'''
def __init__(self, my_color,opponent_color):
self.name = 'username' #username studenta
def move(self,board):
return (*,*) #pozice kam hráč umisťuje svůj kámen