在主程序循环中,for循环遍历TicTacToe板上的每个空白位置,然后在每个位置上应用minimax函数以评估该特定动作。但是,对于每个基于输入的特定板配置,它针对所有空白点均返回相同的评估值。
sed -E '/^\w{20}R\w{4}$/s/^(.{12})../\1GH/' <<<UNIT56712423MP000000R0990
我希望对每个空白点的move数组的输出为[10,-10,0 ..],依此类推。相反,我的输出是:
答案 0 :(得分:1)
让我们看看程序中的这个循环:
for spot in empty_spots:
spot_eval = minimax(empty_spots, len(empty_spots), True)
print(f'The spot eval for {spot} is {spot_eval}')
moves.append(spot_eval)
请注意,在for循环的所有迭代中对minimax
函数的调用都是相同的,因为它不依赖于spot
变量。因此,基本上,您在此循环中对len(empty_spots)
函数进行了minimax
调用(它们都是相同的)。结果,moves
数组填充了相同的值,该值等于
minimax(empty_spots, len(empty_spots), True)