Advertisement
Guest User

06. Knight Game

a guest
Jan 26th, 2020
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.38 KB | None | 0 0
  1. def read_matrix(s):
  2.     m = []
  3.     for r in range(s):
  4.         txt = input()
  5.         txt_list = []
  6.         for char in txt:
  7.             txt_list.append(char)
  8.         m.append(txt_list)
  9.     return m
  10.  
  11.  
  12. def valid_move(move):
  13.     r = move[0]
  14.     c = move[1]
  15.     if r in range(len(matrix)) and c in range(len(matrix)):
  16.         return True
  17.     return False
  18.  
  19.  
  20. def remove_k(m, s):
  21.     counter = 0
  22.     for r in range(s):
  23.         for c in range(s):
  24.             current_cell = m[r][c]
  25.  
  26.             if current_cell == "K":
  27.                 move_1 = (r + 2, c + 1)
  28.                 move_2 = (r + 2, c - 1)
  29.                 move_3 = (r + 1, c + 2)
  30.                 move_4 = (r - 1, c + 2)
  31.                 move_5 = (r - 2, c + 1)
  32.                 move_6 = (r - 2, c - 1)
  33.                 move_7 = (r + 1, c - 2)
  34.                 move_8 = (r - 1, c - 2)
  35.                 moves = [move_1, move_2, move_3, move_4, move_5, move_6, move_7, move_8]
  36.                 for move in moves:
  37.                     if valid_move(move):
  38.                         target_cell = m[move[0]][move[1]]
  39.                         if target_cell == current_cell:
  40.                             m[move[0]][move[1]] = "0"
  41.                             counter += 1
  42.     #for r in m:
  43.      #   print(f'{"".join(x for x in r)}')
  44.     return counter
  45.  
  46.  
  47. size = int(input())
  48. matrix = read_matrix(size)
  49. print(remove_k(matrix, size))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement