Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def next_move(p_r, p_c, direction_, steps_):
- new_p_r, new_p_c = p_r, p_c
- if direction_ == 'up':
- new_p_r -= steps_
- elif direction_ == 'down':
- new_p_r += steps_
- elif direction_ == "left":
- new_p_c -= steps_
- elif direction_ == "right":
- new_p_c += steps_
- return new_p_r, new_p_c
- def valid_idx(r, c, size_):
- return 0 <= r < size_ and 0 <= c < size_
- size = 5
- matrix = []
- targets_total = 0
- player_row, player_col = None, None
- for row in range(size):
- current_row = input().split()
- matrix.append(current_row)
- for col in range(size):
- if matrix[row][col] == "A":
- player_row, player_col = row, col
- elif matrix[row][col] == "x":
- targets_total += 1
- hit_targets_coords = []
- targets_left = targets_total
- n = int(input())
- for _ in range(n):
- command_line = input().split()
- if command_line[0] == "shoot":
- direction = command_line[1]
- next_row, next_col = player_row, player_col
- while True:
- next_row, next_col = next_move(next_row, next_col, direction, 1)
- if valid_idx(next_row, next_col, size):
- if matrix[next_row][next_col] == "x":
- targets_left -= 1
- matrix[next_row][next_col] = "."
- hit_targets_coords.append([next_row, next_col])
- break
- else:
- break
- if targets_left == 0:
- break
- else:
- direction, steps = command_line[1], int(command_line[2])
- next_row, next_col = next_move(player_row, player_col, direction, steps)
- if valid_idx(next_row, next_col, size):
- if matrix[next_row][next_col] == ".":
- matrix[player_row][player_col] = "."
- player_row, player_col = next_row, next_col
- matrix[player_row][player_col] = "A"
- if not targets_left:
- print(f"Training completed! All {targets_total} targets hit.")
- else:
- print(f"Training not completed! {targets_left} targets left.")
- print(*[el for el in hit_targets_coords], sep='\n')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement