Как правильно построить структуру приложения (python)? Всем привет столкнулся с проблемой, я осваиваю ООП и для этого пишу простую текстовую рпг, у меня такая структура: класс герой(hero) : жизни, сила, ловкость класс монстр(monst) : жизни, сила, ловкость их наследует класс с вычислением урона удара(fightsys) - в нем вычисляется урон наносимый монстром или героем в зависимости куда идет удар, голова, тело, руки, ноги класс(fight) наследует fightsys в нем обрабатывается уже логика боя, человек играет за героя и выбирает в какую часть ударить а монстр отвечает на рандомно. так вот проблема в том что это не работает. то есть не понятно почему не работает, первая же проверка в классе fight на то что бы монстр и герой были с полными хп оканчивается неудачей, хп героя нормально отрабатывает а хп монстра не приходит, если оно вообще дальше своего класса не уходит. хотя все сделано 1 в 1 с классом героя. В чем проблема ? или я вообще не верно построил приложение ?
Судя по вашему описанию, проблема скорее всего заключается в неправильной реализации наследования и передачи аргументов между классами.
Во-первых, у вас должно быть что-то вроде этого:
class Hero: def __init__(self, health, strength, agility): self.health = health self.strength = strength self.agility = agility class Monster: def __init__(self, health, strength, agility): self.health = health self.strength = strength self.agility = agility class FightSys: def __init__(self): pass def calculate_damage(self, attacker, target, body_part): # здесь должен быть ваш код для расчета урона class Fight(FightSys): def __init__(self, hero, monster): self.hero = hero self.monster = monster def start_fight(self): # здесь должна быть логика боя
Затем создайте экземпляры классов и передавайте их в следующий класс:
Если у вас по-прежнему возникают проблемы с передачей характеристик здоровья монстра, убедитесь, что вы правильно передаете его значение при создании экземпляра класса Monster.
Если проблема все еще остается, возможно, вам стоит подробнее изучить обработку ошибок и использование отладчика для отслеживания проблемных мест в коде. Надеюсь, это поможет вам решить проблему и довести ваше приложение до рабочего состояния.
Судя по вашему описанию, проблема скорее всего заключается в неправильной реализации наследования и передачи аргументов между классами.
Во-первых, у вас должно быть что-то вроде этого:
class Hero:def __init__(self, health, strength, agility):
self.health = health
self.strength = strength
self.agility = agility
class Monster:
def __init__(self, health, strength, agility):
self.health = health
self.strength = strength
self.agility = agility
class FightSys:
def __init__(self):
pass
def calculate_damage(self, attacker, target, body_part):
# здесь должен быть ваш код для расчета урона
class Fight(FightSys):
def __init__(self, hero, monster):
self.hero = hero
self.monster = monster
def start_fight(self):
# здесь должна быть логика боя
Затем создайте экземпляры классов и передавайте их в следующий класс:
hero = Hero(100, 10, 5)monster = Monster(50, 5, 10)
fight = Fight(hero, monster)
Если у вас по-прежнему возникают проблемы с передачей характеристик здоровья монстра, убедитесь, что вы правильно передаете его значение при создании экземпляра класса Monster.
Если проблема все еще остается, возможно, вам стоит подробнее изучить обработку ошибок и использование отладчика для отслеживания проблемных мест в коде. Надеюсь, это поможет вам решить проблему и довести ваше приложение до рабочего состояния.