PyQt5实现五子棋游戏(人机对弈)实现五子棋游戏(人机对弈)
主要为大家详细介绍了PyQt5实现五子棋游戏,人机对弈,具有一定的参考价值,感兴趣的小伙伴们可以参考一
下
这篇博客主要是为了学习Python和PyQt,因为对棋类游戏比较热衷,所以从规则较简单的五子棋入手,利用PyQt5实现图形
界面,做一个可以进行人机对弈的脚本,最后打包成应用程序。AI的算法打算用神经网络来完成,正在苦学TensorFlow中。
本来我以为五子棋规则很简单,不就像小学时候玩的那样,五个棋子连在一起就赢了嘛,但是后来发现事情并没有那么简单,
现在的五子棋有禁手这个规则 ,“三三禁手” 、“四四禁手”、“长连禁手”等等,都是为了限制现行一方必胜。我也不是职业的棋
手,对吧,所以禁手什么的就不考虑了,弄个简单的成品出来就很满足了。
代码全是边学习边写的,有瑕疵的地方欢迎提出。
第一步,第一步,收集素材
主要就是棋子、棋盘的图片,还有下棋的音效
音效与代码一起在最后给出
第二步,第二步,五子棋的逻辑类
收集完素材后,不着急界面的编写,先将五子棋的逻辑写好,界面和逻辑要分开,这很重要。
先想想在五子棋的逻辑类里要有哪些东西。
首先是棋盘,棋盘用15*15的数组表示
然后是棋子,黑棋用1表示,白棋用2表示,空白就用0表示
再然后还要获取指定点的坐标,获取指定点的方向等等。
最重要的也是稍微有点难度的部分就是判断输赢。结合网上的方法和我自己的理解,下面贴出我写的代码,仅供参考。
chessboard.py
# ----------------------------------------------------------------------