diff --git a/assets/1.bmp b/assets/1.bmp index bcc8e4e..537c221 100644 Binary files a/assets/1.bmp and b/assets/1.bmp differ diff --git a/assets/1on.bmp b/assets/1on.bmp index c376608..fd8e1b5 100644 Binary files a/assets/1on.bmp and b/assets/1on.bmp differ diff --git a/assets/2.bmp b/assets/2.bmp index 040e151..aa208e4 100644 Binary files a/assets/2.bmp and b/assets/2.bmp differ diff --git a/assets/2on.bmp b/assets/2on.bmp index fad07fd..b02d102 100644 Binary files a/assets/2on.bmp and b/assets/2on.bmp differ diff --git a/assets/3.bmp b/assets/3.bmp index d1687ff..290449c 100644 Binary files a/assets/3.bmp and b/assets/3.bmp differ diff --git a/assets/3on.bmp b/assets/3on.bmp index 8c351d0..9678bb2 100644 Binary files a/assets/3on.bmp and b/assets/3on.bmp differ diff --git a/assets/4.bmp b/assets/4.bmp index 3a057e5..3b13e5f 100644 Binary files a/assets/4.bmp and b/assets/4.bmp differ diff --git a/assets/4on.bmp b/assets/4on.bmp index 2399ff7..52a608d 100644 Binary files a/assets/4on.bmp and b/assets/4on.bmp differ diff --git a/src/GUI.py b/src/GUI.py index 94377dd..ed3d67e 100644 --- a/src/GUI.py +++ b/src/GUI.py @@ -4,6 +4,7 @@ from typing import override import pygame +from src.algorithms.wfc import WFCSolver from src.algorithms.bruteforce import BruteForceSolver from src.net import NetGame @@ -32,8 +33,9 @@ class PieceSprite(pygame.sprite.Sprite): @override def update(self, game: NetGame, events: list[pygame.event.Event]): piece = game.get_piece(self.x, self.y) - image = pygame.image.load(os.path.join("assets", f"{piece.type}.bmp")).convert() - image.set_colorkey("#ffffff") + image = pygame.image.load( + os.path.join("assets", f"{piece.type}.bmp") + ).convert_alpha() image = pygame.transform.rotate(image, -90 * int(piece.direction)) if piece.locked: self.image.fill("#a0a0a0") @@ -87,6 +89,7 @@ class NetGUI: def run_game(self): current_solver = None display_solver = False + step_solver = False while not self.game.solved(): events = pygame.event.get() @@ -102,16 +105,22 @@ class NetGUI: elif event.type == pygame.KEYDOWN: if event.key == pygame.K_b: current_solver = BruteForceSolver(self.game).solve() - if event.key == pygame.K_d: + elif event.key == pygame.K_d: display_solver = not display_solver + elif event.key == pygame.K_s: + step_solver = not step_solver + elif event.key == pygame.K_w: + current_solver = WFCSolver(self.game).solve() if current_solver: try: _ = next(current_solver) except StopIteration: current_solver = None + if step_solver: + _ = input() if (not current_solver) or display_solver: self.update_display(events) sleep(2) -NetGUI(3, 3).run_game() +NetGUI(5, 5).run_game()