写出一个植物大战僵尸代码
时间: 2023-06-14 09:08:14 浏览: 60
以下是一个简单的植物大战僵尸的 Python 代码示例:
```
import random
# 定义植物类
class Plant:
def __init__(self, name, health, damage):
self.name = name
self.health = health
self.damage = damage
def attack(self, zombie):
zombie.health -= self.damage
# 定义僵尸类
class Zombie:
def __init__(self, name, health, damage):
self.name = name
self.health = health
self.damage = damage
def attack(self, plant):
plant.health -= self.damage
# 定义游戏类
class Game:
def __init__(self):
self.plants = []
self.zombies = []
self.rounds = 0
# 添加植物
def add_plant(self, plant):
self.plants.append(plant)
# 添加僵尸
def add_zombie(self, zombie):
self.zombies.append(zombie)
# 游戏主循环
def play(self):
while True:
self.rounds += 1
print("第 %d 波进攻开始!" % self.rounds)
# 随机选择植物和僵尸进行战斗
for i in range(len(self.plants)):
plant = self.plants[i]
zombie = random.choice(self.zombies)
plant.attack(zombie)
print("%s 攻击 %s,%s 剩余生命值:%d" % (plant.name, zombie.name, zombie.name, zombie.health))
if zombie.health <= 0:
print("%s 被 %s 消灭!" % (zombie.name, plant.name))
self.zombies.remove(zombie)
if len(self.zombies) == 0:
print("恭喜你,你成功抵御了僵尸的进攻!")
return
# 检查是否有植物被僵尸攻击
for i in range(len(self.zombies)):
zombie = self.zombies[i]
plant = random.choice(self.plants)
zombie.attack(plant)
print("%s 攻击 %s,%s 剩余生命值:%d" % (zombie.name, plant.name, plant.name, plant.health))
if plant.health <= 0:
print("%s 被 %s 吃掉了!" % (plant.name, zombie.name))
self.plants.remove(plant)
if len(self.plants) == 0:
print("很遗憾,你失败了!")
return
# 创建游戏实例
game = Game()
# 添加植物
game.add_plant(Plant("豌豆射手", 100, 20))
game.add_plant(Plant("寒冰射手", 80, 30))
game.add_plant(Plant("樱桃炸弹", 50, 100))
# 添加僵尸
game.add_zombie(Zombie("普通僵尸", 80, 10))
game.add_zombie(Zombie("铁桶僵尸", 150, 20))
game.add_zombie(Zombie("撑杆僵尸", 200, 30))
# 开始游戏
game.play()
```
这个示例中,我们定义了 `Plant`(植物)和 `Zombie`(僵尸)两个类,分别表示游戏中的植物和僵尸。游戏主循环中,我们随机选择植物和僵尸进行战斗,直到一方全部被消灭为止。在战斗过程中,每个单位都有自己的生命值和攻击力,攻击对方减少对方的生命值,直到其中一方生命值降至 0。