- 代码
import random
import time
# 植物类
class Plant:
def __init__(self, name, health):
self.name = name
self.health = health
def is_alive(self):
return self.health > 0
# 僵尸类
class Zombie:
def __init__(self, name, health):
self.name = name
self.health = health
def is_alive(self):
return self.health > 0
# 游戏类
class Game:
def __init__(self):
self.plants = []
self.zombies = []
self.turn = 0
def add_plant(self, plant):
self.plants.append(plant)
def add_zombie(self, zombie):
self.zombies.append(zombie)
def start(self):
while self.plants and self.zombies:
print(f"\nTurn {self.turn}:")
self.plant_turn()
self.zombie_turn()
self.turn += 1
def plant_turn(self):
for plant in self.plants:
if random.random() < 0.5: # 50% chance to attack
target = random.choice(self.zombies)
target.health -= 1
print(f"{plant.name} attacks {target.name} for 1 damage.")
def zombie_turn(self):
for zombie in self.zombies:
if random.random() < 0.5: # 50% chance to attack
target = random.choice(self.plants)
target.health -= 1
print(f"{zombie.name} attacks {target.name} for 1 damage.")
def end(self):
print("Game Over")
if self.plants:
print("Plants win!")
else:
print("Zombies win!")
# 创建游戏实例
game = Game()
# 添加植物和僵尸
game.add_plant(Plant("Sunflower", 3))
game.add_plant(Plant("Peashooter", 2))
game.add_zombie(Zombie("Basic Zombie", 3))
game.add_zombie(Zombie("Flag Zombie", 4))
# 开始游戏
game.start()
# 游戏结束
game.end()
- 知识点总结
- 1. 类和对象:
- 使用类( class )来定义对象的蓝图。
- 创建对象(实例化)来表示游戏中的实体,如植物和僵尸。
- 2. 属性:
- 通过在类的构造函数( __init__ )中定义属性来存储每个对象的状态,例如植物的名称和健康状态。
- 3. 方法:
- 在类中定义方法来表示对象的行为,例如检查植物或僵尸是否存活。
- 4. 列表:
- 使用列表( list )来存储游戏中的植物和僵尸对象。
- 5. 循环:
- 使用 while 循环来控制游戏的回合,直到游戏结束条件满足。
- 6. 条件语句:
- 使用 if 语句来决定游戏逻辑,例如判断植物或僵尸是否存活。
- 7. 随机性:
- 使用 random 模块来增加游戏的不确定性,例如决定植物和僵尸是否在每个回合攻击。
- 8. 函数:
- 定义函数来封装游戏逻辑,例如 plant_turn 和 zombie_turn 来处理每个回合的行动。
- 9. 输入/输出:
- 使用 print 函数来输出游戏状态和信息,使用 input 函数(虽然在这个示例中没有使用)来获取用户输入。
- 10. 模块化:
- 将游戏逻辑封装在 Game 类中,使得代码更加组织化和易于维护。
- 11. 控制流:
- 使用控制流语句(如 while 循环和 if 条件语句)来控制游戏的流程。
- 12. 游戏结束条件:
- 定义游戏结束的条件,例如当所有植物或所有僵尸被消灭时。