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

含有英文字母

英文,汉字,数字,回车

含小数点

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

相关推荐
破无差25 分钟前
python实现简单的地图绘制与标记20250705
python
向阳@向远方25 分钟前
第二章 简单程序设计
开发语言·c++·算法
喜欢吃豆1 小时前
目前最火的agent方向-A2A快速实战构建(二): AutoGen模型集成指南:从OpenAI到本地部署的全场景LLM解决方案
后端·python·深度学习·flask·大模型
Mr_Xuhhh1 小时前
信号与槽的总结
java·开发语言·数据库·c++·qt·系统架构
纳兰青华1 小时前
bean注入的过程中,Property of ‘java.util.ArrayList‘ type cannot be injected by ‘List‘
java·开发语言·spring·list
好开心啊没烦恼1 小时前
Python 数据分析:DataFrame,生成,用字典创建 DataFrame ,键值对数量不一样怎么办?
开发语言·python·数据挖掘·数据分析
liulilittle1 小时前
VGW 虚拟网关用户手册 (PPP PRIVATE NETWORK 基础设施)
开发语言·网络·c++·网关·智能路由器·路由器·通信
Devil枫1 小时前
Kotlin高级特性深度解析
android·开发语言·kotlin
ChinaDragonDreamer1 小时前
Kotlin:2.1.20 的新特性
android·开发语言·kotlin
安之若素^2 小时前
启用不安全的HTTP方法
java·开发语言