import math def alpha_beta(depth, index, max_player, values, alpha, beta): if depth == 3: return values[index] func = max if max_player else min best = -math.inf if max_player else math.inf for i in range(2): val = alpha_beta(depth + 1, index * 2 + i, not max_player, values, alpha, beta) best = func(best, val) if max_player: alpha = max(alpha, best) else: beta = min(beta, best) if beta <= alpha: break return best values = [3, 5, 6, 9, 1, 2, 0, -1] print("Optimal Value:", alpha_beta(0, 0, True, values, -math.inf, math.inf))