Advertisement
Guest User

02.War_Planes.py

a guest
Feb 23rd, 2020
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.14 KB | None | 0 0
  1. def create_field():
  2.     m = list()
  3.     t = 0
  4.     n = int(input())
  5.     for r in range(n):
  6.         m.append(input().split())
  7.     for i in range(n):
  8.         for j in range(n):
  9.             if m[i][j] == "t":
  10.                 t += 1
  11.     return m,t
  12.  
  13.  
  14. def find_start():
  15.     for i in range(len(field)):
  16.         for j in range(len(field)):
  17.             if field[i][j] == "p":
  18.                 return i, j
  19.  
  20.  
  21. def print_field():
  22.     for r in field:
  23.         print(f"{' '.join(r)}")
  24.  
  25.  
  26. def move(d, s):
  27.     global field
  28.  
  29.     r, c = find_start()
  30.     dirs = {
  31.         "up": [r - s, c],
  32.         "down": [r + s, c],
  33.         "left": [r, c - s],
  34.         "right": [r, c + s],
  35.     }
  36.     next_coordinates = dirs[d]
  37.     new_r = next_coordinates[0]
  38.     new_c = next_coordinates[1]
  39.     size = len(field)
  40.     if new_r in range(size) and new_c in range(size):
  41.         if field[new_r][new_c] == ".":
  42.             field[new_r][new_c] = "p"
  43.             field[r][c] = "."
  44.  
  45.  
  46. def shot(d, s):
  47.     global target_shot
  48.     r, c = find_start()
  49.     dirs = {
  50.         "up": [r - s, c],
  51.         "down": [r + s, c],
  52.         "left": [r, c - s],
  53.         "right": [r, c + s],
  54.     }
  55.     next_target = dirs[d]
  56.     new_r = next_target[0]
  57.     new_c = next_target[1]
  58.     if new_r in range(len(field)) and new_c in range(len(field)):
  59.         if field[new_r][new_c] == "t":
  60.             target_shot += 1
  61.             field[new_r][new_c] = "x"
  62.         elif field[new_r][new_c] == ".":
  63.             field[new_r][new_c] = "x"
  64.     if target_shot == targets:
  65.         print(f"Mission accomplished! All {targets} targets destroyed.")
  66.         print_field()
  67.         exit()
  68.  
  69.  
  70. target_shot = 0
  71. field, targets = create_field()
  72.  
  73. start = find_start()
  74. m = int(input())
  75. for i in range(m):
  76.     txt = input().split()
  77.     command = txt[0]
  78.     direction = txt[1]
  79.     step = int(txt[2])
  80.     if command == "move":
  81.         move(direction, step)
  82.     elif command == "shoot":
  83.         shot(direction, step)
  84.  
  85. if target_shot == targets:
  86.     print(f"Mission accomplished! All {targets} targets destroyed.")
  87. else:
  88.     print(f'Mission failed! {targets-target_shot} targets left.')
  89. print_field()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement