python植物大战僵尸代码

python
import random import time # 定义植物和僵尸的类 class Plant: def __init__(self, name, damage): self.name = name self.damage = damage def attack(self): print(f"{self.name} 发射了一颗豌豆,造成 {self.damage} 点伤害。") class Zombie: def __init__(self, name, health): self.name = name self.health = health def take_damage(self, damage): self.health -= damage print(f"{self.name} 受到了 {damage} 点伤害。") # 游戏逻辑 def main(): # 初始化植物和僵尸 peashooter = Plant("豌豆射手", 20) zombie = Zombie("普通僵尸", 100) print("开始植物大战僵尸游戏!") # 游戏循环 while zombie.health > 0: time.sleep(1) # 为了方便观察,每次循环间隔1秒 peashooter.attack() zombie.take_damage(peashooter.damage) print("游戏结束!普通僵尸被击败了!") # 运行游戏 if __name__ == "__main__": main()

这个简单的示例展示了植物大战僵尸游戏的基本逻辑。在游戏中,豌豆射手会发射豌豆攻击普通僵尸,直到僵尸的生命值归零。你可以根据自己的需求和想法来扩展和改进这个基本框架,加入更多的植物、僵尸、关卡和游戏元素。

python
import random import time # 定义植物和僵尸的类 class Plant: def __init__(self, name, damage, recharge_time): self.name = name self.damage = damage self.recharge_time = recharge_time self.last_attack_time = 0 def can_attack(self, current_time): return current_time - self.last_attack_time >= self.recharge_time def attack(self): print(f"{self.name} 发射了一颗豌豆,造成 {self.damage} 点伤害。") class Peashooter(Plant): def __init__(self): super().__init__("豌豆射手", 20, 2) class Sunflower(Plant): def __init__(self): super().__init__("向日葵", 0, 3) class Zombie: def __init__(self, name, health, attack_damage): self.name = name self.health = health self.attack_damage = attack_damage def take_damage(self, damage): self.health -= damage print(f"{self.name} 受到了 {damage} 点伤害。") def is_alive(self): return self.health > 0 def attack(self, target): print(f"{self.name}{target} 发起了攻击,造成 {self.attack_damage} 点伤害。") # 游戏逻辑 class Game: def __init__(self): self.plants = [] self.zombies = [] self.round = 1 def add_plant(self, plant): self.plants.append(plant) def add_zombie(self, zombie): self.zombies.append(zombie) def get_random_zombie(self): return random.choice(self.zombies) def run_round(self): print(f"第 {self.round} 波僵尸来袭!") for zombie in self.zombies: while zombie.is_alive(): target_plant = random.choice(self.plants) if target_plant.can_attack(time.time()): target_plant.last_attack_time = time.time() target_plant.attack() zombie.take_damage(target_plant.damage) else: print(f"{target_plant.name} 正在冷却,无法攻击!") time.sleep(1) print("本轮僵尸已被击退!") self.round += 1 def start(self): print("欢迎开始植物大战僵尸游戏!") while True: self.run_round() if not any(zombie.is_alive() for zombie in self.zombies): print("恭喜!所有僵尸已被击败,游戏胜利!") break # 运行游戏 if __name__ == "__main__": game = Game() # 添加植物 peashooter = Peashooter() sunflower = Sunflower() game.add_plant(peashooter) game.add_plant(sunflower) # 添加僵尸 zombie1 = Zombie("普通僵尸", 100, 10) zombie2 = Zombie("铁桶僵尸", 200, 15) game.add_zombie(zombie1) game.add_zombie(zombie2) # 开始游戏 game.start()

这个示例包含了更多的植物和僵尸种类,并且在游戏逻辑中添加了更多的互动。游戏运行时会打印出各种动作和事件,使游戏过程更加生动。你可以根据自己的想法和需求进一步扩展和改进这个代码。