项目介绍
猜数字是 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()