pyqt5猜数游戏
电脑随机生成4个互不相等的数,你猜。
1:你猜的数和正确答案相比,位置正确的个数
2:你猜的数虽然在正确答案中,但位置不对,它的个数。
代码如下:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
import time
import sys
from random import randint
from PyQt5.QtWidgets import QApplication,QWidget,QTableWidgetItem
from guess import Ui_Form class myform(QWidget,Ui_Form):
def __init__(self):
super().__init__()
self.setupUi(self) self.randin() #调用函数生成随机数,存入数组
self.i=0 #计数器,计算是否满10次 #各按钮点击事件
self.btn0.clicked.connect(self.showNumber0)
self.btn1.clicked.connect(self.showNumber1)
self.btn2.clicked.connect(self.showNumber2)
self.btn3.clicked.connect(self.showNumber3)
self.btn4.clicked.connect(self.showNumber4)
self.btn5.clicked.connect(self.showNumber5)
self.btn6.clicked.connect(self.showNumber6)
self.btn7.clicked.connect(self.showNumber7)
self.btn8.clicked.connect(self.showNumber8)
self.btn9.clicked.connect(self.showNumber9) self.btn_reset.clicked.connect(self.reset)
self.btn_ok.clicked.connect(self.ok)
self.play.clicked.connect(self.again) #生成4个随机数存入列表a中
def randin(self):
a=[]
while(len(a)!=4):
x=randint(0,9)
if x not in a:
a.append(x)
self.a=a #点击数字按钮,显示相应数字
def showNumber0(self):
self.btn0.setEnabled(False)
if self.label1.text()=='':
self.label1.setText('')
elif self.label2.text()=='':
self.label2.setText('')
elif self.label3.text()=='':
self.label3.setText('')
else:
self.label4.setText('') def showNumber1(self):
self.btn1.setEnabled(False)
if self.label1.text()=='':
self.label1.setText('')
elif self.label2.text()=='':
self.label2.setText('')
elif self.label3.text()=='':
self.label3.setText('')
else:
self.label4.setText('') def showNumber2(self):
self.btn2.setEnabled(False)
if self.label1.text()=='':
self.label1.setText('')
elif self.label2.text()=='':
self.label2.setText('')
elif self.label3.text()=='':
self.label3.setText('')
else:
self.label4.setText('') def showNumber3(self):
self.btn3.setEnabled(False)
if self.label1.text()=='':
self.label1.setText('')
elif self.label2.text()=='':
self.label2.setText('')
elif self.label3.text()=='':
self.label3.setText('')
else:
self.label4.setText('') def showNumber4(self):
self.btn4.setEnabled(False)
if self.label1.text()=='':
self.label1.setText('')
elif self.label2.text()=='':
self.label2.setText('')
elif self.label3.text()=='':
self.label3.setText('')
else:
self.label4.setText('') def showNumber5(self):
self.btn5.setEnabled(False)
if self.label1.text()=='':
self.label1.setText('')
elif self.label2.text()=='':
self.label2.setText('')
elif self.label3.text()=='':
self.label3.setText('')
else:
self.label4.setText('') def showNumber6(self):
self.btn6.setEnabled(False)
if self.label1.text()=='':
self.label1.setText('')
elif self.label2.text()=='':
self.label2.setText('')
elif self.label3.text()=='':
self.label3.setText('')
else:
self.label4.setText('') def showNumber7(self):
self.btn7.setEnabled(False)
if self.label1.text()=='':
self.label1.setText('')
elif self.label2.text()=='':
self.label2.setText('')
elif self.label3.text()=='':
self.label3.setText('')
else:
self.label4.setText('') def showNumber8(self):
self.btn8.setEnabled(False)
if self.label1.text()=='':
self.label1.setText('')
elif self.label2.text()=='':
self.label2.setText('')
elif self.label3.text()=='':
self.label3.setText('')
else:
self.label4.setText('') def showNumber9(self):
self.btn9.setEnabled(False)
if self.label1.text()=='':
self.label1.setText('')
elif self.label2.text()=='':
self.label2.setText('')
elif self.label3.text()=='':
self.label3.setText('')
else:
self.label4.setText('') #重置按钮
def reset(self):
self.label1.setText('')
self.label2.setText('')
self.label3.setText('')
self.label4.setText('') self.btn0.setEnabled(True)
self.btn1.setEnabled(True)
self.btn2.setEnabled(True)
self.btn3.setEnabled(True)
self.btn4.setEnabled(True)
self.btn5.setEnabled(True)
self.btn6.setEnabled(True)
self.btn7.setEnabled(True)
self.btn8.setEnabled(True)
self.btn9.setEnabled(True) #显示正确答案
def showNub(self):
self.label5.setText(str(self.a[0]))
self.label6.setText(str(self.a[1]))
self.label7.setText(str(self.a[2]))
self.label8.setText(str(self.a[3]))
self.btn_ok.setEnabled(False) #再来一遍(清空各种内容)
def again(self):
self.reset()
self.label5.setText('')
self.label6.setText('')
self.label7.setText('')
self.label8.setText('')
self.table.clearContents()
self.btn_ok.setEnabled(True)
self.label.setText('再来一遍')
self.i=0 #确定按钮,比较你猜的数和随机生成的数
def ok(self): #把你猜的数存入列表b中
b=[int(self.label1.text()),int(self.label2.text()),int(self.label3.text()),int(self.label4.text())] #把你猜的数显示在表格中。self.i表示第几行,
x=QTableWidgetItem(str(b))
self.table.setItem(self.i,0,x) #设置单元格中的内容 #判断两个列表
k1=0 #位置正确,计算个数
k2=0 #数对位置不对,计算个数
for j in range(4):
if b[j]==self.a[j]:
k1+=1
if b[j] in self.a and b[j]!=self.a[j]:
k2+=1 #把计算结果写显示在表格内
x1=QTableWidgetItem(str(k1))
self.table.setItem(self.i,1,x1) x2=QTableWidgetItem(str(k2))
self.table.setItem(self.i,2,x2) if b==self.a:
self.showNub()
self.label.setText('恭喜过关') #满10次未猜对显示正确答案
if self.i==9 and b!=self.a:
self.showNub()
self.label.setText('闯关失败') self.i+=1
self.reset() if __name__=='__main__':
app=QApplication(sys.argv)
w=myform()
w.show()
sys.exit(app.exec_())
pyqt5猜数游戏的更多相关文章
- 【BZOJ 1594】 [Usaco2008 Jan]猜数游戏 (二分+并查集)
1594: [Usaco2008 Jan]猜数游戏 Description 为了提高自己低得可怜的智商,奶牛们设计了一个新的猜数游戏,来锻炼她们的逻辑推理能力. 游戏开始前,一头指定的奶牛会在牛棚后面 ...
- usaco 猜数游戏
Description 为了提高智商,锻炼思维能力,奶牛设计了一个猜数游戏.游戏开始前,贝西会在牛棚后面摆上N个数字.所有数字排成一条直线,按次序从1到N编号.每个数字在1到10^9之间,没有两个数字 ...
- (一)Python之猜数游戏
猜数游戏由简如深的编码学习过程: 3次机会: print('------------------我爱鱼C工作室------------------')count=0while count < 3 ...
- 猜数游戏-flag的运用
package my;import java.util.Scanner;public class MyJava { public static void main(String[] ar ...
- Java课程设计——猜数游戏(201521123111 陈伟泽)
Java课程设计--猜数游戏(201521123111 陈伟泽) 1.团队课程设计博客链接 博客作业--猜数游戏 2.个人负责模块或任务说明 Answer:一些基础界面的构造,排行榜的构造,用文件录入 ...
- JAVA课程设计 猜数游戏 团队
团队名称,成员介绍 名称: 猜数游戏 成员: 网络1514 201521123086 周颖强 网络1514 201521123087蒋勃超 项目git地址 git.oschina.net/jbc113 ...
- BZOJ 2222: [Cqoi2006]猜数游戏【神奇的做法,傻逼题,猜结论】
2222: [Cqoi2006]猜数游戏 Time Limit: 20 Sec Memory Limit: 259 MBSubmit: 604 Solved: 260[Submit][Status ...
- 从scratch到python——猜数游戏
` 之前讲解了从scratch到python,基于python turtle库的实现,讲解了用scratch和python turtle绘图的实现,以及让小猫动起来和当角色被单击的例子. 本节课讲继续 ...
- VBS猜数游戏
VBS 猜数游戏 2018-11-09 21:19:11 by xutao msgbox "The Swami" ,,"Game" msgbox " ...
随机推荐
- java 批量插入10万条数据
for (int i = 0; i < 100000; i++) { dbHelper.insert("INSERT aaa(name) Values ('1')"); } ...
- Android 自定义回调
刚开始接触的时候,觉得 回调 是一个很难理解的概念,之后就不停的上网查找回调的定义:(当你想要把具体的操作,让具体的人来完成,自己定义一个接口就好.使用的时候用接口,具体的人来实现你的接口,也就是实现 ...
- C++虚函数表解析(转)
C++中的虚函数的作用主要是实现了多态的机制.关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数.这种技术可以让父类的指针有“多种形态”,这是一种泛型技术 ...
- (摘)SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory
Linux下安装好Oracle 10g后运行sqlplus出现故障如下:[oracle@localhost oracle]$ ./sqlplusError 6 initializing SQL*Plu ...
- 用GOACCESS分析NGINX日志
参考URL: http://4b3r.com/goaccess-analyze-nginx-access-log/64/ http://jesuspan.sinaapp.com/crontab%E6% ...
- LeetCode _ Gas Station
There are N gas stations along a circular route, where the amount of gas at station i is gas[i]. You ...
- android项目中各个文件的介绍
src:java源码gen:自动生成 R.javaandroid.jarandroid Dependenvies 支持jar包assets:资产目录 小的数据库 网页 bin:编译生成的临时文件lib ...
- HDU_2029——回文串的判断
Problem Description “回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串.请写一个程序判断读入的字符串是否是“回文”. Input 输入包 ...
- INTELLIJ IDEA集成CHECKSTYLE(转)
转自:http://www.cnblogs.com/kiwi-wang/p/4166410.html 本文中使用intelliJ IDEA版本为14.0.1,其他版本差异不大,可同样安装. 下载安装C ...
- BootStrap——模态框
模态框(Modal)是BootStrap中很棒的一个插件.可以去BootStrap菜鸟驿站里面看看. 模态框(Modal)是覆盖在父窗体上的子窗体.通常,目的是显示来自一个单独的源的内容,可以在不离开 ...