侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

基于python3 pyQt5 QtDesignner实现窗口化猜数字游戏功能

Python  /  管理员 发布于 7年前   144

描述:使用QtDesignner设计界面,pyQt5+python3实现主体方法制作的猜数字游戏。

游戏规则:先选择游戏等级:初级、中级、高级、魔鬼级,选择完游戏等级后点击“确定”,然后后台会自动生成一个与游戏等级匹配的“神秘数字”,游戏玩家在文本框内输入数字,再点击文本框旁边的“确定”,即可比较玩家所猜数字是否就是“神秘数字”。

游戏界面:

 

源代码:

代码1: guessNumberGame.py (界面代码)

 # -*- coding: utf-8 -*-  # Form implementation generated from reading ui file 'guessNumberGame.ui' # # Created by: PyQt5 UI code generator 5.11.3 # # WARNING! All changes made in this file will be lost!  from PyQt5 import QtCore, QtGui, QtWidgets class Ui_Form(object):   def setupUi(self, Form):     Form.setObjectName("Form")     Form.resize(555, 463)     self.label = QtWidgets.QLabel(Form)     self.label.setGeometry(QtCore.QRect(40, 90, 181, 31))     self.label.setObjectName("label")     self.comboBox = QtWidgets.QComboBox(Form)     self.comboBox.setGeometry(QtCore.QRect(230, 30, 171, 31))     self.comboBox.setObjectName("comboBox")     self.comboBox.addItem("")     self.comboBox.addItem("")     self.comboBox.addItem("")     self.comboBox.addItem("")     self.pushButton_2 = QtWidgets.QPushButton(Form)     self.pushButton_2.setGeometry(QtCore.QRect(420, 30, 91, 31))     self.pushButton_2.setObjectName("pushButton_2")     self.pushButton = QtWidgets.QPushButton(Form)     self.pushButton.setGeometry(QtCore.QRect(420, 90, 91, 31))     self.pushButton.setObjectName("pushButton")     self.textBrowser = QtWidgets.QTextBrowser(Form)     self.textBrowser.setGeometry(QtCore.QRect(40, 151, 471, 201))     self.textBrowser.setObjectName("textBrowser")     self.lineEdit = QtWidgets.QLineEdit(Form)     self.lineEdit.setGeometry(QtCore.QRect(230, 90, 171, 31))     self.lineEdit.setObjectName("lineEdit")     self.label_3 = QtWidgets.QLabel(Form)     self.label_3.setGeometry(QtCore.QRect(40, 30, 181, 31))     self.label_3.setObjectName("label_3")     self.pushButton_3 = QtWidgets.QPushButton(Form)     self.pushButton_3.setGeometry(QtCore.QRect(220, 380, 111, 41))     font = QtGui.QFont()     font.setFamily("Agency FB")     font.setPointSize(12)     self.pushButton_3.setFont(font)     self.pushButton_3.setObjectName("pushButton_3")     self.retranslateUi(Form)     QtCore.QMetaObject.connectSlotsByName(Form)   def retranslateUi(self, Form):     _translate = QtCore.QCoreApplication.translate     Form.setWindowTitle(_translate("Form", "猜数字游戏"))     self.label.setText(_translate("Form", "<html><head/><body><p><span style=\" font-size:14pt;\">请猜一个数字:</span></p></body></html>"))     self.comboBox.setItemText(0, _translate("Form", "初级:数字小于20"))     self.comboBox.setItemText(1, _translate("Form", "中级:数字小于30"))     self.comboBox.setItemText(2, _translate("Form", "高级:数字小于50"))     self.comboBox.setItemText(3, _translate("Form", "魔鬼级:数字小于100"))     self.pushButton_2.setText(_translate("Form", "确定"))     self.pushButton.setText(_translate("Form", "确定"))     self.label_3.setText(_translate("Form", "<html><head/><body><p><span style=\" font-size:14pt;\">请选择游戏难度:</span></p></body></html>"))     self.pushButton_3.setText(_translate("Form", "再来一局"))

界面代码

代码2: runG uess.py (方法主体代码)

 # -*- coding: utf-8 -*- import sys,random,time from PyQt5.QtWidgets import QApplication, QWidget, QMainWindow from guessNumberGame import Ui_Form  times=1 #声明一个模块内的全局变量;用于记录猜数字的次数 rand=20#声明一个模块内的全局变量;神秘数字的最大范围 allTimes=7#声明一个模块内的全局变量;游戏最大次数 class mwindow(QWidget, Ui_Form):   def __init__(self): #初始化     super(mwindow, self).__init__() #这是对继承自父类的属性进行初始化。而且是用父类的初始化方法来初始化继承的属性。     self.setupUi(self)   #定义一个方法:从下拉框选择游戏难度   def gameLevel(self):     times=1     global rand,allTimes     level=self.comboBox.currentIndex()     if level==0:       rand=20       allTimes=7     if level==1:       rand=30       allTimes=10     if level==2:       rand=50       allTimes = 15     if level==3:       rand=100       allTimes = 20   #定义一个方法:选择游戏难度后生成一个随机的神秘数字   def getRandNum(self):     global theNum,times     times=1      #每次选择游戏难度并点击“确定”后,已猜数字次数都重新归为1     w.pushButton.setEnabled(True)  #设置pushButton可点击(即选择了游戏难度之后,pushButton才可点击)     theNum=random.randint(1,rand)     self.textBrowser.append('开始游戏吧,你有%d次机会,数字范围:1-%d' %(allTimes,rand))     # self.textBrowser.append(str(theNum)) #直接显示神秘数字,用于调试时使用   #定义一个方法:点击“确定”按钮的事件,用于比较所猜数字和神秘数字   def guess(self):     global allTimes,times #使用全局变量times     yourNum = int(self.lineEdit.text()) #从文本框获取到输入的数字,并转化为int型     if yourNum < theNum and times < allTimes:       text = "你猜的数字%d小了!你还有%d次机会,再猜!" %(yourNum,allTimes-times)       self.textBrowser.append(text)  #把提示信息写入textBrowser       times += 1     elif yourNum > theNum and times <allTimes:       text = "你猜的数字%d大了!你还有%d次机会,再猜!" %(yourNum,allTimes-times)       self.textBrowser.append(text)       times += 1     elif yourNum == theNum and times <allTimes:       text = '你猜对了,就是%d,你一共猜了%s次!' % (theNum,times)       self.textBrowser.append(text)     else:       text = '%d次机会用完了你也没猜对!神秘数字其实是:%d' %(allTimes,theNum)       self.textBrowser.append(text)   #定义一个方法:点击“再来一局”时触发的事件   def reStart(self):     self.textBrowser.clear() #清除textBrowser内的内容     self.lineEdit.clear()   #清除lineEdit内的内容     w.pushButton.setEnabled(False) #设置pushButton不可点击(即在选择游戏难度之前,pushButton不可点击) if __name__ == '__main__':   app = QApplication(sys.argv)   w = mwindow()   w.pushButton.setEnabled(False) #设置pushButton不可点击(即在选择游戏难度之前,pushButton不可点击)   w.pushButton.clicked.connect(w.guess)  #绑定guess方法   w.pushButton_2.clicked.connect(w.getRandNum)   w.comboBox.currentIndexChanged.connect(w.gameLevel)   w.pushButton_3.clicked.connect(w.reStart)   w.show()   sys.exit(app.exec_()) #使程序一直循环运行直到主窗口被关闭终止进程(如果没有这句话,程序运行时会一闪而

总结

以上所述是小编给大家介绍的基于python3 pyQt5 QtDesignner实现窗口化猜数字游戏功能 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!


  • 上一条:
    python过滤中英文标点符号的实例代码
    下一条:
    python 判断字符串中是否含有汉字或非汉字的实例
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • 在python语言中Flask框架的学习及简单功能示例(0个评论)
    • 在Python语言中实现GUI全屏倒计时代码示例(0个评论)
    • Python + zipfile库实现zip文件解压自动化脚本示例(0个评论)
    • python爬虫BeautifulSoup快速抓取网站图片(1个评论)
    • vscode 配置 python3开发环境的方法(0个评论)
    • 近期文章
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • Laravel 11.15版本发布 - Eloquent Builder中添加的泛型(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2018-04
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2022-01
    • 2023-07
    • 2023-10
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客