import sys import pygame from pygame.locals import * from consts import ROWS, COLS, WIN_WIDTH, WIN_HEIGHT from astar import Node, a_star from astar import WALL, END, START from drawing import draw_cell, draw_grid, draw_path def create_grid(): grid = [] for i in range(0, ROWS): grid.append([]) for j in range(0, COLS): grid[i].append(Node(i, j)) return grid FPS = 60 fpsClock = pygame.time.Clock() Window = pygame.display.set_mode((WIN_WIDTH, WIN_HEIGHT)) BACKGROUND = (0, 0, 0) PATH_COLOR = (128, 128, 128) def main(): grid = create_grid() start = grid[0][0] start.celltype = START end = grid[ROWS - 1][COLS - 1] end.celltype = END path = a_star(grid, start, end) if path is None: print("No path") looping = True while looping: for event in pygame.event.get(): if event.type == QUIT: print("Received QUIT event. Exiting.") looping = False pygame.quit() sys.exit() Window.fill(BACKGROUND) # Clear display # Draw grid draw_grid(Window, grid) draw_path(Window, PATH_COLOR, path) pygame.display.update() # Swap render buffer fpsClock.tick(FPS) pygame.quit() sys.exit() if __name__ == "__main__": pygame.init() main()