Давайте создадим классы «Персонаж», «Герой» и «Враг» на языке Python, основываясь на ваших требованиях.
class Character:
def __init__(self, name, character_type, weapon_class):
self.name = name
self.character_type = character_type
self.weapon_class = weapon_class
def __str__(self):
return f'Имя: {self.name}, Тип: {self.character_type}, Оружие: {self.weapon_class}'
class Hero(Character):
def __init__(self, name, character_type, weapon_class, health, mood, weapon_proficiency, potential_health_damage, potential_mood_damage):
super().__init__(name, character_type, weapon_class)
self.health = health
self.mood = mood
self.weapon_proficiency = weapon_proficiency
self.potential_health_damage = potential_health_damage
self.potential_mood_damage = potential_mood_damage
def __str__(self):
return (super().__str__() +
f', Здоровье: {self.health}, Настроение: {self.mood}, Уровень владения оружием: {self.weapon_proficiency}, '
f'Возможный урон здоровью: {self.potential_health_damage}, Возможный урон настроению: {self.potential_mood_damage}')
def attack_enemy(self):
print(f'{self.name} атакует врага с помощью {self.weapon_class}!')
class Enemy(Character):
def __init__(self, name, character_type, weapon_class, health, threat_type, weapon_proficiency):
super().__init__(name, character_type, weapon_class)
self.health = health
self.threat_type = threat_type
self.weapon_proficiency = weapon_proficiency
def __str__(self):
return (super().__str__() +
f', Здоровье: {self.health}, Тип угрозы: {self.threat_type}, Уровень владения оружием: {self.weapon_proficiency}')
def attack_hero(self):
print(f'{self.name} наносит удар герою с помощью {self.weapon_class}!')
# Пример использования
hero = Hero(name="Джон", character_type="Стрелок", weapon_class="Лук", health=100, mood=80, weapon_proficiency=95, potential_health_damage=15, potential_mood_damage=5)
enemy = Enemy(name="Троль", character_type="Монстр", weapon_class="Кистень", health=80, threat_type="Угроза здоровью", weapon_proficiency=90)
print(hero)
print(enemy)
hero.attack_enemy()
enemy.attack_hero()
В этом примере классы определены с атрибутами, которые вы указали, а также методы __str__, которые позволяют выводить информацию о каждом объекте. Также добавлены произвольные методы attack_enemy и attack_hero, чтобы показать, как герой и враг могут взаимодействовать. Вы можете расширять функциональность классов по своему усмотрению. Если будут вопросы или нужна дополнительная помощь, не стесняйтесь обращаться!