def choose_move(self, macroboard):
bestmoves = []
bestscore = - math.inf
macroboard = deepcopy(macroboard)
if not macroboard.available_moves:
raise GameEndedError
moves = macroboard.available_moves
for px, py in moves:
macroboard.make_move(px, py)
move_score = - score(macroboard)
# move_score = - greedy_score(macroboard)
if move_score > bestscore:
bestscore = move_score
bestmoves = [(px, py)]
if move_score == bestscore:
bestmoves.append((px, py))
macroboard.undo_last_move()
return random.choice(bestmoves)
评论列表
文章目录