一游戏类(获取当前棋盘状态,当前落子方)
下面的代码实现了初始化,修改落子后棋盘,以及判断棋局有无结束
#游戏(检测当前棋盘的状态、轮到谁落子,落子后棋盘的状态
class Game():
def _init_(self,board,current_player,previous_state,move):
self.board = board
self.current_player = current_player
self.previous_state = previous_state
self.move = move
#落子后棋盘状态变化
def apply_move(self,move):
if move.is_play:
new_board = copy.deepcopy(self.board) #拷贝
new_board.place(self.current_player,move.point) #棋盘放置落下的子
else:
new_board = self.board
return Game(new_board,self.current_player.other,self,move)
@classmethod
def new_game(cls,board_size):
if(isinstance(board_size,int)):
board_size = (board_size,board_size)
broad = Board(*board_size)
return Game(board,Player.black,None,None)