Jan 23rd, 2022
977
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
1. def next_move(playerrow, playercol, command_):
2.     if command_ == "U":
3.         if playerrow - 1 >= 0:
4.             playerrow -= 1
5.     elif command_ == "D":
6.         if playerrow + 1 < n:
7.             playerrow += 1
8.     elif command_ == "R":
9.         if playercol + 1 < m:
10.             playercol += 1
11.     elif command_ == "L":
12.         if playercol - 1 >= 0:
13.             playercol -= 1
14.     return playerrow, playercol
15.
16.
17. def new_bunnies(bunny_row_, bunny_col_):
18.     new_bunnies_ = []
19.     if bunny_row_ - 1 >= 0:
20.         new_bunnies_.append((bunny_row_ - 1, bunny_col_))
21.     if bunny_col_ - 1 >= 0:
22.         new_bunnies_.append((bunny_row_, bunny_col - 1))
23.     if bunny_col_ + 1 < m:
24.         new_bunnies_.append((bunny_row_, bunny_col_ + 1))
25.     if bunny_row_ + 1 < n:
26.         new_bunnies_.append((bunny_row_ + 1, bunny_col_))
27.     return new_bunnies_
28.
29.
30. n, m = [int(n) for n in input().split()]
31.
32. is_won = False
34.
35. bunnies_coordinates = set()
36. matrix = []
37. player_row, player_col = None, None
38.
39. for row in range(n):
40.     matrix.append(list(input()))
41.     for col in range(m):
42.         if matrix[row][col] == "B":
44.         elif matrix[row][col] == "P":
45.             player_row, player_col = row, col
46.
47. commands = list(input())
48.
49. while not is_won and not is_dead:
50.     for command in commands:
51.         new_current_bunnies = []
52.         next_row, next_col = next_move(player_row, player_col, command)
53.         if (next_row, next_col) == (player_row, player_col):
54.             is_won = True
55.             matrix[next_row][next_col] = "."
56.
57.         else:
58.             matrix[player_row][player_col] = "."
59.             player_row, player_col = next_row, next_col
60.             if matrix[player_row][player_col] == "B":
62.
63.         for bunny_row, bunny_col in bunnies_coordinates:
64.             new_current_bunnies = set(new_bunnies(bunny_row, bunny_col))
65.             for new_b_r, new_b_c in new_current_bunnies:
66.                 if (new_b_r, new_b_c) == (player_row, player_col):
68.
69.                 matrix[new_b_r][new_b_c] = "B"
70.             bunnies_coordinates = bunnies_coordinates.union(new_current_bunnies)
72.             break
73.
74. for row in range(n):
75.     print(*matrix[row], sep='')
76.
77. if is_won:
78.     print(f"won: {player_row} {player_col}")