Advertisement
simeonshopov

Kate

Jan 16th, 2020
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.42 KB | None | 0 0
  1. #!/usr/local/bin/python3.7
  2. # -*- coding: utf-8 -*import
  3.  
  4. n = int(input())
  5. kate = 'k'
  6. maze = [[x for x in input()] for x in range(n)]
  7.  
  8. k_line = int(*[maze.index(x) for x in maze if kate in x])
  9. k_place = maze[k_line].index(kate)
  10. moves = 0
  11. dead_end = None
  12.  
  13. while True:
  14.     line_break = k_line == 0 or k_line == len(maze) - 1
  15.     place_break = k_place == 0 or k_place == len(maze[0]) - 1
  16.     if line_break or place_break:
  17.         break
  18.     if k_line + 1 > len(maze) or k_place + 1 > len(maze[0]):
  19.         break
  20.     dead_end = True
  21.     if maze[k_line][k_place + 1] != '#':
  22.         maze[k_line][k_place] = '#'
  23.         maze[k_line][k_place] = kate
  24.         moves += 1
  25.         dead_end = False
  26.     if maze[k_line][k_place - 1] != '#':
  27.         maze[k_line][k_place] = '#'
  28.         maze[k_line][k_place - 1] = kate
  29.         moves += 1
  30.         dead_end = False
  31.     if maze[k_line + 1][k_place] != '#':
  32.         maze[k_line][k_place] = '#'
  33.         maze[k_line + 1][k_place] = kate
  34.         moves += 1
  35.         dead_end = False
  36.     if maze[k_line - 1][k_place] != '#':
  37.         maze[k_line][k_place] = '#'
  38.         maze[k_line - 1][k_place] = kate
  39.         moves += 1
  40.         dead_end = False
  41.     if dead_end:
  42.         break
  43.  
  44.     k_line = int(*[maze.index(x) for x in maze if kate in x])
  45.     k_place = maze[k_line].index(kate)
  46.  
  47. if dead_end:
  48.     print('Kate cannot get out')
  49. else:
  50.     print(f'Kate got out in {moves + 1} moves')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement