Warning
This page is located in archive.

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.

ZIP archiv s podpůrnými kódy

Stáhněte si reversi_2023l.zip

ZIP obsahuje soubory implementující prostředí, ve kterém se bude hrát. Pro zahrání samotné hry jsou k dispozici dvě prostředí: grafické reversi_creator.py, nebo terminálové headless_reversi_creator.py. Modul player.py obsahuje šablonu vašeho hráče (viz níže). Podrobnosti k těmto souborům najdete v README.

Soubor k odevzdání

Odevzdávat budete ZIP archiv obsahující váš modul player.py a případně další vaše moduly, které modul player.py potřebuje. Tyto soubory musí být v kořeni archívu, archív nesmí obsahovat žádné adresáře! Váš ZIP archív (a jen tento soubor) nahrajete do BRUTE. Se zdrojovými kódy vašeho hráče (a vašich pomocných modulů) můžete nahrát nějaké datové soubory, pokud nutně potřebujete. Ale velikost odevzdávaného ZIP archivu nesmí přesáhnout 1MB.

Třída MyPlayer a její metody

Balíček také obsahuje soubor player.py s třídou MyPlayer. V ní upravte metodu move() tak, aby realizovala strategii vašeho hráče.

Docstring popisující třídu MyPlayer je omezen na 80 znaků, neboť se objeví v tabulce s výsledky. Zkuste v docstringu velice stručně popsat hlavní princip vašeho hráče.

Vašeho hráče (v souboru 'player.py') implementujete ve formě třídy MyPlayer (soubor '/reversi/player.py' v archivu výše), 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.

Samozřejmě není vhodné implementovat celou strategii jen v metodě move(). Doporučujeme zamyslet se nejprve nad dekompozicí celého problému, ve třídě MyPlayer implementovat i další metody řešící nějaké podproblémy vaší strategie a tyto metody jen z move() volat.

Další pravidla a omezení

  • Můžete používat svoje data, které použije konstruktor hráče. Konstruktor hráče (volá se jen 1x, na začátku partie) má limit 60 sekund, takže má dost času si vše promyslet.
  • Nepoužívejte vícevláknové algoritmy, respektive, nepomůžete si tím. Virtuální stroj v AE má vyhrazeno vždy jen jedno jádro.
  • Odevzdejte hráče v řádném termínu. Možná na konci semestru spustíme ještě dodatečný turnaj, pokud bude potřeba, ale nespoléhejte na to.
  • Penalty za pozdní odevzdání se odpočítávají jen 1x.
courses/b3b33kui/semestralni_ulohy/2_reversi/specifikace.txt · Last modified: 2024/03/11 14:01 by xposik