Advertisement
George_Ivanov05

Untitled

Oct 22nd, 2021
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.10 KB | None | 0 0
  1. import sys
  2. from io import StringIO
  3.  
  4. test_input1 = """6
  5. -----S
  6. ----B-
  7. ------
  8. ------
  9. --B---
  10. --*---
  11. left
  12. down
  13. down
  14. down
  15. left
  16. """
  17.  
  18. test_input2 = """7
  19. --***S-
  20. --*----
  21. --***--
  22. ---**--
  23. ---*---
  24. ---*---
  25. ---*---
  26. left
  27. left
  28. left
  29. down
  30. down
  31. right
  32. right
  33. down
  34. left
  35. down
  36. """
  37.  
  38.  
  39. sys.stdin = StringIO(test_input1)
  40.  
  41.  
  42. def read_matrix():  # Square matrix
  43.     size = int(input())
  44.     matrx = []
  45.     for _ in range(size):
  46.         matrx.append(list(input()))
  47.  
  48.     return matrx
  49.  
  50.  
  51. def is_index_valid(row, col, size):
  52.     if 0 <= row < size and 0 <= col < size:
  53.         return True
  54.     return False
  55.  
  56.  
  57. matrix = read_matrix()
  58. n = len(matrix)
  59.  
  60. snake_row, snake_col = 0, 0
  61.  
  62. b_row, b_col = None, None
  63.  
  64. for r in range(n):
  65.     for c in range(n):
  66.         if matrix[r][c] == "S":
  67.             snake_row = r
  68.             snake_col = c
  69.  
  70. food_eaten = 0
  71.  
  72. while True:
  73.     if food_eaten >= 10:
  74.         print("You won! You fed the snake.")
  75.         print(f"Food eaten: {food_eaten}")
  76.         for i in matrix:
  77.             print("".join(i))
  78.         break
  79.     command = input()
  80.     if command == "left":
  81.         if is_index_valid(snake_row, snake_col - 1, n):
  82.             matrix[snake_row][snake_col] = "."
  83.             if matrix[snake_row][snake_col - 1] == "-":
  84.                 matrix[snake_row][snake_col] = "."
  85.                 snake_col -= 1
  86.                 matrix[snake_row][snake_col] = "S"
  87.             elif matrix[snake_row][snake_col - 1] == "*":
  88.                 matrix[snake_row][snake_col] = "."
  89.                 snake_col -= 1
  90.                 food_eaten += 1
  91.                 matrix[snake_row][snake_col] = "S"
  92.             elif matrix[snake_row][snake_col - 1] == "B":
  93.                 matrix[snake_row][snake_col] = "."
  94.                 snake_col -= 1
  95.                 matrix[snake_row][snake_col] = "."
  96.                 for r in range(n):
  97.                     for c in range(n):
  98.                         if matrix[r][c] == "B":
  99.                             b_row = r
  100.                             b_col = c
  101.                 snake_row, snake_col = b_row, b_col
  102.                 matrix[snake_row][snake_col] = "S"
  103.         else:
  104.             matrix[snake_row][snake_col] = "."
  105.             print("Game over!")
  106.             print(f"Food eaten: {food_eaten}")
  107.             for i in matrix:
  108.                 print("".join(i))
  109.             break
  110.     elif command == "down":
  111.         if is_index_valid(snake_row + 1, snake_col, n):
  112.             matrix[snake_row][snake_col] = "."
  113.             if matrix[snake_row + 1][snake_col] == "-":
  114.                 matrix[snake_row][snake_col] = "."
  115.                 snake_row += 1
  116.                 matrix[snake_row][snake_col] = "S"
  117.             elif matrix[snake_row + 1][snake_col] == "*":
  118.                 matrix[snake_row][snake_col] = "."
  119.                 snake_row += 1
  120.                 food_eaten += 1
  121.                 matrix[snake_row][snake_col] = "S"
  122.             elif matrix[snake_row + 1][snake_col] == "B":
  123.                 matrix[snake_row][snake_col] = "."
  124.                 snake_row += 1
  125.                 matrix[snake_row][snake_col] = "."
  126.                 for r in range(n):
  127.                     for c in range(n):
  128.                         if matrix[r][c] == "B":
  129.                             b_row = r
  130.                             b_col = c
  131.                 snake_row, snake_col = b_row, b_col
  132.                 matrix[snake_row][snake_col] = "S"
  133.         else:
  134.             matrix[snake_row][snake_col] = "."
  135.             print("Game over!")
  136.             print(f"Food eaten: {food_eaten}")
  137.             for i in matrix:
  138.                 print("".join(i))
  139.             break
  140.     elif command == "up":
  141.         if is_index_valid(snake_row - 1, snake_col, n):
  142.             matrix[snake_row][snake_col] = "."
  143.             if matrix[snake_row - 1][snake_col] == "-":
  144.                 matrix[snake_row][snake_col] = "."
  145.                 snake_row -= 1
  146.                 matrix[snake_row][snake_col] = "S"
  147.             elif matrix[snake_row - 1][snake_col] == "*":
  148.                 matrix[snake_row][snake_col] = "."
  149.                 snake_row -= 1
  150.                 food_eaten += 1
  151.                 matrix[snake_row][snake_col] = "S"
  152.             elif matrix[snake_row - 1][snake_col] == "B":
  153.                 matrix[snake_row][snake_col] = "."
  154.                 snake_row -= 1
  155.                 matrix[snake_row][snake_col] = "."
  156.                 for r in range(n):
  157.                     for c in range(n):
  158.                         if matrix[r][c] == "B":
  159.                             b_row = r
  160.                             b_col = c
  161.                 snake_row, snake_col = b_row, b_col
  162.                 matrix[snake_row][snake_col] = "S"
  163.         else:
  164.             matrix[snake_row][snake_col] = "."
  165.             print("Game over!")
  166.             print(f"Food eaten: {food_eaten}")
  167.             for i in matrix:
  168.                 print("".join(i))
  169.             break
  170.     elif command == "right":
  171.         if is_index_valid(snake_row, snake_col + 1, n):
  172.             matrix[snake_row][snake_col] = "."
  173.             if matrix[snake_row][snake_col + 1] == "-":
  174.                 matrix[snake_row][snake_col] = "."
  175.                 snake_col += 1
  176.                 matrix[snake_row][snake_col] = "S"
  177.             elif matrix[snake_row][snake_col + 1] == "*":
  178.                 matrix[snake_row][snake_col] = "."
  179.                 snake_col += 1
  180.                 food_eaten += 1
  181.                 matrix[snake_row][snake_col] = "S"
  182.             elif matrix[snake_row][snake_col + 1] == "B":
  183.                 matrix[snake_row][snake_col] = "."
  184.                 snake_col += 1
  185.                 matrix[snake_row][snake_col] = "."
  186.                 for r in range(n):
  187.                     for c in range(n):
  188.                         if matrix[r][c] == "B":
  189.                             b_row = r
  190.                             b_col = c
  191.                 snake_row, snake_col = b_row, b_col
  192.                 matrix[snake_row][snake_col] = "S"
  193.         else:
  194.             matrix[snake_row][snake_col] = "."
  195.             print("Game over!")
  196.             print(f"Food eaten: {food_eaten}")
  197.             for i in matrix:
  198.                 print("".join(i))
  199.             break
  200.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement