-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.py
68 lines (55 loc) · 2.2 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#IMPORTS
import pygame
import pygame_menu
from Algorithms.PathFinding import pathfinding
from Algorithms.Sorting import sorting
#CONSTANTS
SCREEN_WIDTH = 1280
SCREEN_HEIGHT = 720
#SETUP
pygame.init()
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
icon = pygame.image.load("Logo.svg")
pygame.display.set_icon(icon)
pygame.display.set_caption('Alg-Vis')
#HELPER FUNCTIONS
def main_menu():
mainmenu = pygame_menu.Menu(720, 1280, "Home", theme=pygame_menu.themes.THEME_DARK)
mainmenu.add.image("Logo.svg", scale=(1.5, 1.5))
mainmenu.add.label("Alg-Vis", max_char=-1, font_size=100, font_color="white")
mainmenu.add.vertical_margin(100)
mainmenu.add.button("Start", select_menu, font_size=75)
mainmenu.add.vertical_margin(20)
mainmenu.add.button("Quit", pygame_menu.events.EXIT, font_size=75)
mainmenu.mainloop(screen)
def select_menu():
selectmenu = pygame_menu.Menu(720, 1280, "Algorithms", theme=pygame_menu.themes.THEME_DARK)
selectmenu.add.button("Path-Finding Algorithms", pathfinding_instructions, font_size=50)
selectmenu.add.vertical_margin(50)
selectmenu.add.button("Sorting Algorithms", launch_sorting_client, font_size=50)
selectmenu.add.vertical_margin(150)
selectmenu.add.button("Back", main_menu, font_size=50)
selectmenu.mainloop(screen)
def pathfinding_instructions():
instruc = pygame_menu.Menu(720, 1280, "Instructions", theme=pygame_menu.themes.THEME_DARK)
instruc.add.label("- Left Click to add start and end nodes first\n- Left Click to then add barrier nodes\n- Right Click to remove nodes", max_char=-1, font_size=50, font_color="white")
instruc.add.vertical_margin(100)
instruc.add.button("Launch", launch_pathfinding_client, font_size=50)
instruc.add.vertical_margin(50)
instruc.add.button("Back", select_menu, font_size=25)
instruc.mainloop(screen)
def launch_pathfinding_client():
pathfinding.main(screen)
def launch_sorting_client():
sorting.main(screen)
#MAIN LOOP
def main():
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
main_menu()
#MAIN CALL
if __name__ == "__main__":
main()