python
import random
import time
class Character:
角色基类
def __init__(self, name, hp, attack):
self.name = name
self.hp = hp
self.attack_power = attack
def is_alive(self):
检查是否存活
return self.hp > 0
def take_damage(self, damage):
承受伤害
self.hp -= damage
if self.hp < 0:
self.hp = 0
class Human(Character):
人类角色
def __init__(self):
super.__init__(name="人类", hp=100, attack=20)
class Dog(Character):
狗角色
def __init__(self):
super.__init__(name="猛犬", hp=80, attack=25)
def battle:
初始化战斗角色
human = Human
dog = Dog
round_num = 1 回合计数器
战斗循环
while human.is_alive and dog.is_alive:
print(f"
=== 第 {round_num} 回合 ===")
人类攻击
damage = random.randint(human.attack_power-5, human.attack_power+5)
dog.take_damage(damage)
print(f"{human.name} 发动攻击!造成 {damage} 点伤害,{dog.name} 剩余血量:{dog.hp}")
检查狗是否存活
if not dog.is_alive:
break
狗攻击
damage = random.randint(dog.attack_power-5, dog.attack_power+5)
human.take_damage(damage)
print(f"{dog.name} 发起反击!造成 {damage} 点伤害,{human.name} 剩余血量:{human.hp}")
round_num += 1
time.sleep(1) 增加战斗间隔
显示战斗结果
winner = human if human.is_alive else dog
print(f"
战斗结束!胜利者是:{winner.name}")
if __name__ == "__main__":
print("===== 人狗大战开始 =====")
battle
代码特点:
1. 面向对象设计:使用类来组织角色属性和方法
2. 随机战斗系统:每次攻击在基础攻击力上下浮动5点
3. 回合制战斗:自动进行攻防交替
4. 实时状态显示:展示每个回合的战斗详情
5. 简单扩展性:可以方便地添加新角色或修改属性
运行效果示例:
===== 人狗大战开始 =====
=== 第 1 回合 ===
人类 发动攻击!造成 22 点伤害,猛犬 剩余血量:58
猛犬 发起反击!造成 23 点伤害,人类 剩余血量:77
=== 第 2 回合 ===
人类 发动攻击!造成 19 点伤害,猛犬 剩余血量:39
猛犬 发起反击!造成 27 点伤害,人类 剩余血量:50
..(中间回合省略)...
=== 第 6 回合 ===
人类 发动攻击!造成 24 点伤害,猛犬 剩余血量:0
战斗结束!胜利者是:人类
扩展建议:
1. 添加更多战斗角色(如不同品种的狗)
2. 增加特殊技能系统
3. 实现玩家手动选择攻击方式
4. 添加装备系统
5. 增加战斗动画效果
这个基础版本保留了核心战斗机制,同时保证了代码的简洁性,适合Python初学者学习和扩展。