Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import random
- class Player:
- def __init__(self, x, y):
- self.x = x
- self.y = y
- def move(self, position):
- self.x = position[0]
- self.y = position[1]
- print(list(position))
- #print("Pacman is at the position: ", self.x, self.y)
- class Game:
- def __init__(self, mat):
- self.mat = mat
- class Pacman:
- def __init__(self, player, game):
- self.player = player
- self.game = game
- def play_game(self):
- dotpositions = []
- mat = self.game.mat;
- rows = len(mat)
- cols = len(mat[0])
- for i in range(rows):
- for j in range(cols):
- if mat[i][j] == '.':
- dotpositions.append((i, j));
- if(len(dotpositions)==0):
- print("Nothing to do here")
- else:
- while len(dotpositions)>0:
- player_pos_x = self.player.x
- player_pos_y = self.player.y
- row_range = range(player_pos_x - 1, player_pos_x + 2)
- col_range = range(player_pos_y - 1, player_pos_y + 2)
- next_pos_dot = []
- next_pos_empt = []
- for i in row_range:
- if(0<=i<rows and i != player_pos_x):
- if(mat[i][player_pos_y] == '.'):
- next_pos_dot.append((i, player_pos_y))
- else:
- next_pos_empt.append((i, player_pos_y))
- for j in col_range:
- if (0 <= j < cols and j != player_pos_y):
- if (mat[player_pos_x][j] == '.'):
- next_pos_dot.append((player_pos_x, j))
- else:
- next_pos_empt.append((player_pos_x, j))
- #print(next_pos_dot)
- if(len(next_pos_dot) > 0):
- r1 = random.randint(0, len(next_pos_dot)-1)
- self.player.move(next_pos_dot[r1])
- mat[next_pos_dot[r1][0]][next_pos_dot[r1][1]] = '#'
- else:
- r1 = random.randint(0, len(next_pos_empt) - 1)
- self.player.move(next_pos_empt[r1])
- if dotpositions.__contains__((self.player.x, self.player.y)):
- dotpositions.__delitem__(dotpositions.index((self.player.x, self.player.y)))
- def main():
- n = int(input())
- m = int(input())
- mat = []
- #mat = [[input()[j] for i in range(m)] for j in range(n)]
- for i in range(n):
- mat.append([])
- list = input()
- for j in range(m):
- mat[i].append(list[j])
- #print(mat)
- p = Pacman(Player(0,0), Game(mat))
- p.play_game()
- if __name__ == '__main__':
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement