LOADING

加载过慢请开启缓存 浏览器默认开启

「百日百项」1.猜数字

项目介绍

猜数字是 Python 命令行游戏,玩家需要在 1 到 100 之间的数字。游戏中有 6 轮,每轮游戏都会给出一个提示,提示输入的数字是大了还是小了,玩家需要根据提示猜出一个数字。如果猜错了,则会提示玩家该数字应该在哪个区间,玩家需要根据提示继续猜测。如果玩家在 6 轮内猜出了数字,则游戏结束,玩家胜利。

实现功能

  • 随机生成一个数字,作为游戏的目标数字
  • 游戏主界面,显示游戏规则
  • 玩家输入数字,判断输入是否正确,如果输入正确,则提示玩家继续猜测,如果输入错误,则提示玩家该数字应该在哪个区间
  • 玩家在 6 轮内猜出数字,则游戏结束,玩家胜利。

功能实现

首先,我们需要定义一个函数,生成随机数字作为游戏目标数字。这里使用 Python 的 random 模块中的 randint() 函数来生成随机整数。

import random
def generate_number():
    return random.randint(1, 100)

answer_number = generate_number()

在游戏开始时,需要显示游戏规则。提示玩家如何游玩。

def main_menu():
    print("欢迎来到猜数字游戏!")
    print("游戏规则:")
    print("1. 系统随机生成一个数字,范围在 1 到 100 之间。")
    print("2. 你有 6 次机会,每轮你需要猜出这个数字。")
    print("3. 如果你猜对了,则你赢得游戏,如果猜错了,则你会被扣除一轮的机会。")
    print("4. 你需要在 6 次机会内猜出这个数字,否则你输掉游戏。")
    print("5. 祝你好运!")

想要让玩家输入数字,且限定玩家只能输入数字,且输入的数字必须在 1 到 100 之间。如果输入的数字不在范围内或是不是数字,则提示玩家重新输入。
可以对input进行封装,这里定义了一个函数 input_number(),用来获取玩家输入的数字,并且使用递归的方式,在输入不合法时,提示玩家重新输入。
然后想要判断输入是否正确,所以我们定义了一个函数 is_correct(),返回bool值,判断输入的数字是否正确。并打印提示信息。

# 用户输入数字
def input_number():
    try:
        number = int(input("请输入你猜的数字:"))
        if number < 1 or number > 100:
            print("输入的数字不在范围内,请重新输入!")
            return input_number()
        else:
            return number  # 递归的出口
    except ValueError:
        print("输入的不是数字,请重新输入!")
        return input_number()


# 定义函数,判断输入是否正确
def is_correct(number):
    if number == answer_number:
        print("恭喜你猜对了!")
        return True
    elif number < answer_number:
        print("你猜的数字小了,请重新输入!")
        return False
    else:
        print("你猜的数字大了,请重新输入!")
        return False

最后,定义一个函数 play_game(),用来运行游戏。
游戏开始时,调用 main_menu() 函数,显示游戏规则。
定义一个变量 chance,用来记录玩家剩余的机会。你可以修改这个变量来改变游戏的难度。
然后,使用 while 循环,在 chance 大于 0 时,一直运行游戏。
在每轮游戏(每次循环)中,调用 input_number() 函数获取玩家输入的数字,判断输入是否猜中,并打印提示信息。

def play_game():
    main_menu()
    chance = 6
    while chance > 0:
        chance -= 1
        inp_num = input_number()
        if is_correct(inp_num):
            print("正确!")
            print(f"答案是:{answer_number}!!恭喜你,你赢得游戏!")
            break
        if chance == 0:
            print("很遗憾,你输掉了游戏!")
            print(f"正确答案是:{answer_number}")
        else:
            print(f"你还有 {chance} 次机会,请猜一个数字:")

项目总结

这只是个简单的命令行游戏,适合新手学习 Python 编程。如果你看到这里,不妨试试自己实现这个游戏,或者改进完善它;比如增加调整游戏难度的功能…

完整代码

import random


# 定义函数,生成随机数字
def generate_number():
    return random.randint(1, 100)

answer_number = generate_number()


def main_menu():
    print("欢迎来到猜数字游戏!")
    print("游戏规则:")
    print("1. 系统随机生成一个数字,范围在 1 到 100 之间。")
    print("2. 你有 6 次机会,每轮你需要猜出这个数字。")
    print("3. 如果你猜对了,则你赢得游戏,如果猜错了,则你会被扣除一轮的机会。")
    print("4. 你需要在 6 次机会内猜出这个数字,否则你输掉游戏。")
    print("5. 祝你好运!")

def input_number():
    try:
        number = int(input("请输入你猜的数字:"))
        if number < 1 or number > 100:
            print("输入的数字不在范围内,请重新输入!")
            return input_number()
        else:
            return number  # 递归的出口
    except ValueError:
        print("输入的不是数字,请重新输入!")
        return input_number()

def is_correct(number):
    if number == answer_number:
        print("恭喜你猜对了!")
        return True
    elif number < answer_number:
        print("你猜的数字小了,请重新输入!")
        return False
    else:
        print("你猜的数字大了,请重新输入!")
        return False

def play_game():
    main_menu()
    chance = 6
    while chance > 0:
        chance -= 1
        inp_num = input_number()
        if is_correct(inp_num):
            print("正确!")
            print(f"答案是:{answer_number}!!恭喜你,你赢得游戏!")
            break
        if chance == 0:
            print("很遗憾,你输掉了游戏!")
            print(f"正确答案是:{answer_number}")
        else:
            print(f"你还有 {chance} 次机会,请猜一个数字:")

if __name__ == "__main__":
    play_game()