我正在尝试为我正在开发的跳棋游戏编写一个评估函数,但我找不到合适的文档。 我已经在网上阅读了几个文档,描述了编写一个或让计算机找到它的不同技术(使用遗传算法或贝叶斯学习),但对于像我这样的新手来说它们太复杂了。 所有文件都提到了参考 ALSamuel的“使用跳棋游戏进行机器学习的一些研究”,但我还是无法接受它:(。我只阅读了后续文章“使用跳棋游戏进行机器学习的一些研究-II “并在那里找到了一些好的信息,但它没有解释eval参数的含义(我想我没有整篇文章)。
答案 0 :(得分:6)
我会从简单的事情开始:物质差异。这相当于:(我的跳棋号码) - (船上对手的棋子数量)。然后你可以添加更多的功能并开始对它们进行加权,比如“暴露的跳棋”,“受保护的棋子数量”,或者“在棋盘中间控制的方块数”等等。与领域专家(即跳棋运动员)交谈和/或咨询跳棋书籍以了解哪些方法可以很好地运作。
答案 1 :(得分:2)
世界上最好的Checkers AI不会丢失,虽然我找不到有关它如何工作的具体数据,但这些属性用于确定排名(每个附加一些权重)
“线性手工评估功能考虑了游戏板的几个特征,包括计件数,国王计数,被困国王,转弯,失控的跳棋(无阻碍的被束缚的路径)和其他次要因素。” - 维基百科
有关Ai https://en.wikipedia.org/wiki/Chinook_(draughts_player)
的更多信息