我正在做一个Gomoku游戏,我目前正在用GUI等来完成,我需要对IA和rules进行编码(用于可选规则,如捕获、禁止模式等)。我计划用int数组代表董事会,类似于:
uint goban[361];代表19 * 19 Goban (董事会)。假设我们可以将一个32位整数拆分成4个字节,并且在每个字节中我们可以存储这样的元数据,例如:
我不知道这种解决方案是否适合Gomoku AI,但我的主要问题是如何正确地编写它。让我们来看看模式:
-OO-O-它是一个开放和自由的三,它有内部和极端的空间。我应该如何将这个模式与没有坐标的静态表示联系起来?
另一个需要关注的问题是,何时应该更新模式,以及如何更新模式,因为在361个案例中,如果我将前面的数字更新为这样的话,可能会很长:
XOO-O-我必须更新所有四种情况,所以我不认为它是适当的,而且它还可以影响许多其他垂直/对角线模式。
我是否应该像下面这样列出当前地图上的模式:
std::list<ThreatList> tlist;并使地图成为一个简单的三角或焦炭数组?
我希望我的数据表示给我最大的信息,以得到一个快速更新的影响图,这将填补我的评估功能。我读过一些关于威胁空间搜索和其他Gomoku算法的内容,但是他们没有谈到数据表示,我也不知道如何正确地实现它,请帮助我找到一种清晰的方式来表示模式,以及如何更新它们。
谢谢你。
发布于 2013-01-14 21:06:03
看看这个开源的Gomoku:https://github.com/garretraziel/gomoku
我想你会在里面找到很多有趣的想法。
https://stackoverflow.com/questions/14326445
复制相似问题