负极大值风格的Alpha-Beta搜索算法
int alphabetaSearch(int depth,int alpha,int beta)//alpha是当前走棋方找到的最优局面的评分,找到更优的就覆盖它,beta是引发剪枝的值
{int value;move MoveArray[128];
move mv;
int i;
if (depth==0)//返回当前局面的优势
return Eval();
int num=GenAllMove(MoveArray);
for (i=0;i<num;i++)
{
mv=MoveArray[i];
MakeMove(mv);
value=-alphabetaSearch(depth-1,-beta,-alpha);
UnMakeMove();
if (value>=beta)
return beta;
if(value>alpha)
{
alpha=value;
if(depth==MaxDepth)
BestMove=mv;
}
}
return alpha;
}