猜年龄小游戏

发布时间 2023-11-26 16:10:54作者: Chimengmeng

【一】需求介绍

  • 设定好用户年龄,用户通过输入猜测的年龄进行匹配
  • 最大尝试次数:用户最多尝试猜测3次
  • 最大尝试次数后:如3次后,问用户是否还想继续玩
    • 如果回答Y或y,就再给3次机会,提示【还剩最后三次机会】
    • 3次都猜错的话游戏结束
    • 如果回答N或n,游戏结束!
    • 如果格式输入错误,提示【输入格式错误,请重新输入:】
  • 如果猜对了,游戏结束!

【二】功能分析

  • 设定年龄
  • 猜测次数
  • 回答正确
    • 程序结束
  • 回答错误
    • 回答 y 程序重新启动
    • 回答 n 程序结束

【三】代码实现

【1.0】只实现用户输入校对

  • 只保留下最基础的用户 输入年龄并进行年龄比对的功能
# 【1】设定年龄
true_age = 18

# 【2】用户输入年龄
age_input = input("请输入年龄 :>>>> ")

# 【3】对输入的内容进行判断(默认输入的是数字)
# input输入的是字符串类型,无法与数字进行匹配,所以强转数据类型
age_input = int(age_input)
if age_input == true_age18:
    print(f"你真棒,猜对了!")
elif age_input > true_age:
    print(f"不好意思哦!猜大了!")
elif age_input < true_age:
    print(f"不好意思哦!猜小了!")
else:
    print(f"意料之外的错误哦!")

【2.0】增加尝试次数

# 【1】设定年龄
true_age = 18
# 【2】设定尝试次数(最多尝试3次)和初识尝试次数(1)
can_choice = 3
count = 1

# 【3】设置循环 --- 计数次数小于额定次数 为 True 循环进行,否则循环结束
while count <= can_choice:
    # 【4】每尝试一次,循环次数 + 1 (可尝试次数 - 1 )
    count += 1
    # 【5】用户输入年龄
    age_input = input("请输入年龄 :>>>> ")

    # 【6】对输入的内容进行判断(默认输入的是数字)
    # input输入的是字符串类型,无法与数字进行匹配,所以强转数据类型
    age_input = int(age_input)
    if age_input == true_age:
        print(f"你真棒,猜对了!")
        break
    elif age_input > true_age:
        print(f"不好意思哦!猜大了!")
    elif age_input < true_age:
        print(f"不好意思哦!猜小了!")
    else:
        print(f"意料之外的错误哦!")

【3.0】增加重试机制

# 【1】设定年龄
true_age = 18
# 【2】设定尝试次数(最多尝试3次)和初识尝试次数(1)
can_choice = 3
count = 1

# 【3】设置循环 --- 计数次数小于额定次数 为 True 循环进行,否则循环结束
while count <= can_choice:
    # 【4】每尝试一次,循环次数 + 1 (可尝试次数 - 1 )
    count += 1
    # 【5】用户输入年龄
    age_input = input("请输入年龄 :>>>> ")

    # 【6】对输入的内容进行判断(默认输入的是数字)
    # input输入的是字符串类型,无法与数字进行匹配,所以强转数据类型
    age_input = int(age_input)
    if age_input == true_age:
        print(f"你真棒,猜对了!")
        break
    elif age_input > true_age:
        print(f"不好意思哦!猜大了!")
    elif age_input < true_age:
        print(f"不好意思哦!猜小了!")
    else:
        print(f"意料之外的错误哦!")

    # 【7】增加重试机制 : 输入 Y 将尝试次数重置为1,否则直接退出
    if count == can_choice + 1:
        age_input = input("请输入是否继续尝试(Y/N) :>>>> ")
        if age_input == 'Y' or age_input == 'y':
            print(f"欢迎再次尝试!祝您成功!")
            count = 1
        elif age_input == 'N' or age_input == 'n':
            print(f"感谢您的尝试!下次再会!")
            break
        else:
            print(f"意料之外的错误哦!")
            break

【四】参考代码

"""前期编写代码 先不要考虑代码的优化 能实现功能即可"""
'''前期编写代码一定要先用中文写出步骤,之后翻译成python代码'''

# TODO:写任何业务 都应该先搭建主体功能 之后再考虑配套优化
# 1.定义真实的年龄
real_age = 18
# 7.定义一个记录用户猜测次数的计数器
guess_count = 1
# 5.将需要反复执行的代码缩进到while子代码中
while True:
    # 9.判断当前用户到底猜测了几次
    if guess_count == 4:
        # 10.提示用户已经尝试了三次 是否继续尝试
        is_again = input('您已经尝试了三次 是否继续(y/n)>>>:')
        # 11.判断用户是否继续
        if is_again == 'y':
            # 12.重置用户尝试的次数
            guess_count = 1
        else:
            # 13.直接结束循环
            print('下次记得来玩哟!!!')
            break
    # 2.获取用户猜测的年龄
    guess_age = input('请输入猜测的年龄>>>:')
    # 3.将字符串类型的数字转换成整型类型的数字
    guess_age = int(guess_age)  # 该代码可能会报错 暂且忽略
    # 4.比较猜测的年龄和真实年龄
    if guess_age > real_age:
        print('哎呀 讨厌 猜大了')
        guess_count += 1  # 8.猜错了就应该自增依次
    elif guess_age < real_age:
        print('不好意思 没那么小')
        guess_count += 1  # 8.猜错了就应该自增依次
    else:
        print('哈哈哈 你真棒!!!')
        # 6.一旦猜对了 立刻结束循环
        break