class Game: def __init__(self): pygame.init() self.size = (Constants.WINDOW_WIDTH, Constants.WINDOW_HEIGHT) self.screen = pygame.display.set_mode(self.size) self.keyboard_handler = KeyboardHandler() self.maze = Maze(Constants.GRID_SIZE, Constants.GRID_SIZE, self.size) self.time = pygame.time.get_ticks() self.maze.generate_maze() def game_loop(self): current_time = pygame.time.get_ticks() delta_time = current_time - self.time self.time = current_time self.handle_events() self.update_game(delta_time) self.draw_components() def update_game(self, dt): pass def draw_components(self): self.screen.fill([255, 255, 255]) self.maze.draw_maze(self.screen) pygame.display.flip() # def draw_score(self): # text = self.font.render(str(self.score[0]) + ":" + str(self.score[1]), True, (255,255,255)) # self.screen.blit(text, (self.size[0]/2-64, 20)) def reset(self): pass def handle_events(self): for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() if event.type == pygame.KEYDOWN: self.handle_key_down(event) if event.type == pygame.KEYUP: self.handle_key_up(event) if event.type == pygame.MOUSEMOTION: self.handle_mouse_motion(event) if event.type == pygame.MOUSEBUTTONDOWN: self.handle_mouse_pressed(event) if event.type == pygame.MOUSEBUTTONUP: self.handle_mouse_released(event) def handle_key_down(self, event): self.keyboard_handler.key_pressed(event.key) def handle_mouse_motion(self, event): pass def handle_mouse_pressed(self, event): pass def handle_mouse_released(self, event): pass # This method removes a released button from list 'keyboard_handler.pressed' def handle_key_up(self, event): self.keyboard_handler.key_released(event.key) if event.key == pygame.K_m: print("Generating Maze") self.maze.generate_maze() if event.key == pygame.K_e: print("Generating empty space") self.maze.open_maze() if event.key == pygame.K_o: print("Generating obstacles") self.maze.generate_obstacles() if event.key == pygame.K_r: print("Generating rooms") self.maze.generate_room() if event.key == pygame.K_b: print("Breath solve") self.maze.breadth_first_solution() if event.key == pygame.K_d: print("Depth solve") self.maze.depth_first_solution() if event.key == pygame.K_g: print("Greedy solve") self.maze.greedy_search() if event.key == pygame.K_a: print("A* solve") self.maze.a_star_search()