Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def create_field():
- m = list()
- t = 0
- n = int(input())
- for r in range(n):
- m.append(input().split())
- for i in range(n):
- for j in range(n):
- if m[i][j] == "t":
- t += 1
- return m,t
- def find_start():
- for i in range(len(field)):
- for j in range(len(field)):
- if field[i][j] == "p":
- return i, j
- def print_field():
- for r in field:
- print(f"{' '.join(r)}")
- def move(d, s):
- global field
- r, c = find_start()
- dirs = {
- "up": [r - s, c],
- "down": [r + s, c],
- "left": [r, c - s],
- "right": [r, c + s],
- }
- next_coordinates = dirs[d]
- new_r = next_coordinates[0]
- new_c = next_coordinates[1]
- size = len(field)
- if new_r in range(size) and new_c in range(size):
- if field[new_r][new_c] == ".":
- field[new_r][new_c] = "p"
- field[r][c] = "."
- def shot(d, s):
- global target_shot
- r, c = find_start()
- dirs = {
- "up": [r - s, c],
- "down": [r + s, c],
- "left": [r, c - s],
- "right": [r, c + s],
- }
- next_target = dirs[d]
- new_r = next_target[0]
- new_c = next_target[1]
- if new_r in range(len(field)) and new_c in range(len(field)):
- if field[new_r][new_c] == "t":
- target_shot += 1
- field[new_r][new_c] = "x"
- elif field[new_r][new_c] == ".":
- field[new_r][new_c] = "x"
- if target_shot == targets:
- print(f"Mission accomplished! All {targets} targets destroyed.")
- print_field()
- exit()
- target_shot = 0
- field, targets = create_field()
- start = find_start()
- m = int(input())
- for i in range(m):
- txt = input().split()
- command = txt[0]
- direction = txt[1]
- step = int(txt[2])
- if command == "move":
- move(direction, step)
- elif command == "shoot":
- shot(direction, step)
- if target_shot == targets:
- print(f"Mission accomplished! All {targets} targets destroyed.")
- else:
- print(f'Mission failed! {targets-target_shot} targets left.')
- print_field()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement