电脑随机生成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猜数游戏的更多相关文章

  1. 【BZOJ 1594】 [Usaco2008 Jan]猜数游戏 (二分+并查集)

    1594: [Usaco2008 Jan]猜数游戏 Description 为了提高自己低得可怜的智商,奶牛们设计了一个新的猜数游戏,来锻炼她们的逻辑推理能力. 游戏开始前,一头指定的奶牛会在牛棚后面 ...

  2. usaco 猜数游戏

    Description 为了提高智商,锻炼思维能力,奶牛设计了一个猜数游戏.游戏开始前,贝西会在牛棚后面摆上N个数字.所有数字排成一条直线,按次序从1到N编号.每个数字在1到10^9之间,没有两个数字 ...

  3. (一)Python之猜数游戏

    猜数游戏由简如深的编码学习过程: 3次机会: print('------------------我爱鱼C工作室------------------')count=0while count < 3 ...

  4. 猜数游戏-flag的运用

    package my;import java.util.Scanner;public class MyJava {        public static void main(String[] ar ...

  5. Java课程设计——猜数游戏(201521123111 陈伟泽)

    Java课程设计--猜数游戏(201521123111 陈伟泽) 1.团队课程设计博客链接 博客作业--猜数游戏 2.个人负责模块或任务说明 Answer:一些基础界面的构造,排行榜的构造,用文件录入 ...

  6. JAVA课程设计 猜数游戏 团队

    团队名称,成员介绍 名称: 猜数游戏 成员: 网络1514 201521123086 周颖强 网络1514 201521123087蒋勃超 项目git地址 git.oschina.net/jbc113 ...

  7. BZOJ 2222: [Cqoi2006]猜数游戏【神奇的做法,傻逼题,猜结论】

    2222: [Cqoi2006]猜数游戏 Time Limit: 20 Sec  Memory Limit: 259 MBSubmit: 604  Solved: 260[Submit][Status ...

  8. 从scratch到python——猜数游戏

    ` 之前讲解了从scratch到python,基于python turtle库的实现,讲解了用scratch和python turtle绘图的实现,以及让小猫动起来和当角色被单击的例子. 本节课讲继续 ...

  9. VBS猜数游戏

    VBS 猜数游戏 2018-11-09  21:19:11 by xutao msgbox "The Swami" ,,"Game" msgbox " ...

随机推荐

  1. C#控制生成图片的大小

    private void button1_Click(object sender, EventArgs e) { using (Bitmap bitmap = new Bitmap("d:\ ...

  2. 自解压的方式创建VC++程序的打包

    Walkthrough: Deploying a Visual C++ Application By Using the Visual C++ Redistributable Package Visu ...

  3. Graphviz-Gdot语言学习

    GVEdit这个绘图软件呢我也是刚接触的,感觉画起图来还是很爽的...尤其很熟悉c++后很容易上手这门dot语言. 先看一下十分清新的编程界面: 没有天下最邪恶的语法加亮,没有缩进行...这又算什么! ...

  4. CH Round #54 - Streaming #5 (NOIP模拟赛Day1)

    A.珠 题目:http://ch.ezoj.tk/contest/CH%20Round%20%2354%20-%20Streaming%20%235%20(NOIP模拟赛Day1)/珠 题解:sb题, ...

  5. encodeURI和encodeURIComponent的比较

    encodeURI和encodeURIComponet函数都是javascript中用来对URI进行编码,将相关参数转换成UTF-8编码格式的数据.URI在进行定位跳转时,参数里面的中文.日文等非AS ...

  6. HDU_2136——最大质因数,素数筛选法

    Problem Description Everybody knows any number can be combined by the prime number. Now, your task i ...

  7. solr安装

    Windows solr(tomcat) 1.1. 安装步骤 1.1.1准备工作 1. 服务器:apache-tomcat-7.0.40压缩版,http://localhost:8080/安装是否成功 ...

  8. 解决 'utf-8' codec can't decode byte 0x8b in position 1: invalid start byte

    "Accept-Encoding": "gzip, deflate", 这条信息代表本地可以接收压缩格式的数据,而服务器在处理时就将大文件压缩再发回客户端,IE ...

  9. CentOS启动MySQL服务失败

    :: mysqld_safe Starting mysqld daemon with databases from /data/mysql :: [Warning] Can't create test ...

  10. IE6下的怪异解析知识点补充

    转载请注明出处:HTMl5自由者