-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSorter.py
More file actions
36 lines (27 loc) · 858 Bytes
/
Sorter.py
File metadata and controls
36 lines (27 loc) · 858 Bytes
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
from abc import ABC, abstractmethod
import pygame
import sys
import time
# abstract class to implement sorting algorithms following the strategy pattern
class Sorter(ABC):
# window: the pygame window
def __init__(self, renderer):
self.renderer = renderer
self.is_complete = False
super().__init__()
# data: Data to be pushed to pygame window
# forces a pygame window update and clears queued events
def force_update(self):
# handle events
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
# update window and sleep
self.renderer.refresh()
self.renderer.render_data()
pygame.display.update()
time.sleep(0.02)
@abstractmethod
def sort(self, data):
pass