您现在的位置是:首页 > 学无止境 > 其他网站首页其他 五子棋AI算法

五子棋AI算法

  • 莫愁
  • 其他
  • 2020-03-14
简介五子棋是一款大家非常熟悉的棋类游戏,玩法类似围棋,简单却非常有趣,让人百玩不厌。胜利的条件就是以哪方最先五颗棋相连。那么如何用程序代码来下棋呢?
字数 5504.5
来源http://www.cnblogs.com/songdechiu/p/5768999.html

五子棋玩法类似围棋,简单却非常有趣,让人百玩不厌。五子棋也是一款大家非常熟悉的棋类游戏,对战双方以哪方最先五颗棋相连极为获胜。

下面先介绍五子棋玩法,然后再讲AI算法分享给大家。

一、五子棋基本棋型

最常见的基本棋型大体有六种:连五,活四,冲四,活三,眠三,活二

①连五

顾名思义,五颗同色棋子连在一起,不需要多讲。

五子棋

②活四

有两个连五点(即有两个点可以形成五),图中白点即为连五点。

稍微思考一下就能发现活四出现的时候,如果对方单纯过来防守的话,是已经无法阻止自己连五了。

五子棋

③冲四

有一个连五点,如下面三图,均为冲四棋型。图中白点为连五点。

  相对比活四来说,冲四的威胁性就小了很多,因为这个时候,对方只要跟着防守在那个唯一的连五点上,冲四就没法形成连五。

五子棋 五子棋 五子棋

④活三

可以形成活四的三,如下图,代表两种最基本的活三棋型。图中白点为活四点。

活三棋型是我们进攻中最常见的一种,因为活三之后,如果对方不以理会,将可以下一手将活三变成活四,而我们知道活四是已经无法单纯防守住了。所以,当我们面对活三的时候,需要非常谨慎对待。在自己没有更好的进攻手段的情况下,需要对其进行防守,以防止其形成可怕的活四棋型。

五子棋

五子棋

上图中间跳着一格的活三,也可以叫做跳活三

⑤眠三

只能够形成冲四的三,如下各图,分别代表最基础的六种眠三形状。图中白点代表冲四点。眠三的棋型与活三的棋型相比,危险系数下降不少,因为眠三棋型即使不去防守,下一手它也只能形成冲四,而对于单纯的冲四棋型,我们知道,是可以防守住的。

五子棋 五子棋 五子棋
五子棋 五子棋 五子棋

如上所示,眠三的形状是很丰富的。对于初学者,在下棋过程中,很容易忽略不常见的眠三形状,例如图2-13所示的眠三。

有新手学了活三眠三后,会提出疑问,说活三也可以形成冲四啊,那岂不是也可以叫眠三?

会提出这个问题,说明对眠三定义看得不够仔细:眠三的的定义是,只能够形成冲四的三。而活三可以形成眠三,但也能够形成活四。

此外,在五子棋中,活四棋型比冲四棋型具有更大的优势,所以,我们在既能够形成活四又能够形成冲四时,会选择形成活四。

温馨提示

学会判断一个三到底是活三还是眠三是非常重要的。所以,需要好好体会。后边禁手判断的时候也会有所应用。

⑥活二

能够形成活三的二,如下图,是三种基本的活二棋型。图中白点为活三点。

活二棋型看起来似乎很无害,因为他下一手棋才能形成活三,等形成活三,我们再防守也不迟。但其实活二棋型是非常重要的,尤其是在开局阶段,我们形成较多的活二棋型的话,当我们将活二变成活三时,才能够令自己的活三绵绵不绝微风里,让对手防不胜防。

五子棋 五子棋 五子棋

⑦眠二

能够形成眠三的二。图中四个为最基本的眠二棋型,细心且喜欢思考的会发现眠三介绍中的最后一张图与下列四个基本眠二棋型都不一样的眠二。图中白点为眠三点。

五子棋 五子棋
五子棋 五子棋

 

打分机制请看这篇文章:五子棋AI的思路

 

二、PHP实现五子棋AI代码:

 

三、案例游戏

①五子棋在线博弈

五子棋AI算法

②弈心是当今强大的五子棋引擎。与黑石、Goro、连珠终结者等其它著名五子棋程序相比,弈心可以给出更为细致的分析,进而获得更有竞争力的着法。弈心在全球有数以千计的用户及支持者。程序有引擎设置、交换棋子等众多功能,是一款不错的练棋软件。

奕心五子棋.rar
0435c346fcda53d4b636de2883f51c1e.rar (764.72 KB)

 


转载: 感谢您对莫愁个人博客网站平台的认可,非常欢迎各位朋友分享到个人站长或者朋友圈,但转载请说明文章出处“来源莫愁个人博客 https://www.mochoublog.com/study/394.html”。

文章评论

    • 评论
    人参与,条评论

技术在线

服务时间

周一至周日 12:00-22:00

关闭下雪
关闭背景特效