上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
5.2 带棋子数组的评估
如果程序中设置了棋子数组,则算法做相应修改。
算法5-2:带棋子数组的评估算法
输入:棋子数组 输出:局面的估值 wValue:红方棋子价值的总和 bValue:黑方棋子价值的总和 wValue=bValue=0; 1 棋子pc=16 to 31 如果piece[pc]>0(棋子仍在棋盘上),则 wValue = wValue + pc棋子对应的价值 2 棋子pc=32 to 47 如果piece[pc]>0(棋子仍在棋盘上),则 bValue = bValue + pc棋子对应的价值 return wValue - bValue
程序代码
short Eval(void)
{
int i;
short bValue,wValue;
bValue = wValue = 0;
for(i=16; i<32; i++)
{
if(piece[i]>0)
wValue = wValue + PieceValue[IntToSubscript(i)];
}
for(i=32; i<48; i++)
{
if(piece[i]>0)
bValue = bValue + PieceValue[IntToSubscript(i)];
}
return wValue - bValue;
}
参见程序5-2.cpp。