帮我用python做一个150行代码的冒险小游戏
时间: 2024-01-28 21:03:32 浏览: 77
好的,我可以为你设计一个基于命令行的冒险小游戏,具体规则和故事情节如下:
游戏规则:
1. 游戏中有多个场景,玩家需要在场景中进行探索,并且根据提示进行决策。
2. 玩家需要在规定的时间内完成任务,否则游戏失败。
3. 玩家可以收集物品,这些物品可以帮助他们完成任务。
4. 在游戏的不同阶段,玩家会遇到不同的敌人,需要与其进行战斗。
5. 游戏中有多个结局,玩家的选择会影响游戏的结局。
游戏故事:
故事发生在一个古老的城堡中,玩家扮演一名年轻的勇士,需要寻找并摧毁城堡深处的邪恶魔王,拯救被其控制的公主。
下面是代码实现:
```python
import random
import time
# 定义游戏场景和敌人
scenes = {
"entrance": "城堡入口",
"hall": "大厅",
"kitchen": "厨房",
"tower": "城堡塔楼",
"dungeon": "城堡地牢",
"throne_room": "王座厅",
"treasure_room": "宝藏房"
}
monsters = {
"goblin": {"name": "哥布林", "health": 30, "attack": 5},
"orc": {"name": "兽人", "health": 50, "attack": 10},
"demon": {"name": "恶魔", "health": 100, "attack": 20},
"dragon": {"name": "巨龙", "health": 200, "attack": 30}
}
# 定义任务物品和玩家属性
items = {
"key": "宝藏房的钥匙",
"potion": "恢复药水",
"sword": "宝剑",
"armor": "盔甲",
"torch": "火把"
}
player = {
"name": "勇士",
"health": 100,
"attack": 10,
"defense": 5,
"items": []
}
# 定义战斗函数
def fight(enemy):
print("你遇到了一只%s!" % enemy["name"])
while enemy["health"] > 0 and player["health"] > 0:
print("你的生命值:%d,攻击力:%d,防御力:%d" % (player["health"], player["attack"], player["defense"]))
print("%s的生命值:%d,攻击力:%d" % (enemy["name"], enemy["health"], enemy["attack"]))
action = input("请选择你的行动(攻击、逃跑):")
if action == "攻击":
enemy["health"] -= player["attack"]
print("你发起了攻击,对%s造成了%d点伤害!" % (enemy["name"], player["attack"]))
if enemy["health"] > 0:
player["health"] -= enemy["attack"] - player["defense"]
print("%s反击,对你造成了%d点伤害!" % (enemy["name"], enemy["attack"] - player["defense"]))
else:
print("你选择了逃跑!")
return False
if enemy["health"] <= 0:
print("你打败了%s!" % enemy["name"])
return True
else:
print("你被%s打败了!" % enemy["name"])
return False
# 定义场景函数
def enter_scene(scene):
print("你来到了%s。" % scenes[scene])
if scene == "entrance":
print("门被锁住了,你需要找到钥匙才能进入城堡。")
return "key"
elif scene == "hall":
print("你在大厅发现了一把宝剑。")
player["items"].append("sword")
return None
elif scene == "kitchen":
print("你在厨房发现了一瓶恢复药水。")
player["items"].append("potion")
return None
elif scene == "tower":
print("你来到了城堡塔楼,发现了一件盔甲。")
player["items"].append("armor")
return None
elif scene == "dungeon":
print("你看到了一只哥布林,准备与其战斗。")
if fight(monsters["goblin"]):
print("你打败了哥布林,继续你的冒险吧!")
return None
else:
print("你被哥布林打败了,游戏结束!")
return "end"
elif scene == "throne_room":
print("你来到了王座厅,恶魔正在等待你的到来。")
if fight(monsters["demon"]):
print("你打败了恶魔,但是公主不在这里,你需要继续寻找。")
return None
else:
print("你被恶魔打败了,游戏结束!")
return "end"
elif scene == "treasure_room":
print("你成功找到了宝藏房,并且拿到了公主的救赎。")
print("你获得了游戏的胜利!")
return "end"
# 定义游戏函数
def play_game():
print("欢迎来到城堡冒险游戏!")
print("你的任务是摧毁城堡深处的邪恶魔王,拯救被其控制的公主。")
print("你有60秒的时间完成任务,否则游戏失败。")
print("你可以在不同的场景中探索和收集物品,与敌人进行战斗。")
print("在游戏中,你可以输入help获取帮助,输入exit退出游戏。")
print("祝你好运!")
start_time = time.time()
current_scene = "entrance"
while True:
current_time = time.time()
if current_time - start_time > 60:
print("时间到了,游戏失败!")
return
action = input("> ")
if action == "help":
print("你可以输入go [场景名称]前往不同的场景。")
print("你可以输入take [物品名称]收集物品。")
print("你可以输入fight与敌人进行战斗。")
print("你可以输入items查看已收集的物品。")
print("你可以输入exit退出游戏。")
elif action == "exit":
print("游戏结束。")
return
elif action.startswith("go "):
scene = action.split()[1]
if scene in scenes:
item = enter_scene(scene)
if item:
player["items"].append(item)
if scene == "treasure_room":
return
current_scene = scene
else:
print("无法前往该场景!")
elif action.startswith("take "):
item = action.split()[1]
if item in items:
print("你收集了%s。" % items[item])
player["items"].append(item)
else:
print("无法收集该物品!")
elif action == "fight":
if current_scene in ["dungeon", "throne_room"]:
if fight(monsters["demon"]):
enter_scene(current_scene)
else:
return
else:
print("该场景没有敌人!")
elif action == "items":
if len(player["items"]) == 0:
print("你还没有收集任何物品!")
else:
print("你已经收集了以下物品:")
for item in player["items"]:
print(items[item])
else:
print("无法识别的命令!")
play_game()
```
这个游戏还可以进行很多扩展,比如增加场景、增加任务、增加敌人等等。希望这个小游戏能够帮助到你。
阅读全文