Warning
This page is located in archive. Go to the latest version of this course pages. Go the latest version of this page.

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