首页 > 编程知识 正文

python石头剪刀布代码(python剪刀石头布游戏代码)

时间:2023-05-05 00:53:28 阅读:83664 作者:4828

/1前言/

最近在学习PyQt5视觉接口。 这是一个非常丰富的gui库,相对于tkinter库,它更强大,界面更优美,操作也不难。 于是我尝试了牛刀,开始制作用PyQt5可以可视化的“剪刀石头布”小游戏。 整体效果如下。

该程序实现了游戏回合统计、双方得分、平局次数统计和重启功能,无论是1局胜负,还是3局2胜、7局3胜都能完美解决。

/2具体实现/

让我详细介绍一下具体的步骤。

第一步:创建游戏主窗口

PyQt5主窗口的创建有固定的类型。 首先,创建一个APP对象。 app=应用程序(sys.argv )。 参数sys.argv是命令行参数。 这样,在计算机系统终端上运行程序时,可以传递命令参数来执行不同的逻辑代码。 执行APP对象,进入消息吉鲁类型,然后等待:sys.exit(app.exec_ ) ) ) )结束。 代码如下图所示。

其中,GameWindow () )是这次游戏的班级,窗口大小为900X400

将标题和图标添加到此窗口后,如下图所示。

效果如下图所示。

步骤2 :在网格布局中放置控件

PyQt5有绝对布局、水平布局、垂直布局、网格布局、表单布局5种布局方式,但这次只采用网格布局。 其他的版面设计方式各有特点,有兴趣的人请研究一下。

1 .我想把整个出窗分成3x3=9个网格,用网格布局填写内容。 首先,将“红方选手”、“第x次”、“蓝方选手”分别放入第1行的3个网格。

网格布局需要添加小部件函数,上图中的4个参数分别表示要放置的空间、要放置的行数、要放置的列数,上述3个控件分别位于第1行的1-3列。 效果如下图所示。

2 .保留“剪刀石头布”照片的展示位置,分别放在第二行的第一和第三网格。

把红蓝双方的得分情况放在第二行中间的网格上。

这里需要注意。 在第2行的第2个网格中嵌入新的网格对象,将其分成1行3列的网格。 其中,第一个网格得分为红色,第二个网格得分为“VS”,第三个网格得分为蓝色。

3 .绑定“游戏开始”、“重新开始”信号槽

在QpushButton中创建“开始游戏”按钮,绑定gamestart函数,并将其放置在第三行的第二个网格上。

on">

用QpushButton创建“重新开始”按钮,绑定restart函数(后续还会讲),并将该按钮放入第三行的第三个网格中。效果如下图所示:

现在基本框架已经搭建好了。

第三步:信号槽绑定信号

主要是针对开始游戏和重新开始游戏按钮绑定信号,下面给大家介绍一下上述的gamestart和restart函数。

1. gamestart函数

1)游戏开始后,我需要随机从“剪刀”、“石头”、“布”三张图片中选出1张放置到相应位置,代码如下图所示:

这里用了red和blue两个类,每次点击开始游戏按钮,都会调用该类,用random函数随机选出图片,并在相应位置展示。

2)判断输赢,实时更新数据

Gamestart下调用judge函数,判断得分,记录红方得分、蓝方得分、平局次数3个值,并用setText函数立即更新红方得分框、蓝方得分框及平局次数框的内容。

最后,为了避免游戏中不小心点击关闭窗口按钮,添加1个关闭事件,如下图所示。

当点击右上角叉号时,会进行提示,效果如下图所示:

到这里,这个小游戏就制作完毕了,界面比较简单,感兴趣的朋友可以继续开发更高级的功能。

/3 结语/

本文基于PyQt5可视化界面,用PyQt5做个可视化的“剪刀石头布”小游戏,可以实现游戏轮次统计,双方得分、平局次数统计和重新开始功能,不管是1局决胜负,还是三局两胜、七局三胜,都能完美解决。

欢迎大家尝试,消耗在家的无聊时间。本文涉及的代码都上传到了github地址上,后台回复“剪刀石头布”五个字即可获取代码。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。

  • 相关阅读