电脑随机生成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. d3可视化实战04:事件绑定机制

    首先说明,d3支持所有的JS事件——甚至其他代码的自定义事件.这里有一个列表,The MDN Event Reference, 包含了几乎所有浏览器创建的事件类型.大家有需要可以去查看. D3的事件绑 ...

  2. 转:Windows下载Android源码

    原文来自于:http://blog.csdn.net/hlf48641715/article/details/7188450 下载msysgit,安装 官方下载:http://code.google. ...

  3. IIS Server Farms集群负载

    序言 随着公司业务的发展,后台业务就变的越来越多,然而服务器的故障又像月经一样,时不时的汹涌而至,让我们防不胜防.那么后台的高可用,以及服务器的处理能力就要做一个横向扩展的方案,以使后台业务持续的稳定 ...

  4. Iterator pattern(c++实现)

    概述: 在现在的电视机中,我们使用[后一个]和[前一个]按钮可以很方便的换台,当按下[后一个]按钮时,将切换到下一个预置的频道.想象一下在陌生的城市中的旅店中看电视.当改变频道时,重要的不是几频道,而 ...

  5. HDOJ 1326 Box of Bricks(简单题)

    Problem Description Little Bob likes playing with his box of bricks. He puts the bricks one upon ano ...

  6. 算法导论(第三版)Problems2(归并插入排序、数列逆序计算)

    讨论内容不说明,仅提供相应的程序. 2.1:归并插入排序θ(nlgn) void mergeInsertionSort(int a[], int l, int r, int k) { int m; & ...

  7. JS浏览器对象-window对象

    代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title ...

  8. vue + vuex 表单处理

    使用场景:在一个表单中,各项数据提交后需要重置表单中各<input>元素的值为空. 组件中关联: <template> <el-form ref="form&q ...

  9. hadoop权威指南 chapter2 MapReduce

    MapReduce MapReduce is a programming model for data processing. The model is simple, yet not too sim ...

  10. Dynamics CRM记录页面上隐藏子网格“+”标识

    前段时间微软发布了Dynamics 365,这是Dynamics产品的又一次大的变动,期待新的版本能够更好的满足客户的需求,同时提供更多的可定制化的内容. 近期做Dynamics CRM项目遇到很多审 ...