前文pythonpygame实现五子棋人机对战之一pythonpygame实现五子棋人机对战之二pythonpygame实现五子棋人机对战之三已经将五子棋电脑应手的内容简要描述一下现在就剩下程序如何判断输赢胜负这个问题了。我们想象一下这个场景当某方落子时就会触发一下这个测试看水平方向垂直方向斜向上方向及反斜线方向上是否可以形成连五若是就胜否则继续游戏。五、用程序处理起来就是不停的循环。该内容属于通用的类放在utils.py中。from params import Params rows int(Params.get(ROWS)) blocksize int(Params.get(blockSize)) width int(Params.get(WIDTH)) height int(Params.get(HEIGHT)) # 判断是否五子连线 def checkwin(sourcechesses,posx,posy): # x轴方向 num_x 0 left posx - blocksize while( left 0 and sourcechesses.count((left,posy)) 1 ): num_x 1 left - blocksize right posx blocksize while( right width and sourcechesses.count((right,posy)) 1 ): num_x 1 right blocksize num_x 1 # y轴方向 num_y 0 up posy - blocksize while( up 0 and sourcechesses.count((posx,up)) 1): num_y 1 up - blocksize down posy blocksize while( down height and sourcechesses.count((posx,down)) 1): num_y 1 down blocksize num_y 1 # 对角线 左上到右下 num_135 0 down135x posx blocksize down135y posy blocksize while( down135x width and down135y height and sourcechesses.count((down135x,down135y)) 1 ): num_135 1 down135y blocksize down135x blocksize up315x posx - blocksize up315y posy - blocksize while( up315x 0 and up315y 0 and sourcechesses.count((up315x,up315y)) 1 ): num_135 1 up315x - blocksize up315y - blocksize num_135 1 # 对角线 左下到右上 num_45 0 up45x posx blocksize up45y posy - blocksize while( up45x width and up45y 0 and sourcechesses.count((up45x,up45y)) 1 ): num_45 1 up45y - blocksize up45x blocksize down225x posx - blocksize down225y posy blocksize while( down225x 0 and down225y height and sourcechesses.count((down225x,down225y)) 1): num_45 1 down225x - blocksize down225y blocksize num_45 1 if num_x 5 or num_y 5 or num_135 5 or num_45 5: return True return False以x轴方向为例# x轴方向 num_x 0 left posx - blocksize while( left 0 and sourcechesses.count((left,posy)) 1 ): num_x 1 left - blocksize right posx blocksize while( right width and sourcechesses.count((right,posy)) 1 ): num_x 1 right blocksize num_x 1num_x是变量记录该方向上有几个同色棋子相连。由于判断是基于当前下的棋子所以参数有sourcechesses,posx,posy。sourcechesses就是在main中定义的white_positions和black_positions当前下的啥颜色的棋就到对于的**_positions去找而**_positions保存的就是棋子的转换后的位置pointtrans详情见系列文章一在集合中查找某元素是否存在有很多内置方法或自己写方法本项目用的是count内置函数。x轴方向先往左找直到最左边能找到同色棋子再往右找直至最右边能找到同色棋子。加起来之和再加上当前的棋子得到的就是该方向上同色棋子的数量。其他三个方向逻辑雷同不再赘述。剩下的就是在main中把这些逻辑填空上去就可以了。待续pythonpygame实现五子棋人机对战之五
企业数字化 ERP 产品动态
相关推荐
多视图异常检测在ABIDE孤独症诊断中的应用:从数据到模型 简介:基于多视图异常检测与ABIDE数据集的ASD诊断项目,面向医疗影像分析、异常检测及深度学习方向的开发者与研究者。资源围绕自闭症谱系障碍识别任务,提供单视图与多视图模型训练脚本、多层网络构建模块、自定义层、图构建、工具函数及README… · 2026/9/23 10:33:44
python+pygame实现推箱子小游戏之六 前文内容请移步:
python+pygame实现推箱子小游戏之一
python+pygame实现推箱子小游戏之二
python+pygame实现推箱子小游戏之三
python+pygame实现推箱子小游戏之四
python+pygame实现推箱子小游戏之五
在本小节实现runGame的代码
八
在runGame中主要是响应键盘的操作。… · 2026/9/23 10:33:44
数据采集卡选型核心指南:信号类型、采样率、分辨率与精度如何权衡 干这行时间长了,经常有人拿着一张采集卡的参数页来问我:这卡写着16位、250kS/s、10V,到底能不能用来测我那个传感器的信号?我的回答一般是反问一句:你的传感器输出的是什么类型的信号?信号多大?… · 2026/9/23 10:33:44
Nginx UI Webauthn 无密码认证配置实战:Passkey 登录与 2FA 完整指南 后端前端运维MCP 服务 【免费下载链接】nginx-ui Yet another WebUI for Nginx 项目地址: https://gitcode.com/gh_mirrors/ngi/nginx-ui 点击查看 免费下载 导读
Webauthn 是基于公钥加密的 Web 认证标准,允许用户使用指纹、面部识别、设备 PIN 或 FI… · 2026/9/23 14:08:24
同态滤波图像增强:原理推导、Python实现与参数调优避坑指南 简介:这份资源面向计算机视觉与图像处理方向的学习者,聚焦光照不均匀条件下的图像增强问题,提供基于同态滤波的MATLAB实现方案。同态滤波将图像视为亮度与光照分布的乘积,在频域中分别施加高通与低通滤波,再经逆变换还… · 2026/9/23 14:08:23
Captura 命令行 `list` 命令完全指南:一次枚举编码器、屏幕、窗口与音频设备 Captura 命令行 list 命令完全指南:一次枚举编码器、屏幕、窗口与音频设备 【免费下载链接】Captura Capture Screen, Audio, Cursor, Mouse Clicks and Keystrokes 项目地址: https://gitcode.com/gh_mirrors/ca/Captura
captura list 是 Captura 命令行工具… · 2026/9/23 14:08:16
移动流量包性能优化:3招解决版本升级API全变痛点 移动流量包性能优化:3招解决版本升级API全变痛点 刚把项目里的移动流量包SDK升到最新版,直接懵了。 旧版的 fetchData 方法没了, onSuccess 回调变成了Promise,连参数名都改了。 这种 版本升级后 API… · 2026/9/23 14:08:09
3招搞定手机怎么下载微信面试难题实战项目解析 3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29