求教五子棋算法
int AlphaBeta(int depth, int alpha, int beta) {if (depth == 0) {
return Evaluate(); //这是最后要调用估价函数吗
}
GenerateLegalMoves(); //具体要怎么生成和记录五子棋的着法,比如说我的搜索深度是3,是不是要在这里全部记录下来(那不会很多吗),还有下面又要怎么用这些着法呢?需要定义什么结构去记录?
while (MovesLeft()) { //这里是指什么
MakeNextMove(); //这里是指什么
val = -AlphaBeta(depth - 1, -beta, -alpha);
UnmakeMove(); //如何实现撤消着法?
if (val >= beta) {
return beta;
}
if (val > alpha) {
alpha = val;
}
}
return alpha;
}