Příkad:
player.py
) která je odvozena od BasePlayer.
self.board
: 2D pole velikosti self.rows x self.cols, pokud je self.board[r][c]=0, pak buňka na řádku r a sloupci c je neobsazená.
self.name
: string, ve které, Brute vyplní vaše jméno
self.text
: string, do kterého si zapište jméno vašeho programu (podle této proměnné poznáte, jakou verzi vašeho hráče jsme testovali)
self.which
: proměnná typu int. Pokud je 1, pak hrajete jako hráč 1, pokud je -1, hrajete jako hráč 2.
self.which
poznáte, kde na hrací desce začínáte
self.board
hodnotou self.which
self.board
, které mají hodnotu -self.which
patří protihráči.
self.stones
, což je pole kamenů, každý kamen je dále tvořen polem buňek (viz dále). Toto pole bude hráčovi předáno v konstruktoru.
print()
metoda, která vytiskne stav hrací desky (včetně souřadnic).
getScore(which)
player.move()
Player
player.update( other )
other
) a zapíše jej do proměnné self.board
.BasePlayer
.update()
a move()
jsou 2 sec! [ [0,0], [1,0], [2,0], [1,1] ]
.
[ [2,0], [1,1], [0,0], [1,0] ]
.
loadStones(filename
), která je v souboru base.py
.
example.py
)
import base import player as P stones = base.loadStones("stones9.txt") size = 10; #create two players (here as two instances of Player class defined in player.py) p1 = P.Player("DogFishDead",size, size, 1, stones); #1 means player 1 p2 = P.Player("FatTire",size, size, -1, stones); #-1 is for player 2 while(True): p1.print(); r1 = p1.move(); p2.update(r1); r2 = p2.move(); p1.update(r2); p2.print(); s1 = p1.getScore(1); s2 = p1.getScore(-1); if (len(r1) == 0 and len(r2) == 0): print("No answer, end, r1=",r1, "r2=",r2); break; s1 = p1.getScore(1); s2 = p1.getScore(-1); if (s1 < s2): print("Player 1 wins (", s1, s2,")"); elif (s1 > s2): print("Player 2 wins (", s1, s2,")"); else: print("No winner, draw! ", s1,s2); print("End of game");
p2
bude náš hráč
self.isUsed
, tj. pokud se použije kámen i, označte si self.isUsed[i]=1
player.py
soubor, nebo jako ZIP archiv.
player.py
(případně moduly, které player.py
importuje).