Как правильно построить структуру приложения (python)? Всем привет столкнулся с проблемой, я осваиваю ООП и для этого пишу простую текстовую рпг, у меня такая структура:
класс герой(hero) : жизни, сила, ловкость
класс монстр(monst) : жизни, сила, ловкость
их наследует класс с вычислением урона удара(fightsys) - в нем вычисляется урон наносимый монстром или героем в зависимости куда идет удар, голова, тело, руки, ноги
класс(fight) наследует fightsys
в нем обрабатывается уже логика боя, человек играет за героя и выбирает в какую часть ударить а монстр отвечает на рандомно.
так вот проблема в том что это не работает. то есть не понятно почему не работает, первая же проверка в классе fight на то что бы монстр и герой были с полными хп оканчивается неудачей, хп героя нормально отрабатывает а хп монстра не приходит, если оно вообще дальше своего класса не уходит. хотя все сделано 1 в 1 с классом героя.
В чем проблема ? или я вообще не верно построил приложение ?

21 Авг 2019 в 07:02
216 +1
0
Ответы
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):
# здесь должна быть логика боя

Затем создайте экземпляры классов и передавайте их в следующий класс:

hero = Hero(100, 10, 5)
monster = Monster(50, 5, 10)
fight = Fight(hero, monster)

Если у вас по-прежнему возникают проблемы с передачей характеристик здоровья монстра, убедитесь, что вы правильно передаете его значение при создании экземпляра класса Monster.

Если проблема все еще остается, возможно, вам стоит подробнее изучить обработку ошибок и использование отладчика для отслеживания проблемных мест в коде. Надеюсь, это поможет вам решить проблему и довести ваше приложение до рабочего состояния.

20 Апр в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 91 947 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир