猜数游戏(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为开头

含有英文字母

英文,汉字,数字,回车

含小数点

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

相关推荐
用户5769053080115 分钟前
Python实现一个类似MybatisPlus的简易SQL注解
后端·python
程序猿小郑26 分钟前
文本转语音(TTS)脚本
python
一个会的不多的人28 分钟前
C# NX二次开发:超级点控件使用详解
开发语言·c#
reasonsummer34 分钟前
【教学类-52-17】20250803动物数独_空格尽量分散_只有一半关卡数(N宫格通用版3-10宫格)0图、1图、2图、6图、有答案、无答案 组合版24套
python
weixin_4374999243 分钟前
【PHP类的基础概念:从零开始学面向对象】
开发语言·php
数据江湖1 小时前
进阶版:Python面向对象
python·元类·单例类·抽象基类·属性封装·可迭代对象、迭代器、生成器
亚马逊云开发者1 小时前
零代码生成 3D 游戏:基于 Amazon Q Developer CLI 和 Three.js 的实践
人工智能·游戏
上官鹿离1 小时前
Selenium教程(Python 网页自动化测试脚本)
python·selenium·测试工具
chxii2 小时前
1.8 axios详解
开发语言·前端·javascript
Yang-Never2 小时前
设计模式 -> 策略模式(Strategy Pattern)
android·开发语言·设计模式·kotlin·android studio·策略模式