废话少说先上图。
重置游戏,生成新的随机数
直接上代码
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QIcon,QPixmap
import sys, random, re
class Gameapp(QMainWindow):
count=0
num = random.randrange(1, 101)
def __init__(self):
super().__init__()
self.ma = QWidget()
self.ma.setGeometry(400, 300, 400, 300)
self.ma.resize(400, 300)
self.ma.setFixedSize(400, 300)
self.ma.setWindowTitle('猜数字游戏')
self.ma.setWindowIcon(QIcon('logo.png'))
self.creat_widgets()
self.config()
self.ma.show()
def creat_widgets(self):
self.Qmessage = QLabel('电脑随机出个1-100的数字,猜一猜', self.ma)
self.Lcom = QLabel('电脑:', self.ma)
self.Lcom.setGeometry(10, 50, 60, 30)
self.Luser = QLabel('猜测次数:', self.ma)
self.Luser.setGeometry(200, 50, 80, 30)
self.ComLcd = QLabel(self.ma)
self.ComLcd.setGeometry(60, 50, 168, 168)
self.UserLcd = QLCDNumber(self.ma)
self.UserLcd.setGeometry(280, 50, 70, 35)
self.Qmessage.setGeometry(10, 10, 300, 30)
self.Bguess = QPushButton('开始', self.ma)
self.Bguess.setGeometry(10, 230, 100, 45)
self.Bres = QPushButton('RES', self.ma)
self.Bres.setGeometry(120, 230, 45, 45)
self.Lresult = QLabel(self.ma)
self.Lresult.setGeometry(190, 230, 180, 30)
self.Enum = QLineEdit(self.ma)
self.Enum.setGeometry(10, 190, 100, 30)
def config(self):
self.Bguess.clicked.connect(self.validate)
self.Bres.clicked.connect(self.restart)
def show_pics(self,pic_index):
imgName=''
if pic_index=='1':
imgName='D:/spiders_python/猜数字小游戏/big.png'
elif pic_index=='2':
imgName='D:/spiders_python/猜数字小游戏/small.png'
elif pic_index == '3':
imgName = 'D:/spiders_python/猜数字小游戏/yes.png'
jpg = QPixmap(imgName)
self.ComLcd.setPixmap(jpg)
def show_msg(self,num1,num2):
msg = ()
usernum,comnum=num1,num2
if usernum > comnum:
msg = ('太大', '1')
# print(msg)
self.show_pics(msg[1])
return msg
elif usernum < comnum:
msg = ('太小', '2')
# print(msg)
self.show_pics(msg[1])
return msg
elif usernum == comnum:
msg = ('太棒了', '3')
# print(msg)
self.show_pics(msg[1])
return msg
def restart(self):
self.count=0
self.num=random.randrange(1,101)
def validate(self):
self.count+=1
if not re.match('\d+', self.Enum.text()):#如果是非数字
QMessageBox.warning(self.ma, '我只能呵呵了', '输入数字,本程序会自动清楚非数字字符')
usernum = int(''.join(list(filter(str.isdigit, self.Enum.text()))).strip())
comnum=self.num
self.Enum.setText(str(usernum))
self.Lresult.setText('输入的:{}'.format(str(usernum)))
if usernum>100:
QMessageBox.warning(self.ma, '啊偶', '请输入1-100之间的数字')
else:
msg=self.show_msg(usernum,comnum)
self.Lresult.setText('输入的:{},{}'.format(str(usernum), msg[0]))
self.UserLcd.display(str(self.count))
if int(self.count) > 10:
QMessageBox.information(self.ma, '提示', '您需要休息一下了')
if __name__ == '__main__':
s = QApplication(sys.argv)
ui = Gameapp()
sys.exit(s.exec_())
有兴趣的可以运行玩一下。