Advertisement
Guest User

Untitled

a guest
Apr 21st, 2018
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.46 KB | None | 0 0
  1. import sys
  2. import math
  3.  
  4. class Site:
  5. def __init__(self, site_id, x, y, radius):
  6. self.site_id = site_id
  7. self.x = x
  8. self.y = y
  9. self.radius = radius
  10.  
  11. def setAtt(self, ignore_1, ignore_2, structure_type, owner, param_1, param_2):
  12. self.ignore_1 = ignore_1
  13. self.ignore_2 = ignore_2
  14. self.structure_type = structure_type
  15. self.owner = owner
  16. self.param_1 = param_1
  17. self.param_2 = param_2
  18.  
  19. class Unit:
  20. def __init__(self, x, y, owner, unit_type, health):
  21. self.x = x
  22. self.y = y
  23.  
  24. def dis(gun, target):
  25. return math.sqrt((target.y-gun.y)**2+(target.x-gun.x)**2)
  26.  
  27. def build():
  28. #print(sites.items())
  29. sorted_closet_site = sorted(sites, key=lambda x: dis(my_queen, sites[x]))
  30. for site in sorted_closet_site:
  31. if sites[site].structure_type == -1:
  32. print("BUILD {} BARRACKS-{}".format(site, 'KNIGHT'))
  33. return
  34.  
  35. def train():
  36. global gold
  37. id_to_train = []
  38. for site in sites:
  39. if sites[site].owner == 0 and gold>=80:
  40. id_to_train.append(site)
  41. gold-=80
  42. if len(id_to_train)>0:
  43. print('TRAIN', ' '.join(map(str,id_to_train)))
  44. else:
  45. print('TRAIN')
  46.  
  47. num_sites = int(input())
  48. sites = {}
  49. for i in range(num_sites):
  50. site_id, x, y, radius = [int(j) for j in input().split()]
  51. sites[site_id] = Site(site_id, x, y, radius)
  52.  
  53. my_queen = None
  54. op_queen = None
  55. gold=0
  56.  
  57. while True:
  58. # touched_site: -1 if none
  59. gold, touched_site = [int(i) for i in input().split()]
  60. for i in range(num_sites):
  61. # ignore_1: used in future leagues
  62. # ignore_2: used in future leagues
  63. # structure_type: -1 = No structure, 2 = Barracks
  64. # owner: -1 = No structure, 0 = Friendly, 1 = Enemy
  65. site_id, ignore_1, ignore_2, structure_type, owner, param_1, param_2 = [int(j) for j in input().split()]
  66. sites[site_id].setAtt(ignore_1, ignore_2, structure_type, owner, param_1, param_2)
  67.  
  68. num_units = int(input())
  69.  
  70. for i in range(num_units):
  71. # unit_type: -1 = QUEEN, 0 = KNIGHT, 1 = ARCHER
  72. x, y, owner, unit_type, health = [int(j) for j in input().split()]
  73. if unit_type == -1:
  74. if owner == 0:
  75. my_queen=Unit(x, y, owner, unit_type, health)
  76. if owner == 1:
  77. op_queen=Unit(x, y, owner, unit_type, health)
  78.  
  79.  
  80. build()
  81. train()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement