满足python猜数游戏所有功能

本文详细描述了一款基于pygame库开发的猜数游戏,包含了背景音乐、胜利音乐、设定猜数范围、中途退出、重复游玩等功能,以及游戏时间和次数限制。
摘要由CSDN通过智能技术生成

本程序为简单的猜数游戏添加了笔者所能想象到的所有功能。

包括如下:背景音乐,胜利音乐,设定猜数范围,猜数中途退出,重复游玩,游玩时间,猜数次数限制

具体功能实现参见代码

# 导入必要的库
import pygame
import random
import time

# 背景音乐和完成音乐
Music1 = r'D:\XX\XXXX_XXXX.ogg'
Music2 = r'掌声.wav'

pygame.init()  # 初始化模块
pygame.mixer.init()

pygame.mixer.music.load(Music1)  # 背景音乐
Wave_win = pygame.mixer.Sound(Music2)  # 完成音乐
pygame.mixer.music.set_volume(0.2)  # 背景音乐音量
Wave_win.set_volume(0.05)  # 完成掌声音量
pygame.mixer.music.play(-1)  # 设置背景音乐循环播放
startTime = time.time()  # 记录开始时间

"""程序主体"""
again = True
print('欢迎来到猜数游戏。')

# 游戏循环
while True:
    NumberRight = True

    """随机数生成"""
    while NumberRight:

        # 输入随机数取值范围,并判断是否为整型
        RangeS = input('\n请设置被猜测数字范围的开始值:\t')
        if not RangeS.isdigit():
            print('输入的不是整数,请重新输入。')
            continue
        else:
            RangeS = int(RangeS)

        RangeE = input('\n请设置被猜测数字范围的结束值:\t')
        if not RangeE.isdigit():
            print('输入的不是整数,请重新输入。')
            continue
        else:
            RangeE = int(RangeE)

        # 确保随机数取值成功
        if RangeS > RangeE:
            print('开始值不能大于结束值,请重新设置')
        else:
            NumberRight = False

    # 生成随机数
    TargetNumber = int(random.randint(RangeS, RangeE))
    print(f'我现在已从{RangeS}-{RangeE}中选取了一个数。')
    Right = False

    count = 0  # 猜数计数
    Continue = 'yes'  # 定义游戏中断

    # 核心部分
    while not Right:
        print('现在开始第%s次猜数' % (count+1))
        GuessNumber = input('请输入你猜的数?\t')
        if not GuessNumber.isdigit():  # 确保输入的数为整数
            print('输入的不是整数,请重新输入。')
            continue
        else:
            GuessNumber = int(GuessNumber)

        if GuessNumber > RangeS:  # 确保输入的数在随机数范围内
            print('输入的数应在', RangeS, '到', RangeE, '之间')
            continue
        elif GuessNumber < RangeE:
            print('输入的数应在', RangeS, '到', RangeE, '之间')
            continue
        else:  # 猜数次数加1,定义一个变量用以帮助判断猜数次数是否是三的整数倍
            count += 1
            thrice = count / 3

        Right = (TargetNumber == GuessNumber)  # 退出循环条件

        if Right:  # 判断是否胜利
            print('恭喜你,经过'+str(count)+'次猜对了!!')
            Wave_win.play()  # 播放完成音乐
            break  # 跳出循环
        elif GuessNumber > TargetNumber:
            print('往小点想!')
        else:
            print('往大点想!')

        """
        如果要限制猜数次数加入如下代码
        if count >= 9:
            print('游戏失败')
            break
        """

        if thrice.is_integer():  # 提供退出猜数的途径(每猜数三次询问一次)
            print('你已经猜了', count, '次', end=',')
            Continue = input('是否继续? yes/no?\t')
        if Continue == 'no':
            GuessNumber = TargetNumber
            Right = (TargetNumber == GuessNumber)

    endTime = time.time()  # 记录完成时间
    useTime = int(endTime - startTime)  # 游玩时间
    print('已游玩'+str(useTime)+'秒')
    again = input('是否再来一次? tes/no?\t')  # 是否再玩

    if again.upper() == 'no':  # 退出游戏
        break

print('再见!')
pygame.time.wait(3000)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值