python植物大战僵尸代码
pythonimport 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()
这个简单的示例展示了植物大战僵尸游戏的基本逻辑。在游戏中,豌豆射手会发射豌豆攻击普通僵尸,直到僵尸的生命值归零。你可以根据自己的需求和想法来扩展和改进这个基本框架,加入更多的植物、僵尸、关卡和游戏元素。
pythonimport 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()
这个示例包含了更多的植物和僵尸种类,并且在游戏逻辑中添加了更多的互动。游戏运行时会打印出各种动作和事件,使游戏过程更加生动。你可以根据自己的想法和需求进一步扩展和改进这个代码。