基于PyQt5制作一个猜数字小游戏

开始之前,直接来看一下实现后的效果。想自己实现或者需要源码的童鞋直接进场...

将PyQt5的相关模块直接导入即可。

from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *

为了照顾一下新关注的童鞋,这里介绍一下PyQt5的安装,还是采用pip的安装方式。

pip install PyQt5

将准备好的样式导入到代码块中。

# 主题样式模块引用
from QCandyUi import CandyWindow

文件和随机数相关的模块导入进来。

import sys
import random

界面编写函数 init_ui,初始化UI界面及页面布局代码块。

 def init_ui(self):
        self.setWindowTitle('猜数字游戏  公众号:[Python 集中营]')
        self.setWindowIcon(QIcon('数字.ico'))

        self.setFixedSize(500, 350)

        self.msg = QLabel()
        self.msg.setText('猜数字游戏')
        self.msg.setStyleSheet(
            'font-size:50px;text-align:center;font-weight:bold;font-family:"Microsoft JhengHei";')
        self.msg.setAlignment(Qt.AlignCenter)

        self.in_num = QLineEdit()
        self.in_num.setPlaceholderText('请输入目标数字')
        self.in_num.setAlignment(Qt.AlignCenter)

        self.in_num_btn = QPushButton()
        self.in_num_btn.setText('就是它了')
        self.in_num_btn.clicked.connect(self.in_num_btn_click)

        self.tar_num_btn = QPushButton()
        self.tar_num_btn.setText('显示数字')
        self.tar_num_btn.clicked.connect(self.tar_num_btn_click)

        self.tar_num = QLabel()
        self.tar_num.setText('#####')
        self.tar_num.setFixedWidth(50)

        self.generate_num_btn = QPushButton()
        self.generate_num_btn.setText('  生成目标数字  ')
        self.generate_num_btn.clicked.connect(self.generate_num_btn_click)

        hbox = QHBoxLayout()
        hbox.addWidget(self.tar_num)
        hbox.addWidget(self.tar_num_btn)
        hbox.addStretch(1)
        hbox.addWidget(self.generate_num_btn)

        vbox = QVBoxLayout()
        vbox.addStretch(1)
        vbox.addWidget(self.msg)
        vbox.addWidget(self.in_num)
        vbox.addWidget(self.in_num_btn)
        vbox.addStretch(1)
        vbox.addLayout(hbox)

        self.setLayout(vbox)

槽函数 generate_num_btn_click,用于生成猜数字游戏的目标数字。

 def generate_num_btn_click(self):
        tar_num = random.randint(1, 99)
        self.num = tar_num
        # 重置最大最小值
        self.max_num = 100  # 当前最大值
        self.min_num = 0  # 当前最小值

槽函数 tar_num_btn_click,用于显示或隐藏目标数字。

  def tar_num_btn_click(self):
        if self.num != 0 and self.tar_num_btn.text().strip() == '显示数字':
            self.tar_num.setText(str(self.num))
            self.tar_num_btn.setText('隐藏数字')
        elif self.tar_num_btn.text().strip() == '隐藏数字':
            self.tar_num.setText('#####')
            self.tar_num_btn.setText('显示数字')

槽函数 in_num_btn_click,用于处理猜数字实现的主要代码逻辑。

 def in_num_btn_click(self):
        try:
            in_num = int(self.in_num.text().strip())
            if in_num < self.min_num or in_num >= self.max_num:
                pass
            else:
                if self.num == 0:
                    self.msg.setText('没有目标数字')
                elif in_num == self.num:
                    self.msg.setText('恭喜你,猜对了')
                else:
                    if in_num < self.num:
                        self.msg.setText(str(in_num) + ' - ' + str(self.max_num))
                        self.min_num = in_num
                    elif in_num > self.num:
                        self.msg.setText(str(self.min_num) + ' - ' + str(in_num))
                        self.max_num = in_num
        except:
            self.msg.setText('请输入数字')

最后,通过调用主题模块的蓝色主题样式是整个App变得漂亮。

CandyWindow.createWindow(GuessNumber(), theme='blue', title='猜数字游戏  公众号:[Python 集中营]',
                                 ico_path='数字.ico')

完整代码

# -*- coding:utf-8 -*-
# @author Python 集中营
# @date 2022/2/10
# @file test1.py

# done

# GUI猜数字游戏

from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *

# 主题样式模块引用
from QCandyUi import CandyWindow

import sys
import random

class GuessNumber(QWidget):
    def __init__(self):
        super(GuessNumber, self).__init__()
        self.num = 0  # 目标数字
        self.max_num = 100  # 当前最大值
        self.min_num = 0  # 当前最小值
        self.init_ui()

    def init_ui(self):
        self.setWindowTitle('猜数字游戏  公众号:[Python 集中营]')
        self.setWindowIcon(QIcon('数字.ico'))

        self.setFixedSize(500, 350)

        self.msg = QLabel()
        self.msg.setText('猜数字游戏')
        self.msg.setStyleSheet(
            'font-size:50px;text-align:center;font-weight:bold;font-family:"Microsoft JhengHei";')
        self.msg.setAlignment(Qt.AlignCenter)

        self.in_num = QLineEdit()
        self.in_num.setPlaceholderText('请输入目标数字')
        self.in_num.setAlignment(Qt.AlignCenter)

        self.in_num_btn = QPushButton()
        self.in_num_btn.setText('就是它了')
        self.in_num_btn.clicked.connect(self.in_num_btn_click)

        self.tar_num_btn = QPushButton()
        self.tar_num_btn.setText('显示数字')
        self.tar_num_btn.clicked.connect(self.tar_num_btn_click)

        self.tar_num = QLabel()
        self.tar_num.setText('#####')
        self.tar_num.setFixedWidth(50)

        self.generate_num_btn = QPushButton()
        self.generate_num_btn.setText('  生成目标数字  ')
        self.generate_num_btn.clicked.connect(self.generate_num_btn_click)

        hbox = QHBoxLayout()
        hbox.addWidget(self.tar_num)
        hbox.addWidget(self.tar_num_btn)
        hbox.addStretch(1)
        hbox.addWidget(self.generate_num_btn)

        vbox = QVBoxLayout()
        vbox.addStretch(1)
        vbox.addWidget(self.msg)
        vbox.addWidget(self.in_num)
        vbox.addWidget(self.in_num_btn)
        vbox.addStretch(1)
        vbox.addLayout(hbox)

        self.setLayout(vbox)

    def generate_num_btn_click(self):
        tar_num = random.randint(1, 99)
        self.num = tar_num
        # 重置最大最小值
        self.max_num = 100  # 当前最大值
        self.min_num = 0  # 当前最小值

    def tar_num_btn_click(self):
        if self.num != 0 and self.tar_num_btn.text().strip() == '显示数字':
            self.tar_num.setText(str(self.num))
            self.tar_num_btn.setText('隐藏数字')
        elif self.tar_num_btn.text().strip() == '隐藏数字':
            self.tar_num.setText('#####')
            self.tar_num_btn.setText('显示数字')

    def in_num_btn_click(self):
        try:
            in_num = int(self.in_num.text().strip())
            if in_num < self.min_num or in_num >= self.max_num:
                pass
            else:
                if self.num == 0:
                    self.msg.setText('没有目标数字')
                elif in_num == self.num:
                    self.msg.setText('恭喜你,猜对了')
                else:
                    if in_num < self.num:
                        self.msg.setText(str(in_num) + ' - ' + str(self.max_num))
                        self.min_num = in_num
                    elif in_num > self.num:
                        self.msg.setText(str(self.min_num) + ' - ' + str(in_num))
                        self.max_num = in_num
        except:
            self.msg.setText('请输入数字')

if __name__ == '__main__':
    app = QApplication(sys.argv)
    w = CandyWindow.createWindow(GuessNumber(), theme='blue', title='猜数字游戏  公众号:[Python 集中营]',
                                 ico_path='数字.ico')
    w.show()
    sys.exit(app.exec_())

以上就是基于PyQt5制作一个猜数字小游戏的详细内容,更多关于PyQt5猜数字游戏的资料请关注我们其它相关文章!

(0)

相关推荐

  • python实现的简单猜数字游戏

    本文实例讲述了python实现的简单猜数字游戏.分享给大家供大家参考.具体如下: 给定一个1-99之间的数,让用户猜数字,当用户猜错时会提示用户猜的数字是过大还是过小,知道用户猜对数字为止,猜对数字用的次数越少成绩越好. import random n = random.randint(1, 99) guess = int(raw_input("Enter an integer from 1 to 99: ")) while n != "guess": print

  • python实现猜数字游戏

    说明: 本例改编自<Python编程快速上手>.例子很简单我就不多说了 直接上代码,给初学python练手用. 给你6次机会猜对一个预先生成好的1-20之间的整数.覆盖一下知识点: 条件语句 控制语句 random函数 读取输入 异常处理 代码: """ 猜数字 """ from random import * secretNumber = randint(1, 20) # print(secretNumber) print('猜一个

  • python编写猜数字小游戏

    本文实例为大家分享了python编写猜数字小游戏的具体代码,供大家参考,具体内容如下 import random secret = random.randint(1, 30) guess = 0 tries = 0 print("我叫丁丁,我有一个秘密数字!") print("数字从1到30,你只有6次机会!") while int(guess) != secret and tries < 6: print("你猜的数字是?") guess

  • Python实现猜数字小游戏

    Python初学者小游戏:猜数字 游戏逻辑:电脑随机生成一个数字,然后玩家猜数字,电脑提示猜的数字大了还是小了,供玩家缩小数字范围,达到既定次数后,玩家失败.若在次数内猜对,玩家获胜. 涉及知识点:random.randint() , print() , input() ( raw_input() ) 参考实现代码: #!/usr/bin/env python # encoding: utf-8 #使用print("",end=...)标准 from __future__ import

  • 基于python3 pyQt5 QtDesignner实现窗口化猜数字游戏功能

    描述:使用QtDesignner设计界面,pyQt5+python3实现主体方法制作的猜数字游戏. 游戏规则:先选择游戏等级:初级.中级.高级.魔鬼级,选择完游戏等级后点击"确定",然后后台会自动生成一个与游戏等级匹配的"神秘数字",游戏玩家在文本框内输入数字,再点击文本框旁边的"确定",即可比较玩家所猜数字是否就是"神秘数字". 游戏界面: 源代码: 代码1: guessNumberGame.py (界面代码) # -*-

  • python3实现猜数字游戏

    本文实例为大家分享了python3实现猜数字游戏的具体代码,供大家参考,具体内容如下 需求目标: 需求:猜数字游戏 1: 开始游戏产生一个1~100随机数 2: 用户输入,游戏根据输入值提示大或者小 3: 用户根据提示继续输入,知道猜中为止 4: 如果用户输入错误,程序可以处理异常. 代码如下: # coding=utf-8 import random num = random.randint(0, 100) while True: try: guess = int(input("Enter 1

  • Python实现简单猜数字游戏

    本文实例为大家分享了Python实现简单猜数字游戏的具体代码,供大家参考,具体内容如下 一.需求分析 编写一个猜数字游戏,游戏规则:计算机给出一个1-20的之间的随机数字,让玩家来猜猜它是几,计算机会告诉你每次猜出的数字或大或小,如在6次内猜到正确数字,即赢了. 二.编写思路 1.首先导入random随机模块 ,然后定义随机数的范围,然后定义次数. 2.使用while循环来判断是否符合随机数和输入数值的比较,并且设置次数递减 3.使用 isdigit 函数来完成判断玩家数据类型,避免报错. 4.

  • 基于PyQt5制作一个猜数字小游戏

    开始之前,直接来看一下实现后的效果.想自己实现或者需要源码的童鞋直接进场... 将PyQt5的相关模块直接导入即可. from PyQt5.QtGui import * from PyQt5.QtCore import * from PyQt5.QtWidgets import * 为了照顾一下新关注的童鞋,这里介绍一下PyQt5的安装,还是采用pip的安装方式. pip install PyQt5 将准备好的样式导入到代码块中. # 主题样式模块引用 from QCandyUi import

  • Java编写猜数字小游戏

    本文实例讲述了java实现的简单猜数字游戏代码.分享给大家供大家参考. 以下是Java语言写的一个猜数字小游戏引用片段: import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; //主函数 public class calssOne { public static void main(String[] args) { //shit+Ctrl+o int result; //随机产生一个

  • java实现猜数字小游戏(Swing版)

    2008年的时候,在学习Java how to program第五版的时候,写过一个猜数字小游戏,是用Applet写的: 现在,我要用Swing重写这个小游戏,同时,加入一些新功能,如:背景颜色(红色表示偏高,蓝色表示偏低).弹框.字体控制.布局管理器的使用. 运行截屏: 代码如下: //Guess a number between 1 and 1000 //Java how to program, 10/e, Exercise 12.14 //by pandenghuang@163.com /

  • Java如何获取一个随机数 Java猜数字小游戏

    本文实例为大家分享了Java获取一个随机数(及猜数字小游戏)的具体代码,供大家参考,具体内容如下 Math类概述: 该类Math包含用于执行基本数值运算的方法,例如基本指数,对数,平方根和三角函数. Math所有类都是静态的.可以直接类名.调用. 获取随机数的办法: 代码如下 public class SuiJi { public static void main(String[] args) { double d = Math.random(); System.out.println(d);

  • Java实现猜数字小游戏详解流程

    猜数字游戏 系统自动生成一个随机整数(1-100), 然后由用户输入一个猜测的数字. 如果输入的数字比该随机数小, 提示 "低 了", 如果输入的数字比该随机数大, 提示 "高了" , 如果输入的数字和随机数相等, 则提示 "猜对了 整理思路 1. 我们玩游戏的时候,都有开始游戏和退出游戏 2. 其次,它要生成一个随机数,如果是固定值,哪有什么意思? 3. 再者,我们要输入数字,根据它反馈的情况进行判断和猜测数字的大小 4. 但是我们不可能说一次就判断成功

  • C语言实现猜数字小游戏的示例代码

    目录 一.猜数字小游戏的要求 二.猜数字小游戏实现的过程 2.1项目创建 2.2头文件内容 2.3源文件内容 三.猜数字小游戏调试结果如下 四.基于猜数字小游戏的总结 五.完整代码 一.猜数字小游戏的要求 猜数字小游戏是我们小时候喜欢我们一个经典小游戏,在本文中,猜数字小游戏主要的功能如下所示 1.登入猜数字小游戏系统,显示小时欢迎界面. 2.用户猜的数字有系统随机在1-20之间生成. 3.用户可以有5次机会猜这个随机生成的数字. 4.若用户猜大了,则系统会显示猜大了,并提示还有多少猜数字的机会

  • go语言实现猜数字小游戏的方法

    本文实例讲述了go语言实现猜数字小游戏的方法.分享给大家供大家参考.具体分析如下: 随机生成一个数字,输入一个数字看是否匹对,匹配则结速,反之提示是大了还是小了 复制代码 代码如下: package main import (     "bufio"     "fmt"     "math/rand"     "os"     "strconv"     "time" ) var (  

  • java猜数字小游戏案例

    本文实例为大家分享了java猜数字小游戏案例,供大家参考,具体内容如下 package day08; import java.util.Scanner; public class GuessNumber { /** * 猜数字小游戏:. 需求: 随机产生一个整数数1-100(被猜数)不设置输出 * 键盘录入一个玩家要猜的数字 * 判断猜大还是猜小了或者猜中 */ public static void main(String[] args) { // 随机产生整数1-100 int number

  • java学习之猜数字小游戏

    今天主要学习了一些初级的设计,完成了这个猜数字的小游戏,其是也算不上是什么游戏,因为我答案都给出来了.当然也是想对代码更加熟练的操作,让自己能够得心应手. 这个小程序中让我花了点时间的主要是那个如何去重的问题,当时也是思考良久,后来才考虑到使用死循环让随机数产生直到不重复为止,其他感觉也还好. import java.util.Scanner; public class GuessingGames { public static void main(String[] args) { Scanne

随机推荐