Files
a-star/main.py
2024-04-29 01:19:47 +02:00

67 lines
1.3 KiB
Python

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()