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

21 Авг 2019 в 07:02
245 +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 Апр 2024 в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир