猜数游戏(Python)

一、实验要求:

(1)在游戏开始时,随机生成一个1~100之间的整数。

(2)在游戏中,玩家有10次机会猜数。如果10次都没有猜中,则游戏失败;否则,游戏成功。

(3)在每一次猜数之后,如果未猜中,应提示猜大了还是猜小了,并提示下一次猜数的上下限。

二、测试用例:

|------------|-------------|------------|
| 测试用例编号 | 测试 | 预期测试结果 |
| 用例1 | 在9次之内猜中 | 游戏成功 |
| 用例2 | 在第10次猜中 | 游戏成功 |
| 用例3 | 猜范围外的数字 | 提示范围 |
| 用例4 | 猜范围内的数字 | 游戏失败 |

三、程序代码:

python 复制代码
import random

def starts_zero(s):
    # 判断该输入是否为以0为开头,避免输入八进制数
    s = str(s)
    if len(s) > 0 and s[0] == '0':
        return False
    else:
        return True

def guess_number_game():
    # 随机生成一个1~100之间的整数
    number_to_guess = random.randint(1, 100)
    print(number_to_guess) 
    attempts = 0
    lower_bound = 1
    upper_bound = 100
    print("欢迎来到猜数游戏!")
    print("我已经想好了一个1到100之间的数字,你有10次机会来猜。")
    
    while attempts < 10:
        attempts += 1
        try:
            
            # 获取用户的猜测
            print("Please enter a number between {0} and {1}:".format(lower_bound,upper_bound),end = ' ')
            gueess = input()
            guess = int(gueess)
            '''attempts += 1'''
            if guess > 0 and guess < 101 and guess <= upper_bound and guess >= lower_bound and starts_zero(gueess):
            # 检查猜测是否正确
                if guess < number_to_guess:
                    print("猜小了!")
                    lower_bound = guess + 1
                elif guess > number_to_guess:
                    print("猜大了!")
                    upper_bound = guess - 1
                else:
                    print("恭喜你,猜对了!你用了{}次机会。".format(attempts))
                    return True  # 游戏成功
            else:
                continue
                
        except ValueError:
            '''print("输入无效,请输入一个整数!")'''
        '''attempts += 1'''# 如果在这里计数的话那么整数和字符两个输入不能同时计数    
    # 如果10次都没有猜中,则游戏失败
    print("很遗憾,你没有在10次机会内猜中数字。")
    return False

# 运行游戏
if guess_number_game():
    print("游戏成功!")
else:
    print("游戏失败。")

四、测试结果:

九次猜中

刚好在第十次猜中

猜范围之外的数字

猜范围内的数字

十次回车

以0为开头

含有英文字母

英文,汉字,数字,回车

含小数点

++如果有其他需求可以留言,博主看到后会更新并解决问题。++

相关推荐
无风听海6 分钟前
C# 隐式转换深度解析
java·开发语言·c#
涛声依旧-底层原理研究所1 小时前
残差连接与层归一化通俗易懂的详解
人工智能·python·神经网络·transformer
一只大袋鼠1 小时前
Git 进阶(二):分支管理、暂存栈、远程仓库与多人协作
java·开发语言·git
csdn_aspnet1 小时前
Python 算法快闪 LeetCode 编号 70 - 爬楼梯
python·算法·leetcode·职场和发展
richard_yuu1 小时前
鸿蒙治愈游戏模块实战|四大轻量解压游戏、ArkTS动画交互与低功耗落地
游戏·交互·harmonyos
fantasy_arch1 小时前
pytorch人脸匹配模型
人工智能·pytorch·python
熊猫_豆豆1 小时前
广义相对论水星近日点进动完整详细数学推导
python·天体·广义相对论
LuminousCPP1 小时前
数据结构 - 线性表第四篇:C 语言通讯录优化升级全记录(踩坑 + 思考)
c语言·开发语言·数据结构·经验分享·笔记·学习
魔法阵维护师1 小时前
从零开发游戏需要学习的c#模块,第十四章(保存和加载)
学习·游戏·c#
web3.08889991 小时前
1688 图搜接口(item_search_img / 拍立淘) 接入方法
开发语言·python