我有时编写程序来玩一些棋盘游戏变体。基本策略是标准的alpha-beta修剪或类似的搜索,有时会加入对结局或开局的通常方法。我大多数时间都在尝试下棋变种,所以当我需要选择评估函数时,我使用基本的国际象棋评估函数。
然而,现在我正在编写一个完全新的棋盘游戏程序。如何选择一个好的甚至是像样的评估函数呢?
主要的挑战在于同样的棋子总是在棋盘上,因此通常的材料函数不会根据位置改变,而且这个游戏还没被玩过一千次左右,所以人类不能通过足够的经验来提供洞察力。(PS.我考虑过MoGo方法,但随机游戏不太可能终止。)
游戏详细信息:该游戏在一个10x10的棋盘上进行,每方固定六个棋子。这些棋子有特定的移动规则和相互作用方式,但没有任何棋子被捕获。游戏的目标是使你的棋子足够多地位于棋盘上的某些特殊格子中。电脑程序的目标是提供一个与当前人类玩家相媲美或更优秀的选手。