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 " ...
随机推荐
- 转:Gulp的目标是取代Grunt
原文来自于:http://www.infoq.com/cn/news/2014/02/gulp Fractal公司积极参与了数个流行Node.js模块的开发,它最近发布了一个新的构建系统gulp,希望 ...
- C51汇编语言完整源码
单片机最小系统,两位LED数码管由串口输出接两个164驱动,Lout,Rout为左右声道输出,SET, ALT0, ALT1为三个按键,也可自己在开始的I/O定义改成你想用的I/O口:12M晶振,若 ...
- 为什么设计模式在C++社区没有Java社区流行?
我们发现设计模式在Java社区很流行,但是在C++社区却没有那么被关注,甚至有点被排斥,究竟是什么原因造成这个差异的呢? 昨天和同事讨论这个问题,最后得出几点原因: (1)C++内存需要 ...
- 模糊集合和隶属度函数--AForge.NET框架的使用(一)
原文:模糊集合和隶属度函数--AForge.NET框架的使用(一) 什么是AForge.NET? AForge.NET是一个为开发人员和研究人员开发的框架,它可以用于计算机视觉,遗传算法,图像处理,神 ...
- JavaScript 比较操作符,严格比较===
JavaScript 有两种比较方式:严格比较运算符和转换类型比较运算符.对于严格比较运算符(三个 =)来说,为ture的情况是仅当两个操作数拥有相同的类型,而对于被广泛使用的比较运算符(两个 =)来 ...
- rsyslog imfile 模块说明
stop() { echo -n $"Shutting down system logger: " killproc -p "${PIDFILE}" -d 30 ...
- java与数据结构(6)---java实现链栈
栈之链式存储结构链栈 链栈 栈的链式存储结构成为链栈.链栈是没有头结点,头结点就是栈顶指针top. 代码结构 package list; public interface Stackable;公共接口 ...
- 消除JavaScript闭包的一般方法
JavaScript 的闭包是一个其主动发展的特性, 也是一个被动发展的特性. 也就是说, 一方面, JS 有了闭包能更好解决一些问题. 另一方面, JS 为了解决某些问题, 而不得不使用闭包勉强来解 ...
- 详解Java反射各种应用
Java除了给我们提供在编译期得到类的各种信息之外,还通过反射让我们可以在运行期间得到类的各种信息.通过反射获取类的信息,得到类的信息之后,就可以获取以下相关内容: Class对象 构造器 变量 方法 ...
- js让菜单栏一直悬浮在顶部,经典代码
js让菜单栏一直悬浮在顶部,经典代码 很简单,你只需要把下面代码放到js中:$(function(){ //获取要定位元素距离浏览器顶部的距离 var na ...