def research_paper_heuristic(board, color): # msc = mobility_score(board, color) # ssc = stability_score(board, color) # return ssc * 100 + msc if next_player(board, color) is None: return count_colors(board, color) * 10 ** 10 # return count_legal_moves(board, color) + frontier_squares(board, color) + weight_matrix(board, color) * 10 stage = 64 - board.count(EMPTY) return 1*(count_legal_moves(board, color) * WEIGHT_STAGE_MOVE[stage] + \ weight_matrix(board, color) * WEIGHT_STAGE_SQ[stage] + \ frontier_squares(board, color))
def mobility_score(board, color): # more legal moves is better lmv = count_legal_moves(board, color) fsq_delta = frontier_squares(board, cinv(color)) - frontier_squares(board, color) return int(fsq_delta * 0.5) + lmv * 2
def mobility_score(node): # more legal moves is better lmv = len(node.legal_moves) fsq_delta = frontier_squares(node) - frontier_squares( Node(node.board, node.next_plr)) return int(fsq_delta * 0.5) + lmv * 2