Advertisement
Guest User

Untitled

a guest
Mar 29th, 2020
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.77 KB | None | 0 0
  1. import random
  2. class Player:
  3. def __init__(self, x, y):
  4. self.x = x
  5. self.y = y
  6.  
  7. def move(self, position):
  8. self.x = position[0]
  9. self.y = position[1]
  10. print(list(position))
  11. #print("Pacman is at the position: ", self.x, self.y)
  12.  
  13. class Game:
  14. def __init__(self, mat):
  15. self.mat = mat
  16.  
  17. class Pacman:
  18. def __init__(self, player, game):
  19. self.player = player
  20. self.game = game
  21.  
  22. def play_game(self):
  23. dotpositions = []
  24. mat = self.game.mat;
  25. rows = len(mat)
  26. cols = len(mat[0])
  27. for i in range(rows):
  28. for j in range(cols):
  29. if mat[i][j] == '.':
  30. dotpositions.append((i, j));
  31. if(len(dotpositions)==0):
  32. print("Nothing to do here")
  33. else:
  34. while len(dotpositions)>0:
  35. player_pos_x = self.player.x
  36. player_pos_y = self.player.y
  37. row_range = range(player_pos_x - 1, player_pos_x + 2)
  38. col_range = range(player_pos_y - 1, player_pos_y + 2)
  39. next_pos_dot = []
  40. next_pos_empt = []
  41. for i in row_range:
  42. if(0<=i<rows and i != player_pos_x):
  43. if(mat[i][player_pos_y] == '.'):
  44. next_pos_dot.append((i, player_pos_y))
  45. else:
  46. next_pos_empt.append((i, player_pos_y))
  47. for j in col_range:
  48. if (0 <= j < cols and j != player_pos_y):
  49. if (mat[player_pos_x][j] == '.'):
  50. next_pos_dot.append((player_pos_x, j))
  51. else:
  52. next_pos_empt.append((player_pos_x, j))
  53. #print(next_pos_dot)
  54. if(len(next_pos_dot) > 0):
  55. r1 = random.randint(0, len(next_pos_dot)-1)
  56. self.player.move(next_pos_dot[r1])
  57. mat[next_pos_dot[r1][0]][next_pos_dot[r1][1]] = '#'
  58. else:
  59. r1 = random.randint(0, len(next_pos_empt) - 1)
  60. self.player.move(next_pos_empt[r1])
  61. if dotpositions.__contains__((self.player.x, self.player.y)):
  62. dotpositions.__delitem__(dotpositions.index((self.player.x, self.player.y)))
  63.  
  64.  
  65. def main():
  66. n = int(input())
  67. m = int(input())
  68. mat = []
  69. #mat = [[input()[j] for i in range(m)] for j in range(n)]
  70. for i in range(n):
  71. mat.append([])
  72. list = input()
  73. for j in range(m):
  74. mat[i].append(list[j])
  75. #print(mat)
  76. p = Pacman(Player(0,0), Game(mat))
  77. p.play_game()
  78.  
  79.  
  80. if __name__ == '__main__':
  81. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement