回复 7楼 yss0729
思路不是特别复杂
首先是看自己有没有下了就能赢了
然后看能不能堵掉对面下了就能赢的
再看自己能不能下出“4连”
再看能不能堵掉对面能下出的“4连”
如果全部不满足的话,就是使用评估函数对整个局势进行评分,一般来说AI的重点就在策略使用和评估函数的选择上,我是这么写的:
一个空地(即双方都没下的格子)如果最后成为了5连的格子之一,这个5连有5+5+5+5(分别对应横着,竖着,两种斜)种可能性,其中有些可能性已经不可能了(一个已经有对方的棋子),如果某种可能性还是可能的,那么它就能为这个空格加分,加多少分呢,我是取得这种可能性对应的5个格子已经有多少个个己方格子,这样每个格子的分数就是20中可能性所给予的分数加起来。
由于双方都有一个分数,即一个格子对应两个分数(对我方的重要度和对敌方的重要度),我们分别取出对我方重要度最大的空格和对敌方重要度最大的空格,然后比较他们的大小,如果我方更大,就下对我方重要度最大的棋子,否则选择下对对方重要度最大的气质(相当于堵对面的棋)
大致思路就是这样的,其他都是细节处理