寻找评价函数在井字游戏3D游戏
-
26-09-2019 - |
题
我想在C申请极大极小算法游戏井字游戏3D ++。 我竭力要找到一个很好的评价函数吧。
有谁知道哪里有好的资源找到的评价函数?
感谢您。
解决方案
这是我想要的使用:
开始所有行(在所有方向上)。对于每一行,如果它只有一个玩家的标志,奖励该玩家点数基于多少痕迹也有。你可以有痕的分数,可以进行调整,以获得最佳效果的查找表映射数。最终的结果将是在两个玩家的分数之间的差。
实施例(伪代码):
const int markScore[4+1] = {0, 1, 3, 5, 99999}; //assuming 4x4x4 board
//The above values are arbitrary - adjust to what you think makes sense.
score = 0;
for all rows in all directions:
count Xs and Os
if (xs>0 && os==0)
score += markScore[xs];
else if (os>0 && xs==0)
score -= markScore[os];
return score;
这应该很好地工作,因为只有一个玩家的商标不拥有任何行给出该玩家有机会赢取。
其他提示
启发式是不必要的。目前只有3 ^ 27个州中,你可以枚举所有这些,计算的最佳玩法。
这个游戏的评价函数仅需要测试的获胜位置。评价函数应该算在电路板上的空字段,因为更空的Fileds板上有,得分越高应该的。为了减少线,行和对角线的评价函数必须检查的数量,可以镜像并旋转板。
不隶属于 StackOverflow