ang*_*son 12 algorithm artificial-intelligence weighted gomoku
返回的方式(想想20多年)我在一本杂志中遇到了一个Gomoku游戏源代码,我为我的电脑输入了它并且玩得很开心.
游戏很难赢,但计算机AI的核心算法非常简单,并没有考虑到很多代码.我想知道是否有人知道这个算法并且有一些关于它的源或理论的链接.
我记得的是它基本上分配了一个覆盖整个电路板的阵列.然后,无论何时我或它放置一块,它都会在板上的所有位置添加一些重量,这些位置可能会影响该块.
例如(注意权重肯定是错误的,因为我不记得那些):
1 1 1
2 2 2
3 3 3
444
1234X4321
3 3 3
2 2 2
1 1 1
Run Code Online (Sandbox Code Playgroud)
然后,它只是扫描阵列中的最低或最高值的开放位置.
我模糊的事情:
这对任何人都响铃吗?任何人都有任何有用的东西吗?
阅读你的描述,并思考一下它,我认为它可能适用于单个数组,正如你所描述的那样.
为了达到五连胜的目标,你必须(a)防止对手成功,(b)自己成功.
为了取得成功,你必须将石块放在板上已有的其他石头附近,因此为你的石头旁边的那些可以参与连续的区域增加一个正分数是有意义的.您给出的线性示例或二次方可能会很好.
为了防止你的对手成功,你必须在他/她的石头旁边放置石头.如果你用一块石头打两只鸟,那就特别好了,所以对手的石头应该像你一样增加周围区域的价值 - 他已经排队的石头越多,得分越高,并且越有可能算法将试图切断对手.
这里最重要的是不同领域的权重,以及对手的宝石加权是否与你的不同.不幸的是,我无法帮助解决这个问题,但是一旦游戏本身被编写,这些值应该相当简单,以便通过反复试验来弄清楚.
然而,这是一种非常基本的方法,并且将通过树搜索算法表现出色.搜索谷歌,有一篇关于威胁搜索的相关论文,这显然适用于Gomoku.这篇论文背后是付费墙:/