Advertisement
George_Ivanov05

yeah

Dec 5th, 2021
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.92 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.             if matrix[snake_row][snake_col - 1] == "-":
  83.                 matrix[snake_row][snake_col] = "."
  84.                 snake_col -= 1
  85.                 matrix[snake_row][snake_col] = "S"
  86.             elif matrix[snake_row][snake_col - 1] == "*":
  87.                 matrix[snake_row][snake_col] = "."
  88.                 snake_col -= 1
  89.                 food_eaten += 1
  90.                 matrix[snake_row][snake_col] = "S"
  91.             elif matrix[snake_row][snake_col - 1] == "B":
  92.                 matrix[snake_row][snake_col] = "."
  93.                 snake_col -= 1
  94.                 matrix[snake_row][snake_col] = "."
  95.                 for r in range(n):
  96.                     for c in range(n):
  97.                         if matrix[r][c] == "B":
  98.                             b_row = r
  99.                             b_col = c
  100.                 snake_row, snake_col = b_row, b_col
  101.                 matrix[snake_row][snake_col] = "S"
  102.         else:
  103.             matrix[snake_row][snake_col] = "."
  104.             print("Game over!")
  105.             print(f"Food eaten: {food_eaten}")
  106.             for i in matrix:
  107.                 print("".join(i))
  108.             break
  109.     elif command == "down":
  110.         if is_index_valid(snake_row + 1, snake_col, n):
  111.             if matrix[snake_row + 1][snake_col] == "-":
  112.                 matrix[snake_row][snake_col] = "."
  113.                 snake_row += 1
  114.                 matrix[snake_row][snake_col] = "S"
  115.             elif matrix[snake_row + 1][snake_col] == "*":
  116.                 matrix[snake_row][snake_col] = "."
  117.                 snake_row += 1
  118.                 food_eaten += 1
  119.                 matrix[snake_row][snake_col] = "S"
  120.             elif matrix[snake_row + 1][snake_col] == "B":
  121.                 matrix[snake_row][snake_col] = "."
  122.                 snake_row += 1
  123.                 matrix[snake_row][snake_col] = "."
  124.                 for r in range(n):
  125.                     for c in range(n):
  126.                         if matrix[r][c] == "B":
  127.                             b_row = r
  128.                             b_col = c
  129.                 snake_row, snake_col = b_row, b_col
  130.                 matrix[snake_row][snake_col] = "S"
  131.         else:
  132.             matrix[snake_row][snake_col] = "."
  133.             print("Game over!")
  134.             print(f"Food eaten: {food_eaten}")
  135.             for i in matrix:
  136.                 print("".join(i))
  137.             break
  138.     elif command == "up":
  139.         if is_index_valid(snake_row - 1, snake_col, n):
  140.             if matrix[snake_row - 1][snake_col] == "-":
  141.                 matrix[snake_row][snake_col] = "."
  142.                 snake_row -= 1
  143.                 matrix[snake_row][snake_col] = "S"
  144.             elif matrix[snake_row - 1][snake_col] == "*":
  145.                 matrix[snake_row][snake_col] = "."
  146.                 snake_row -= 1
  147.                 food_eaten += 1
  148.                 matrix[snake_row][snake_col] = "S"
  149.             elif matrix[snake_row - 1][snake_col] == "B":
  150.                 matrix[snake_row][snake_col] = "."
  151.                 snake_row -= 1
  152.                 matrix[snake_row][snake_col] = "."
  153.                 for r in range(n):
  154.                     for c in range(n):
  155.                         if matrix[r][c] == "B":
  156.                             b_row = r
  157.                             b_col = c
  158.                 snake_row, snake_col = b_row, b_col
  159.                 matrix[snake_row][snake_col] = "S"
  160.         else:
  161.             matrix[snake_row][snake_col] = "."
  162.             print("Game over!")
  163.             print(f"Food eaten: {food_eaten}")
  164.             for i in matrix:
  165.                 print("".join(i))
  166.             break
  167.     elif command == "right":
  168.         if is_index_valid(snake_row, snake_col + 1, n):
  169.             if matrix[snake_row][snake_col + 1] == "-":
  170.                 matrix[snake_row][snake_col] = "."
  171.                 snake_col += 1
  172.                 matrix[snake_row][snake_col] = "S"
  173.             elif matrix[snake_row][snake_col + 1] == "*":
  174.                 matrix[snake_row][snake_col] = "."
  175.                 snake_col += 1
  176.                 food_eaten += 1
  177.                 matrix[snake_row][snake_col] = "S"
  178.             elif matrix[snake_row][snake_col + 1] == "B":
  179.                 matrix[snake_row][snake_col] = "."
  180.                 snake_col += 1
  181.                 matrix[snake_row][snake_col] = "."
  182.                 for r in range(n):
  183.                     for c in range(n):
  184.                         if matrix[r][c] == "B":
  185.                             b_row = r
  186.                             b_col = c
  187.                 snake_row, snake_col = b_row, b_col
  188.                 matrix[snake_row][snake_col] = "S"
  189.         else:
  190.             matrix[snake_row][snake_col] = "."
  191.             print("Game over!")
  192.             print(f"Food eaten: {food_eaten}")
  193.             for i in matrix:
  194.                 print("".join(i))
  195.             break
  196. # 100 / 100
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement