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 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.

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

courses/b4b33rph/cviceni/reversi/specifikace.txt · Last modified: 2024/10/21 11:19 by xposik