以下代码我使用minimax树看起来很糟糕。当然有一种方法可以简化它并使用函数而不是int.MaxValue
import
答案 0 :(得分:2)
首先,不要将min
和max
用于变量名称,因为这会影响内置函数。其次,使用这些内置函数!
您可以使用当前逻辑来选择是否需要min
或max
,然后传递生成器表达式以访问每个孩子的分数。
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