游戏名称:魔法图书馆大冒险
游戏背景:
玩家意外闯入了一个神秘的魔法图书馆,图书馆的管理员告诉玩家,只有正确完成书籍分类任务,才能找到离开图书馆的线索。
游戏关卡:
玩家进入图书馆的藏书室,里面堆满了各种魔法书籍。
屏幕上会显示一系列魔法书籍的名称,例如:["火焰魔法", "冰霜魔法", "火焰魔法", "治愈魔法", "火焰魔法"]
玩家需要在规定时间内,使用题目 1 中提到的算法,通过编程(可以是在游戏内提供的简单编程界面)将这些书籍按照类型分类,并统计每种类型的数量。
游戏结果判定:
如果玩家成功生成了正确的字典,即 {"火焰魔法": 3, "冰霜魔法": 1, "治愈魔法": 1}
,则视为完成任务,管理员会给予玩家离开图书馆的关键线索。
如果玩家未能在规定时间内完成或者结果错误,则需要重新尝试。
通过这样的游戏关卡,既增加了游戏的趣味性,又让玩家在游戏过程中应用和巩固了 Python 字典的相关知识。
import time
import random
# 定义题目 1 的函数
def classify_books(book_list):
book_dict = {
}
for book_type in book_list:
if book_type in book_dict:
book_dict[book_type] += 1
else:
book_dict[book_type] = 1
return book_dict
# 游戏关卡函数
def magic_library_game():
magic_books = ["火焰魔法", "冰霜魔法", "火焰魔法", "治愈魔法", "火焰魔法"]
random.shuffle(magic_books) # 打乱书籍顺序增加难度
print("开始书籍分类任务!")
start_time = time.time() # 记录开始时间
user_dict = {
}
while True:
user_input = input("请输入书籍类型和数量,格式为'书籍类型:数量',输入'完成'结束输入: ")
if user_input == "完成":
break
try:
book_type, count = user_input.split(":")
count = int(count)
user_dict[book_type] = count
except ValueError:
print("输入格式错误,请重新输入!")
end_time = time.time() # 记录结束时间
if user_dict == classify_books(magic_books):
elapsed_time = end_time - start_time
if elapsed_time <= 30: # 假设规定时间为 30 秒
print("恭喜你,成功完成任务,用时", elapsed_time, "秒,管理员给了你离开图书馆的线索!")
else:
print("你完成了任务,但超时了,用时", elapsed_time, "秒,请重新尝试。")
else:
print("分类错误,请重新尝试。")
magic_library_game()