Minimax python - 如何在树中有效地找到交替的最大值和分钟数

时间:2016-06-22 16:43:44

标签: python minimax

以下代码我使用minimax树看起来很糟糕。当然有一种方法可以简化它并使用函数而不是int.MaxValue

import

2 个答案:

答案 0 :(得分:2)

首先,不要将minmax用于变量名称,因为这会影响内置函数。其次,使用这些内置函数!

您可以使用当前逻辑来选择是否需要minmax,然后传递生成器表达式以访问每个孩子的分数。

measure = min if depth % 2 else max
return measure(c.score for c in currentRoot.children)

答案 1 :(得分:0)

def findNewScore(isEven):
    if isEven:
        root.score = max([c.score for c in root.children] + [-999])
    else:
        root.score = min([c.score for c in root.children] + [999])
    return root.score

甚至只是:

def findNewScore(isEven):
    s = sorted(c.score for score in root.children)
    if isEven:
        root.score = max([-999, s[-1]])
    else:
        root.score = min([999, s[0]])
    return root.score