在10*10的五子棋标准棋盘多少路上有多少个五元组

使用Qt5.7.0完成的五子棋小软件支持囚人对战,人机对战局域网联机对战

学习Qt后的一个练手项目,完成自己曾经在命令行下的五子棋的升华^_^

人机对战使用基于评分表的策略來完成电脑下子算不上AI吧。但是电脑的棋力还是很高的(至少我败多胜少)。这个评分表的来自

评估当前棋局中哪个位置的得分最高。五子棋要赢必然要有五个棋子在一起成线,那么我们就可以计算五子棋标准棋盘多少路中每一个五格相连的线一下称之为五元组。一般情况(包括专业五子棋)下五子棋标准棋盘多少路是15*15的那么应该是572个五元组。同时针对五元组中黑子和白子的数量(可以不考慮相对位置)的不同,给该五元组评不同的分然后每一个位置的得分就是包含这个位置的所有五元组的得分之和。

评分表如下,是基于电腦黑棋电脑白棋将评分表反过来即可

这种人机AI实现还是很简单的,但是这个电脑的棋力还是很强的当然效果同极大极小值搜索中应用alpha-beta剪枝这种方法去实现五子棋AI还是稍差的。

同时在无禁手黑棋先行的情况下这个评测表对于电脑白棋的棋力会稍弱一些

局域网联机对战使鼡的QUdp实现,当时的想法是允许观战同时右下角形成一个聊天室,所以采用QUdp来实现每当局域网中一个客户端进入对战页面就会发出广播,相当于加入聊天室

人人对战就没什么好说的了每个人每局限定为5分钟时间

总的功能已经完成,但还有些小细节和流程没处理就给烂尾叻。






有兴趣的可以查看下源码

参考资料

 

随机推荐