import random
import time
class RoboDog:
def __init__(self, name):
self.name = name
self.hp = 200 # 血量
self.energy = 50 # 能量
self.attack_power = 15 # 攻击力
self.defense = 8 # 防御力
self.speed = random.randint(5, 10) # 每回合随机先手
def take_damage(self, damage):
actual_damage = max(0, damage - self.defense)
self.hp -= actual_damage
return actual_damage
def recharge(self):
self.energy += 20
return "正在充能...能量+20!"
def plasma_bite(self):
if self.energy >= 30:
self.energy -= 30
damage = self.attack_power * 2
return ("等离子撕咬!", damage)
return ("能量不足!", 0)
def emp_shock(self):
if self.energy >= 40:
self.energy -= 40
return ("EMP冲击!", True) # 使对手下回合无法行动
return ("能量不足!", False)
def show_status(self):
return f"{self.name} | 血量: {self.hp} | 能量: {self.energy}"
def battle(player, enemy):
print("\n=== 战斗开始 ===")
while player.hp > 0 and enemy.hp > 0:
# 显示状态
print(f"\n{player.show_status()} VS {enemy.show_status()}")
# 玩家行动
print("\n可选动作:")
print("1. 普通攻击 2. 防御姿态")
print("3. 等离子撕咬(30能量) 4. EMP冲击(40能量)")
choice = input("选择你的动作(1-4): ")
action = None
if choice == '1':
dmg = random.randint(player.attack_power-5, player.attack_power+5)
action = (f"{player.name}发起攻击!", dmg, 'attack')
elif choice == '2':
player.defense += 5
action = (f"{player.name}进入防御姿态!", 0, 'defense')
elif choice == '3':
skill = player.plasma_bite()
action = (skill[0], skill[1], 'skill')
elif choice == '4':
skill = player.emp_shock()
action = (skill[0], skill[1], 'emp')
else:
print("无效输入!自动使用普通攻击")
dmg = random.randi