PyQt6猜数字小游戏

PyQt6猜数字小游戏

本文使用pyQt6实现猜数字小游戏。游戏开始给出数字范围,猜测失败缩写给定范围。

import math
import sys
import random
from PyQt6.QtWidgets import QMainWindow, QApplication, QMessageBox
from PyQt6.QtCore import Qt
from sample import Ui_Form# 继承至界面文件的主窗口类
class MyMainWindow(QMainWindow, Ui_Form):# 生成随机数的右界random_choice = [i * 100 for i in range(1, 20)]def __init__(self, parent=None):# 继承主窗口类super(MyMainWindow, self).__init__(parent)self.setupUi(self)# 随机数的右界self.guess_range = None# 生成的随机数self.guess_num = None# 提示范围的左界self.left = None# 提示范围的右界self.right = None# 产生随机数self.random_num()# 初始化功能self.initUi()def init_range(self):# 为随机数的左右界赋值self.left = 1self.right = self.guess_range@propertydef _random_range(self):# 随机产生随机数的右界return random.choice(self.random_choice)def random_num(self):self.guess_range = self._random_range# 产生随机数self.guess_num = random.randint(1, self.guess_range)self.init_range()def initUi(self):# 提示数值范围self.label.setText('数值的范围是:{}-{}'.format(self.left, self.right))# 按下按钮一,运行 self.guess 函数self.pushButton.clicked.connect(self.guess)# 按下按钮二,运行 quit 函数self.pushButton_2.clicked.connect(QApplication.instance().quit)# 按下按钮三,运行 self.reset 函数self.pushButton_3.clicked.connect(self.reset)def guess(self):# text 接受文本框中的文本text = self.lineEdit.text()# 异常处理# 可处理数值型字符串,其他输入提示错误try:text = float(text)except:self.label.setText('     输入不合法')self.label_2.setText('数值的范围:{}-{}'.format(self.left, self.right))self.lineEdit.clear()text = ''# 文本不为空继续执行文件if text:num = math.floor(text)if self.guess_num == num:QMessageBox.question(self, '胜利', '恭喜你猜中了:{}'.format(self.guess_num), QMessageBox.StandardButton.Yes)self.reset()elif self.guess_num > num:if num > self.left:self.left = numself.label.setText('数值的范围:{}-{}'.format(self.left, self.right))self.label_2.setText('      猜小了')elif self.guess_num < num:if num < self.right:self.right = numself.label.setText('数值的范围:{}-{}'.format(self.left, self.right))self.label_2.setText('       猜大了')self.lineEdit.clear()def reset(self):# 重置游戏self.guess_range = Noneself.guess_num = Noneself.left = Noneself.right = Noneself.random_num()self.label.setText('')self.label_2.setText('')self.initUi()def keyPressEvent(self, e):# 设置快捷键if e.key() == Qt.Key.Key_Return:self.guess()elif e.key() == Qt.Key.Key_Escape:QApplication.instance().quit()elif e.key() == Qt.Key.Key_R:self.reset()if __name__ == '__main__':app = QApplication(sys.argv)myWin = MyMainWindow()myWin.show()sys.exit(app.exec())
# sample.py
from PyQt6 import QtCore, QtWidgetsclass Ui_Form(object):def setupUi(self, Form):Form.setObjectName("Form")Form.resize(504, 551)self.layoutWidget = QtWidgets.QWidget(Form)self.layoutWidget.setGeometry(QtCore.QRect(170, 200, 137, 151))self.layoutWidget.setObjectName("layoutWidget")self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.layoutWidget)self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)self.verticalLayout_2.setObjectName("verticalLayout_2")self.verticalLayout = QtWidgets.QVBoxLayout()self.verticalLayout.setObjectName("verticalLayout")self.lineEdit = QtWidgets.QLineEdit(self.layoutWidget)self.lineEdit.setObjectName("lineEdit")self.verticalLayout.addWidget(self.lineEdit)self.label = QtWidgets.QLabel(self.layoutWidget)self.label.setText("")self.label.setObjectName("label")self.verticalLayout.addWidget(self.label)self.label_2 = QtWidgets.QLabel(self.layoutWidget)self.label_2.setText("")self.label_2.setObjectName("label_2")self.verticalLayout.addWidget(self.label_2)self.pushButton = QtWidgets.QPushButton(self.layoutWidget)self.pushButton.setObjectName("pushButton")self.verticalLayout.addWidget(self.pushButton)self.pushButton_2 = QtWidgets.QPushButton(self.layoutWidget)self.pushButton_2.setObjectName("pushButton_2")self.verticalLayout.addWidget(self.pushButton_2)self.verticalLayout_2.addLayout(self.verticalLayout)self.pushButton_3 = QtWidgets.QPushButton(self.layoutWidget)self.pushButton_3.setObjectName("pushButton_3")self.verticalLayout_2.addWidget(self.pushButton_3)self.label_3 = QtWidgets.QLabel(Form)self.label_3.setGeometry(QtCore.QRect(170, 60, 161, 16))self.label_3.setObjectName("label_3")self.retranslateUi(Form)QtCore.QMetaObject.connectSlotsByName(Form)def retranslateUi(self, Form):_translate = QtCore.QCoreApplication.translateForm.setWindowTitle(_translate("Form", "Form"))self.pushButton.setText(_translate("Form", "确认"))self.pushButton_2.setText(_translate("Form", "退出游戏"))self.pushButton_3.setText(_translate("Form", "重新开始"))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/791789.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI 在医疗保健领域的应用:技术、趋势和前景

人工智能&#xff08;AI&#xff09;在医疗保健领域的应用已经成为引人瞩目的发展方向&#xff0c;其在医学影像分析、疾病诊断和个性化治疗等方面展现出了巨大潜力。本文将深入探讨这些技术应用和未来的发展趋势。 医学影像分析 医学影像分析是AI在医疗领域中应用最广泛的领…

Redis 缓存雪崩、穿透、击穿、预热

在实际工程中&#xff0c;Redis 缓存问题常伴随高并发场景出现。例如&#xff0c;电商大促、活动报名、突发新闻时&#xff0c;由于缓存失效导致大量请求访问数据库&#xff0c;导致雪崩、击穿、穿透等问题。因此&#xff0c;新系统上线前需预热缓存&#xff0c;以应对高并发&a…

文献阅读:将条形码神经解剖学与空间转录分析相结合,可以识别投射神经元相关基因

文献介绍 「文献题目」 Integrating barcoded neuroanatomy with spatial transcriptional profiling enables identification of gene correlates of projections 「研究团队」 Anthony M. Zador&#xff08;美国冷泉港实验室&#xff09; 「发表时间」 2021-05-10 「发表期…

# #一眼就解密

BUUCTF #一眼就解密 1 下面的字符串解密后便能获得flag&#xff1a;ZmxhZ3tUSEVfRkxBR19PRl9USElTX1NUUklOR30 注意&#xff1a;得到的 flag 请包上 flag{} 提交 flag{THE_FLAG_OF_THIS_STRING}

MPLS-基础、LSR、LSP、标签、体系结构

MPLS技术 MPLS基础 MPLS&#xff1a;转发数据时&#xff0c;只在网络边缘分析IP报文头&#xff0c;不在每一跳都分析&#xff0c;节约了转发时间。 MPLS&#xff1a;Multiprotocol Label Switching&#xff0c;多协议标签交换骨干网技术。主要应用&#xff1a;VPN、流量工程…

Golang学习系列1-pprof性能调优

1. pprof 简述 一位亦师亦友的话让我记忆犹新&#xff0c;他说“学习一个新事务&#xff0c;应该从三个方面入手what,why,how;且三者的重要程度应该是递减”。所以在本文的第一部分先叙述下pprof的what & why。 1.1 What&#xff1f; pprof是golang自身提供的一种性能分…

【C++入门】初识C++

&#x1f49e;&#x1f49e; 前言 hello hello~ &#xff0c;这里是大耳朵土土垚~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f4a5;个人主页&#x…

稀疏矩阵的三元组表表示法及其转置

1. 什么是稀疏矩阵 稀疏矩阵是指矩阵中大多数元素为零的矩阵。 从直观上讲&#xff0c;当元素个数低于总元素的30%时&#xff0c;这样的矩阵被称为稀疏矩阵。 由于该种矩阵的特点&#xff0c;我们在存储这种矩阵时&#xff0c;如果直接采用二维数组&#xff0c;就会十分浪费…

开启 Keep-Alive 可能会导致http 请求偶发失败

大家好&#xff0c;我是蓝胖子&#xff0c;说起提高http的传输效率&#xff0c;很多人会开启http的Keep-Alive选项&#xff0c;这会http请求能够复用tcp连接&#xff0c;节省了握手的开销。但开启Keep-Alive真的没有问题吗&#xff1f;我们来细细分析下。 最大空闲时间造成请求…

C++Date类的实现

目录 前言&#xff1a; 1.显示日期 2.构造函数与获取某年某月的日期的函数 3.日期比较 4.日期加减天数 5.日期减日期 6.前置后置与-- 7.完整代码 8.测试 总结&#xff1a; 感谢支持&#xff01; 前言&#xff1a; 结合了前面的内容的学习&#xff0c;本篇来对之前的…

基于php医院预约挂号系统

摘 要 随着信息时代的来临&#xff0c;过去的管理方式缺点逐渐暴露&#xff0c;对过去的医院预约挂号管理方式的缺点进行分析&#xff0c;采取计算机方式构建医院预约挂号系统。本文通过阅读相关文献&#xff0c;研究国内外相关技术&#xff0c;开发并设计一款医院预约挂号系统…

语义分割交互式智能标注工具 | 澳鹏数据标注平台

随着人工智能应用的大规模落地&#xff0c;数据标注市场在高速增长的同时&#xff0c;也面临着标注成本的挑战。据IDC报告显示&#xff1a;数据标注在AI应用开发过程中所耗费的时间占到了25%&#xff0c;部分医学类应用一条数据的标注成本甚至高达20元。数据精度的高要求、强人…

【Flink技术原理构造及特性】

1、Flink简介 Flink是一个批处理和流处理结合的统一计算框架&#xff0c;其核心是一个提供了数据分发以及并行化计算的流数据处理引擎。它的最大亮点是流处理&#xff0c;是业界最顶级的开源流处理引擎。 Flink最适合的应用场景是低时延的数据处理&#xff08;Data Processin…

爬虫实战三、PyCharm搭建Scrapy开发调试环境

#一、环境准备 Python开发环境以及Scrapy框架安装&#xff0c;参考&#xff1a;爬虫实战一、Scrapy开发环境&#xff08;Win10Anaconda&#xff09;搭建 PyCharm安装和破解&#xff0c;参考&#xff1a;爬虫实战二、2019年PyCharm安装&#xff08;激活到2100年&#xff09; …

音视频过滤器实战--音频混音

1、添加并初始化音频输入、输出流 2、打开输入、输出音频文件 3、添加音频帧数据&#xff0c;然后循环获取输出的音频帧&#xff0c;将音频数据写文件保存 4、代码实例 audiomixer.h #ifndef AUDIOMIXER_H #define AUDIOMIXER_H#include <map> #include <mutex&g…

0基础如何进入IT行业?

0基础如何进入IT行业&#xff1f; 简介&#xff1a;对于没有任何相关背景知识的人来说&#xff0c;如何才能成功进入IT行业&#xff1f;是否有一些特定的方法或技巧可以帮助他们实现这一目标&#xff1f;我不知道&#xff0c;我的行业算不算是IT&#xff0c;或者最多是半个IT行…

重磅!openGauss6.0创新版本,带着新特性正式发布了!

&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&#x1f61c;&#x1f61c; 中国DBA联盟(ACD…

Tokio强大的Rust异步框架

一、简介 异步是现在编写高性能应用的核心要素之一&#xff0c;很多语言都已经纷纷加入异步的特效。C#应该是最先做出响应的语言。连微软这位软件大佬都非常重视异步&#xff0c;可见异步编程重要性。 在Rust中同样支持异步编程&#xff0c;只不过一般我们不会使用Rust官方&a…

从“量子”到分子:探索计算的无限可能 | 综述荐读

在2023年年末&#xff0c;两篇划时代的研究报告在《科学》&#xff08;Science&#xff09;杂志上引发了广泛关注。这两篇论文分别来自两个研究小组&#xff0c;它们共同揭示了单氟化钙分子间相互作用的研究成果&#xff0c;成功地在这些分子间创造出了分子量子比特。这一成就不…

算法练习—day1

title: 算法练习—day1 date: 2024-04-03 21:49:55 tags: 算法 categories:LeetCode typora-root-url: 算法练习—day1 网址&#xff1a;https://red568.github.io 704. 二分查找 题目&#xff1a; 题目分析&#xff1a; 左右指针分别为[left,right]&#xff0c;每次都取中…