【发布时间】:2020-11-22 14:15:39
【问题描述】:
我想创建一个深度为 3 的 minimax 搜索,每个节点将有两个子节点,代码是否正确表示,这是正确的实现,还是我做错了什么?
static int miniMaxAlgorithm(int node, int depth, bool maxPlayer)
{
int eval;
int maxEval;
int minEval;
if (depth == 0)
{
return node; // static evaluation to be returned
}
if (maxPlayer)
{
maxEval = int.MaxValue;
for (int i = 0; i < 2; i++)
{
eval = miniMaxAlgorithm(i, depth - 1, maxPlayer = false);
maxEval = Math.Max(maxEval, eval);
Console.WriteLine(maxEval);
Console.WriteLine("{0}", depth);
}
return maxEval;
}
else
{
minEval = int.MinValue;
for (int i = 0; i < 2; i++)
{
eval = miniMaxAlgorithm(i, depth - 1, maxPlayer = true);
minEval = Math.Min(minEval, eval);
Console.WriteLine(minEval);
Console.WriteLine("{0}", depth);
}
return minEval;
}
}
【问题讨论】:
-
运行时会发生什么?
-
14 Console.Writelines 将出现在终端中(大概是除根以外的所有节点)。我正在尝试确定树的结构是否符合预期,并且它们是否不是其他顺序。
标签: c# artificial-intelligence minimax