====== Specifikace ====== Podrobná specifikace toho, co musí agent umět a jak musí vypadat, aby mohl být otestován automatickým evaluačním systémem. Agent musí fungovat v **Pythonu 3**, který bude nainstalován na strojích pro automatické hodnocení! Jinak se může stát, že váš kód nebude fungovat správně! ===== Soubor k odevzdání ===== Odevzdávat budete ZIP archiv 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/upload/|upload systému]]. Se zdrojovými kódy vašeho hráče a případné vaší pomocné knihovny můžete nahrát i 1(!) datový soubor, pokud nutně potřebujete. Velikost tohoto souboru je omezena na 1MB. ===== Obsah zipu ===== Balíček obsahuje soubor 'game_board.py', který představuje prostředí ve kterém se bude hrát. Balík obsahuje také další soubory, které vám umožňí zahrát samotnou hru. Podrobnosti k těmto souborům najdete v Readme. ===== Třída MyPlayer a její metody ===== Balíček také obsahuje soubor 'player.py'. Tam budete muset upravit metodu ''move'', aby zachycovala strategii vašeho hráče. Docstring popisující třídu MyPlayer je omezen na **80 znaků** neboť se objeví v tabuli s výsledky. Představte v tomto docstringu ve zkratce vašeho agenta a na jakém principu funguje. Vašeho hráče (v souboru 'player.py') implementujete ve formě třídy ''MyPlayer'' (soubor '/reversi/player.py' v {{:courses:b3b33kui:cviceni:reversi:reversi_2022l.zip|reversi.zip}}), která obsahuje tyto metody: ^ metoda ^ vstupní parametry ^ výstupní parametry ^vysvětlení ^ | ''%%__%%init%%__%%'' | ''my_color'', ''opponent_color'', ''board_size'' | //žádné// | Vytvoření hráče dané barvy s protihráčem druhé barvy. Velikost hrací plochy máte v konstruktoru pro případnou přípravu heuristických ohodnocení. | | ''get_all_valid_moves'' | ''board''| seznam souřadnic | Metoda vrátí seznam všech korektních tahů.| | ''move'' | ''board''| souřadnice | Metoda vrátí tuple souřadnic na hrací desce, kam váš hráč chce umístit hrací kámen. **Tuto metodu musíte dopsat.**|