@Kolya_Get
Интересуюсь вёрсткой, созданием игр.

Не выводится текст в консоль, что делать?

У меня есть программа, там где должен выводится отчёт (вы увидите ниже)
class Orc:  #Свойства Орка
    damage = 0
    attacked = False
    fighting = False
    health = 300
    strength = 10
    def __init__(self, dmg):
        self.health = 300 - Knight.damage
        self.damage = dmg * self.strength
class Knight:  #Свойства Рыцаря
    damage = 0
    attacked = True
    fighting = False
    health = 200
    strength = 40
    def __init__(self, dmg):
        self.damage = dmg * self.strength
        self.health = 200 - Orc.damage

print("OPEN THE GAME")   #Объявление о начале игры для игрока

def fight_KnightVsOrc(KnightAttacked, OrcAttacked):

    Knight.attacked = KnightAttacked    #Кто ходит первый
    Orc.attacked = OrcAttacked

    while Orc.health <= 0 or Knight.health <= 0:
        if Knight.attacked == False:    #Рыцарь делает атаку
            Knight.damage += 1
            Knight.attacked == True
            Orc.attacked = False
            print("Рыцарь нанёс 40 урона. Здоровье у орка - ", Orc.health, "\n")
        
        if Orc.attacked == False:   #Орк делает атаку
            Orc.damage += 1
            Orc.attacked == True
            Knight.attacked = False
            print("Орк нанёс 10 урона. Здоровье у рыцаря - ", Knight.health, "\n")
    if Knight.health > Orc.health and Orc.health <= 0:
        print("Рыцарь победил")
    elif Knight.health == Orc.health and Knight.health <= 0 and Orc.health <= 0:
        print("Двое погибли в бою...")
    elif Knight.health < Orc.health and Knight.health <= 0:
        print("Орк победил")
fight_KnightVsOrc(False, True)


Ничего не выводиться, странно.

Консоль:

OPEN THE GAME
>>
  • Вопрос задан
  • 79 просмотров
Пригласить эксперта
Ответы на вопрос 2
SoreMix
@SoreMix Куратор тега Python
yellow
Вы неверно понимаете классы.
А вообще, вы везде сравниваете здоровье со значением меньше, либо равно 0
Напечатается, если у вас герои мертвые будут изначально
Ответ написан
Николай Гетманов
1. можно создать общий класс и наследоваться от него
2. написать внутри класса несколько функций (атака, защита и т.д.)
3. используя random генерировать случайные числа для атаки и нанесения урона
4. запустить цикл while и через генерацию случайных чисел сделать битву (на каждой итерации вычитая здоровье и увеличивая силу)

class Hero:  # Класс "персонаж"

    def __init__(self, dmg):
        self.strength = 10
        self.health = 300
        self.damage = dmg * self.strength

    def attacked(self):
        self.damage += 1

    def show(self):
        print(f"strength: \t {self.strength}")
        print(f"health: \t {self.health}")
        print(f"damage: \t {self.damage}")


bolg = Hero(dmg=1000) # создаём орка
aragorn = Hero(dmg=800) # создаём рыцаря

# выводим на экран характеристики героев:
bolg.show()
print()
aragorn.show()

# начинаем битву
bolg.attacked()
aragorn.attacked()

# снова выводим на экран характеристики героев:
bolg.show()
print()
aragorn.show()

# и так далее...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы