我刚刚研究了启发式函数,但我找不到用于 reversi(奥赛罗)的启发式函数的想法,我只需要一个好主意来对棋盘的某些状态进行分级
我想过:
- 计算移动次数
- 计算光盘的数量
- 并计算角落中的光盘数量并给他们更好的分数,
不知道好不好。
我刚刚研究了启发式函数,但我找不到用于 reversi(奥赛罗)的启发式函数的想法,我只需要一个好主意来对棋盘的某些状态进行分级
我想过:
不知道好不好。
不,这还不够好。磁盘的数量特别无用 - 尽管游戏的目标是收集尽可能多的磁盘,但除了最后一个之外的任何移动的计数都是毫无意义的。以下是您应该考虑的更多事项:
您可以在此处阅读有关构建相对强大(在其能够击败人类新手的能力)黑白棋小程序中使用的策略的相对简短描述。
一个好的黑白棋/黑白棋启发式函数需要捕捉位置的更多方面,包括:
我已经讨论了这些方面并在这里提供了一个很好的启发式函数的实现:http: //kartikkukreja.wordpress.com/2013/03/30/heuristic-function-for-reversiothello/
你可以试试。没有什么比得到答案的数据更重要了。
假设您使用合理的软件工程实践并抽象启发式,您可以很快检查它。