写一个植物大战僵尸代码
时间: 2024-05-06 10:17:48 浏览: 56
由于植物大战僵尸是一个比较复杂的游戏,涉及到图形界面、音效等方面的编程,因此我无法提供完整的代码。不过,以下是一个简单的命令行版植物大战僵尸游戏的参考代码,供您参考。
```python
import random
# 定义植物和僵尸的属性
plants = {
"豌豆射手": {"cost": 100, "damage": 20},
"寒冰射手": {"cost": 175, "damage": 35},
"坚果墙": {"cost": 50, "hp": 100},
}
zombies = {
"普通僵尸": {"hp": 100, "damage": 10},
"铁桶僵尸": {"hp": 200, "damage": 20},
"撑杆跳僵尸": {"hp": 150, "damage": 15},
}
# 定义游戏主循环
def run_game():
# 初始化游戏状态
sun = 50
plants_on_field = []
zombies_on_field = []
game_over = False
# 游戏开始
print("欢迎来到植物大战僵尸!")
while not game_over:
# 输出当前状态
print("太阳能量:%d" % sun)
print("植物:", end="")
for plant in plants_on_field:
print("%s(%d) " % (plant["name"], plant["hp"]), end="")
print()
print("僵尸:", end="")
for zombie in zombies_on_field:
print("%s(%d) " % (zombie["name"], zombie["hp"]), end="")
print()
# 产生太阳能量
if random.random() < 0.5:
sun += 25
# 用户输入命令
command = input("请输入命令:")
if command == "q":
game_over = True
elif command == "p":
# 显示可选植物
print("可选植物:")
for name, data in plants.items():
print("%s(花费:%d)" % (name, data["cost"]))
# 用户选择植物并购买
plant_name = input("请选择要购买的植物:")
if plant_name not in plants:
print("无效的植物名称!")
elif plants[plant_name]["cost"] > sun:
print("太阳能量不足!")
else:
sun -= plants[plant_name]["cost"]
plants_on_field.append({"name": plant_name, "hp": plants[plant_name].get("hp", 1)})
elif command == "a":
# 显示可攻击僵尸
attackable_zombies = []
for zombie in zombies_on_field:
if zombie["hp"] > 0:
attackable_zombies.append(zombie)
if not attackable_zombies:
print("没有可攻击的僵尸!")
else:
print("可攻击的僵尸:")
for i, zombie in enumerate(attackable_zombies):
print("%d. %s(生命值:%d,攻击力:%d)" % (i + 1, zombie["name"], zombie["hp"], zombie["damage"]))
# 用户选择攻击的僵尸
zombie_index = int(input("请选择要攻击的僵尸:")) - 1
if zombie_index < 0 or zombie_index >= len(attackable_zombies):
print("无效的僵尸序号!")
else:
plant = None
for p in plants_on_field:
if p.get("hp", 1) > 0 and p["name"] in ["豌豆射手", "寒冰射手"]:
plant = p
break
if not plant:
print("没有可攻击的植物!")
else:
zombie = attackable_zombies[zombie_index]
zombie["hp"] -= plant["damage"]
if zombie["hp"] <= 0:
print("%s 被消灭了!" % zombie["name"])
zombies_on_field.remove(zombie)
elif command == "z":
# 随机生成一只僵尸
zombie_name = random.choice(list(zombies.keys()))
zombies_on_field.append({"name": zombie_name, "hp": zombies[zombie_name]["hp"], "damage": zombies[zombie_name]["damage"]})
else:
print("无效的命令!")
# 运行游戏
run_game()
```
这个代码只是一个简单的示例,还有很多需要改进的地方,例如可以增加更多的植物和僵尸种类、增加攻击范围等等。但是这段代码可以帮助您了解植物大战僵尸的基本逻辑和编程思路。
阅读全文