Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import json
- def return_max_health(s):
- if s == 'Sorceress':
- return 50
- if s == 'Knight':
- return 100
- if s == 'Barbarian':
- return 120
- if s == 'Warlock':
- return 70
- s = input()
- dict = json.loads(s)
- for i in range(0, len(dict['battle_steps']), 1):
- dict_step = dict['battle_steps'][i]
- action = dict_step['action']
- power = dict_step['power']
- id_to = dict_step['id_to']
- id_from = dict_step['id_from']
- id_to_health = dict['armies'][id_to]['health']
- id_from_health = dict['armies'][id_from]['health']
- if id_to_health <= 0 or id_from_health <= 0:
- continue
- if action == 'attack':
- dict['armies'][id_to]['defence'] -= power
- dict['armies'][id_from]['attack'] -= power
- if dict['armies'][id_to]['defence'] < 0:
- new_defence = dict['armies'][id_to]['defence']
- dict['armies'][id_to]['health'] += new_defence
- dict['armies'][id_to]['defence'] = 0
- new_health = dict['armies'][id_to]['health']
- if new_health <= 0:
- dict['armies'][id_from]['experience'] += 5
- dict['armies'][id_to]['health'] = 0
- else:
- dict['armies'][id_from]['experience'] += 1
- dict['armies'][id_to]['experience'] += 1
- else:
- dict['armies'][id_from]['experience'] += 1
- dict['armies'][id_to]['experience'] += 1
- if action == 'cast_damage_spell':
- dict['armies'][id_to]['defence'] -= power
- dict['armies'][id_from]['mana'] -= power
- if dict['armies'][id_to]['defence'] < 0:
- new_defence = dict['armies'][id_to]['defence']
- dict['armies'][id_to]['health'] += new_defence
- dict['armies'][id_to]['defence'] = 0
- new_health = dict['armies'][id_to]['health']
- if new_health <= 0:
- dict['armies'][id_from]['experience'] += 5
- dict['armies'][id_to]['health'] = 0
- else:
- dict['armies'][id_from]['experience'] += 1
- dict['armies'][id_to]['experience'] += 1
- else:
- dict['armies'][id_from]['experience'] += 1
- dict['armies'][id_to]['experience'] += 1
- if action == 'cast_health_spell':
- new_health = dict['armies'][id_to]['health'] + power
- max_health = return_max_health(dict['armies'][id_to]['race'])
- dict['armies'][id_to]['health'] = min(new_health, max_health)
- dict['armies'][id_from]['experience'] += 1
- dict['armies'][id_from]['mana'] -= power
- ronald_points = 0
- archibald_points = 0
- ronald_alive = False
- archibald_alive = False
- for i in dict['armies']:
- heroe = dict['armies'][i]
- if heroe['health'] > 0:
- points = 0
- points += heroe['experience']
- points += 2*heroe['defence']
- points += 3*heroe['attack']
- if 'mana' in heroe:
- points += 10*heroe['mana']
- if heroe['lord'] == 'Archibald':
- archibald_alive = True
- archibald_points += points
- else:
- ronald_alive = True
- ronald_points += points
- if ronald_alive and archibald_alive:
- if ronald_points > archibald_points:
- print('Ronald')
- if ronald_points < archibald_points:
- print('Archibald')
- if ronald_points == archibald_points:
- print('unknown')
- else:
- if ronald_alive:
- print('Ronald')
- if archibald_alive:
- print('Archibald')
- if ronald_alive is False and archibald_alive is False:
- print('unknown')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement