Permalink
WilliamHYZhang
psf/black code formatting (#1277)
9eac17a
Oct 5, 2019
Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.
Sign upimport math | |
""" Minimax helps to achieve maximum score in a game by checking all possible moves | |
depth is current depth in game tree. | |
nodeIndex is index of current node in scores[]. | |
if move is of maximizer return true else false | |
leaves of game tree is stored in scores[] | |
height is maximum height of Game tree | |
""" | |
def minimax(Depth, nodeIndex, isMax, scores, height): | |
if Depth == height: | |
return scores[nodeIndex] | |
if isMax: | |
return max( | |
minimax(Depth + 1, nodeIndex * 2, False, scores, height), | |
minimax(Depth + 1, nodeIndex * 2 + 1, False, scores, height), | |
) | |
return min( | |
minimax(Depth + 1, nodeIndex * 2, True, scores, height), | |
minimax(Depth + 1, nodeIndex * 2 + 1, True, scores, height), | |
) | |
if __name__ == "__main__": | |
scores = [90, 23, 6, 33, 21, 65, 123, 34423] | |
height = math.log(len(scores), 2) | |
print("Optimal value : ", end="") | |
print(minimax(0, 0, True, scores, height)) |