class Troll:
def __init__(self, damage, health):
self.damage = damage
self.health = health
def get_damage(self):
return self.damage
def get_health(self):
return self.health
class Wanderer:
def __init__(self, name, damage, health, k):
self.name = name
self.damage = damage
self.health = health
self.fragments = k
def get_damage(self):
return self.damage
def get_health(self):
return self.health
def inc_fragments(self, value):
self.fragments += value
def get_fragments(self):
return self.fragments
def game(wanderer, trolls):
for troll in trolls:
k = 0
while troll.get_health() >= 1 and wanderer.get_health() >= 1:
# Атака Странника
print("Атака Странника!")
troll.health -= wanderer.get_damage()
if troll.health < 0:
troll.health = 0
print(f"Здоровье Тролля: {troll.get_health()}")
k += 1
if troll.get_health() < 1:
break
# Атака Тролля
print("Атака Тролля!")
wanderer.health -= troll.get_damage()
print(f"Здоровье Странника: {wanderer.get_health()}")
if wanderer.get_health() < 1:
break
# Завершение текущего боя
print(f"Бой закончен! Странник нанёс {k} атак")
if wanderer.get_health() < 1:
print("Победил в бою Тролль!")
print("Игра проиграна!")
return False
# Победа Странника в раунде
h = wanderer.get_health()
fragments_earned = (k * h) / 100000
wanderer.inc_fragments(fragments_earned)
print(f"Победил в бою Странник! + {fragments_earned}")
# Проверка победы по фрагментам
if wanderer.get_fragments() >= 1.0:
print("Игра пройдена!")
return True
# Если тролли кончились, но целый фрагмент (>= 1.0) не собран
print("Игра проиграна!")
return False