Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def finding_kate(maze):
- k_row = 0
- k_position = 0
- for index, row in enumerate(maze):
- for searching in row:
- if searching == "k":
- k_row, k_position = index, row.index(searching)
- return k_row, k_position
- def moving_up(maze, k_row, k_position):
- if maze[k_row - 1][k_position] == " ":
- return True
- return False
- def moving_down(maze, k_row, k_position):
- if maze[k_row + 1][k_position] == " ":
- return True
- return False
- def moving_right(maze, k_row, k_position):
- if maze[k_row][k_position + 1] == " ":
- return True
- return False
- def moving_left(maze, k_row, k_position):
- if maze[k_row][k_position - 1] == " ":
- return True
- return False
- def kate_all_ways(maze, k_row, k_position):
- if maze[k_row][k_position - 1] != " " and maze[k_row][k_position + 1] != " " \
- and maze[k_row + 1][k_position] != " " and maze[k_row - 1][k_position] != " ":
- return False
- return True
- amount_rows = int(input())
- start_maze = []
- row_maze = []
- for making_maze in range(amount_rows):
- row_maze = [x for x in input()]
- row_maze.append("B")
- row_maze.insert(0, "B")
- start_maze.append(row_maze)
- start_maze.append(["B"] * (len(row_maze)))
- start_maze.insert(0, ["B"] * (len(row_maze)))
- kate_row, kate_position = finding_kate(start_maze)
- kate_main_row, kate_main_position = kate_row, kate_position
- turns = 0
- longest_way = 0
- kate_is_out = False
- while True:
- if moving_right(start_maze, kate_row, kate_position):
- kate_position += 1
- start_maze[kate_row][kate_position] = "#"
- turns += 1
- elif moving_left(start_maze, kate_row, kate_position):
- kate_position -= 1
- start_maze[kate_row][kate_position] = "#"
- turns += 1
- elif moving_up(start_maze, kate_row, kate_position):
- kate_row -= 1
- start_maze[kate_row][kate_position] = "#"
- turns += 1
- elif moving_down(start_maze, kate_row, kate_position):
- kate_row += 1
- start_maze[kate_row][kate_position] = "#"
- turns += 1
- if kate_position == 1 or kate_position == len(start_maze[kate_row]) - 2 or kate_row == len(start_maze) - 2 or kate_row == 1:
- kate_row, kate_position = kate_main_row, kate_main_position
- if turns > longest_way:
- longest_way = turns
- turns = 0
- kate_is_out = True
- if not kate_all_ways(start_maze, kate_row, kate_position):
- break
- if kate_is_out:
- print(f"Kate got out in {longest_way + 1} moves")
- else:
- print(f"Kate cannot get out")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement