daily pastebin goal
31%
SHARE
TWEET

Untitled

a guest Jan 19th, 2018 64 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. import sys
  2. import math
  3. import random
  4.  
  5. def odleglosc(x1, y1, x2, y2):
  6.     return math.sqrt((x2-x1)**2 + (y2-y1)**2)
  7.  
  8. # Send your busters out into the fog to trap ghosts and bring them home!
  9.  
  10. busters_per_player = int(input())  # the amount of busters you control
  11. ghost_count = int(input())  # the amount of ghosts on the map
  12. my_team_id = int(input())  # if this is 0, your base is on the top left of the map, if it is one, on the bottom right
  13.  
  14. # game loop
  15. while True:
  16.     busters = []
  17.     ghosts=[]
  18.     enemies=[]
  19.     entities = int(input())  # the number of busters and ghosts visible to you
  20.     for i in range(entities):
  21.         # entity_id: buster id or ghost id
  22.         # y: position of this buster / ghost
  23.         # entity_type: the team id if it is a buster, -1 if it is a ghost.
  24.         # state: For busters: 0=idle, 1=carrying a ghost.
  25.         # value: For busters: Ghost id being carried. For ghosts: number of busters attempting to trap this ghost.
  26.         entity_id, x, y, entity_type, state, value = [int(j) for j in input().split()]
  27.         if entity_type==-1:                                                  # DODAJE WIDOCZNEGO DUCHA DO GURPY DUCHÓW
  28.             ghosts.append({'id': entity_id, 'x': x, 'y': y, 'value': value})
  29.         elif entity_type==my_team_id:                                        # DODAJE MOJEGO GRACZA DO MOICH GRACZY
  30.             busters.append({'id': entity_id, 'x': x, 'y': y, 'value': value, 'state': state})
  31.         else:                                                                # DODAJE WROGA DO GRUPY WRÓG
  32.             enemies.append({'id': entity_id, 'x': x, 'y': y, 'value': value, 'state': state})
  33.            
  34.     if my_team_id ==0:              # OKREŚLA POŁOŻENIE BAZY
  35.         baza_x=0
  36.         baza_y=0
  37.     elif my_team_id==1:
  38.         baza_x=16000
  39.         baza_y=9000
  40.        
  41.     for i in busters:
  42.         if i["state"]==1:                                                   #JEŻELI NIESIE DUCHA TO:
  43.             if odleglosc(i["x"], i["y"], baza_x, baza_y) <= 1600:           #STOI BLISKO BAZY TO WYRZUCA DUCHA
  44.                 print("RELEASE")
  45.                 i["state"]=0                                                #ZMIENIA STATUS NA WOLNY, MOŻE NIEŚĆ
  46.             else:
  47.                 print ("MOVE {} {}".format (baza_x, baza_y))                # INACZEJ IDZIE W KIERUNKU BAZY
  48.         elif i["state"]==0:
  49.             if len(ghosts) > 0:                                             # JEŻELI WIDZI DUCHY
  50.  
  51.                 dystans = 16000
  52.                 cel_odleglosc=0
  53.                 for g in ghosts:                                            #SPRAWDZA DYSTANS DO KAŻDEGO WIDZIANEGO DUCHA
  54.                     nowy_dystans = odleglosc(i["x"], i["y"], g["x"], g["y"])
  55.                     if nowy_dystans < dystans:
  56.                         cel=g                                               #AKTUALIZUJE NAJBLIŻSZEGO DUCHA
  57.                         cel_odleglosc=nowy_dystans
  58.                 if cel_odleglosc>=900 and cel_odleglosc<=1760:              #JEŻELI MOŻE TO ŁAPIE DUCHA
  59.                     print("BUST", cel["id"])
  60.                     i["state"]=1                                            #ZMIENIA STATUS ZA ZAJĘTY
  61.                 elif cel_odleglosc>1760:
  62.                     print ("MOVE {} {}".format (cel["x"],cel["y"]))
  63.             else:
  64.                 print ("MOVE {} {}".format (random.randint(0, 16000), random.randint(0, 9000)))
  65.                    
  66.                
  67.            
  68.  
  69.             #print ("MOVE {} {}".format (random.randint(0, 16000), random.randint(0, 9000)))
  70.  
  71.         # Write an action using print
  72.         # To debug: print("Debug messages...", file=sys.stderr)
  73.  
  74.         # MOVE x y | BUST id | RELEASE
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top