(Aug-27-2018, 12:55 PM)Gribouillis Wrote: [ -> ] (Aug-27-2018, 12:06 PM)witch Wrote: [ -> ]why does it execute choice 1,2,3 at a same time?
Use a list and write simply
politicians = [ryashko, poroh, yacenyuk, tymoshenko]
pol1 = (int(input('Хто буде бити ? (Виберіть цифру)\n')))
pol2 = (int(input('Кого будуть бити ? (Виберіть цифру\n')))
politicans[pol1 - 1].attack(politicians[pol2 - 1])
This also works, thanks for reply, I appericate it ! any idea on how to loop it, so the game doesnt end after one choice ?
class Politician(object):
def __init__ (self, name, damage, health):
self.name = name
self.damage = damage
self.health = health
def attack (self, other_guy):
other_guy.health -= self.damage
print('БАБАХ!!')
print('{} атакує {} !!!'.format(self.name, other_guy.name))
print('У {} лишилось {} ХП\n'.format(other_guy.name, other_guy.health))
politicians_data = (('Ляшко', 15, 100), ('Порошенко', 12, 100), ('Яценюк', 9, 100), ('Тимошенко', 11, 100))
politicians = [Politician(name, damage, health) for name, damage, health in politicians_data]
print('Вас вітає гра "Мортал Комбат: Політична Версія"!\n')
print('Наші політики:\n')
for i, pol in enumerate(politicians, start=1):
print('{} --> {}'.format(i, pol.name))
print('Виберіть батл який бажаєте побачити\n')
while True:
try:
pol1 = int(input('Хто буде бити ? (Виберіть цифру)\n')) - 1
pol2 = int(input('Кого будуть бити ? (Виберіть цифру\n')) -1
politician1 = politicians[pol1]
politician2 = politicians[pol2]
politician1.attack(politician2)
except (ValueError, IndexError):
print('Invalind input')
continue
Output:
Вас вітає гра "Мортал Комбат: Політична Версія"!
Наші політики:
1 --> Ляшко
2 --> Порошенко
3 --> Яценюк
4 --> Тимошенко
Виберіть батл який бажаєте побачити
Хто буде бити ? (Виберіть цифру)
1
Кого будуть бити ? (Виберіть цифру
a
Invalind input
Хто буде бити ? (Виберіть цифру)
1
Кого будуть бити ? (Виберіть цифру
3
БАБАХ!!
Ляшко атакує Яценюк !!!
У Яценюк лишилось 85 ХП
Хто буде бити ? (Виберіть цифру)
1
Кого будуть бити ? (Виберіть цифру
6
Invalind input
Хто буде бити ? (Виберіть цифру)