From 62864b7c004dd27a03b2ae909b363f3701df9594 Mon Sep 17 00:00:00 2001 From: Alfred Baumann Date: Wed, 10 Jun 2026 14:40:43 +0200 Subject: [PATCH] anzeigen von locked felder flicken --- assets/1.bmp | Bin 3274 -> 3274 bytes assets/1on.bmp | Bin 3274 -> 3274 bytes assets/2.bmp | Bin 3274 -> 3274 bytes assets/2on.bmp | Bin 3274 -> 3274 bytes assets/3.bmp | Bin 3274 -> 3274 bytes assets/3on.bmp | Bin 3274 -> 3274 bytes assets/4.bmp | Bin 3274 -> 3274 bytes assets/4on.bmp | Bin 3274 -> 3274 bytes src/GUI.py | 17 +++++++++++++---- 9 files changed, 13 insertions(+), 4 deletions(-) diff --git a/assets/1.bmp b/assets/1.bmp index bcc8e4e3b9eda49257dd2911f27b6c90dea73ea5..537c221c32b7f1689fed4a1e8f14867eb585f183 100644 GIT binary patch literal 3274 zcmZ?rJ;lQS23kl0Lm-tK`@XD1^*csAPB_&@8lj-+<)k+M&J%P zQMuOFjK;>s!f9z~YCz03bLLD=TdwQO8ZrGwFx?=U1(^e6|NsAg6px0%Xc`zz1EXnx rj5Gi$LPzn?4Fgi^KlHdJRX?ffNA06-`(!jcN5hkpJUE(O@TV65Gy484 literal 3274 zcmZ?rJ;lQS23kl0Lm-tK`@XD1^*csAPB_&@8lj-+<)k+M&J%P zQMuOFjK;>s!f9z~YCz03bLLD=TdwQO8ZrGwFx?=U1(^e6{~raTAut*OqaiRF0%U~% vs0ba!LpKaajdb+5CRIPF>PPJ(HN^0%9}Q3Z;X|tIXn2wuV))e$weSQ088vI^ diff --git a/assets/1on.bmp b/assets/1on.bmp index c37660890edbe452a6148a76159114efb84b0f30..fd8e1b591d1371c926208ce65ff3bdfc62fb924b 100644 GIT binary patch literal 3274 zcmZ?rJ;lQS23kl0Lm-tK`@XD1^*csAPB_&@8lj-+<)k+M&J%P zQMuOFjK;>s!f9z~YCz03bLLD=TdwQO8ZrGwFx?=U1(^e6|NsAg6px0%Xc`zz1EXnx zj5Gi$Lg|UgaN>|E;>ih1SeTHfm$dp1WCyZ+a1Kn6%Jisxq{R=R_!te((eNacMv&!4 J(+mFe0s!~bp_c#v literal 3274 zcmZ?rJ;lQS23kl0Lm-tK`@XD1^*csAPB_&@8lj-+<)k+M&J%P zQMuOFjK;>s!f9z~YCz03bLLD=TdwQO8ZrGwFx?=U1(^e6{~raTAut*OqaiRF0%U~% zs0gJe{{J6TWDj3VPFTXigFL;YMLWn2Wcx_dO}gq)`$!Knd^$$M6JO|%E;kyUq=y+k I9YZZV0o@P}Q~&?~ diff --git a/assets/2.bmp b/assets/2.bmp index 040e15147edbc4d1854c4d46c1b877eadb1f647d..aa208e4a96e585291d3c61b1a1bb57c4c38db5fb 100644 GIT binary patch literal 3274 zcmZ?rJ;lQS23kl0Lm-tK`@XD1^*csAPB_&@8lj-+<)k+M&J%P zQMuOFjK;>s!f9z~YCz03bLLD=TdwQO8ZrGwFx?=U1(^e6|NsA=Bn;Amj7il`s(NI* zAkHPty`%P_hSz9#qJ{^l=>uK;Xn2l>CwiK|#~)2Eqv-`-`aqW(O)sPA1wBpRkl0Lm-tK`@XD1^*csAPB_&@8lj-+<)k+M&J%P zQMuOFjK;>s!f9z~YCz03bLLD=TdwQO8ZrGwFx?=U1(^e6|0fZEv>;;=wUewI*)B4i zJ8Bkl0Lm-tK`@XD1^*csAPB_&@8lj-+<)k+M&J%P zQMuOFjK;>s!f9z~YCz03bLLD=TdwQO8ZrGwFx?=U1(^e6|NsA=B#f*D!X{1ssC}s6 zH5#6%;X!KpKvzE+o}=N3o+j||N7Kt_dcl`I(B($c%V>H*PZRj~qv>Tdz2Hk9=yF3X Gy#N3wYRzi^ literal 3274 zcmZ?rJ;lQS23kl0Lm-tK`@XD1^*csAPB_&@8lj-+<)k+M&J%P zQMuOFjK;>s!f9z~YCz03bLLD=TdwQO8ZrGwFx?=U1(^e6|0fYZw1BjMTtc#T5^V$8 z0=8q+K9U0thlbJc#1SxL3Xg^-nE{7G+h};=2pBSjN5hlMfWx6}G(2$x44J~C;Ynt| T;m|f3o;U)AOySY+#2;_~W+-a- diff --git a/assets/3.bmp b/assets/3.bmp index d1687ffdad8df4e4808e23fbcdcf8709d376f96a..290449c3fec278878511b867e42a1332e09b946c 100644 GIT binary patch literal 3274 zcmZ?rJ;lQS23kl0Lm-tK`@XD1^*csAPB_&@8lj-+<)k+M&J%P zQMuOFjK;>s!f9z~YCz03bLLD=TdwQO8ZrGwFx?=U1(^e6|NsAg6px0%Xc`zz1EXnx z4ru^XP9>Xm}DzBgpbY HExiB$zC>Ny literal 3274 zcmZ?rJ;lQS23kl0Lm-tK`@XD1^*csAPB_&@8lj-+<)k+M&J%P zQMuOFjK;>s!f9z~YCz03bLLD=TdwQO8ZrGwFx?=U1(^e6{~raTAut*OqaiRF0(1!h zP?1XsCe@LY*hNnDFw*QJH9kmHj~L*qGsC}e{7=HDm;fX(dNR=H8Pf|k+zj{i; F698E>`&j@0 diff --git a/assets/3on.bmp b/assets/3on.bmp index 8c351d077dd903579f52786b0aca79617d6008a2..9678bb2107678bcdde5eed263d8fba09e49741d7 100644 GIT binary patch literal 3274 zcmZ?rJ;lQS23kl0Lm-tK`@XD1^*csAPB_&@8lj-+<)k+M&J%P zQMuOFjK;>s!f9z~YCz03bLLD=TdwQO8ZrGwFx?=U1(^e6|NsAg6px0%Xc`zz1EXnx z4ru^XC_h7GA{1*Cp7JSh)D Mkl0Lm-tK`@XD1^*csAPB_&@8lj-+<)k+M&J%P zQMuOFjK;>s!f9z~YCz03bLLD=TdwQO8ZrGwFx?=U1(^e6{~raTAut*OqaiRF0(1!h zP?1XsCe@LUA|6!ClZ#2SaUks@CtOMM9WWHZRVE}XA#74jAWi+KeWZmKA=RVdNhpL! QlOGLF(!z_7>Y)~%0BHzn_y7O^ diff --git a/assets/4.bmp b/assets/4.bmp index 3a057e5e68c70a7965265a5333efbd062b3f11e6..3b13e5f27b88dd3f1c8a438b1ca3e2ced1579329 100644 GIT binary patch literal 3274 zcmZ?rJ;lQS23kl0Lm-tK`@XD1^*csAPB_&@8lj-+<)k+M&J%P zQMuOFjK;>s!f9z~YCz03bLLD=TdwQO8ZrGwFx?=U1(^e6|NsAg6px0%kV^xgq)Q1V zHQj^k>R{j|3q!IQY58o_KHOnF8lISGX*9izrWaDmw9)iJ{qzC~Q*tpWafeSWy8Zan SQbTUkKFqS1l5ibr;Ryh8`+uka literal 3274 zcmZ?rJ;lQS23kl0Lm-tK`@XD1^*csAPB_&@8lj-+<)k+M&J%P zQMuOFjK;>s!f9z~YCz03bLLD=TdwQO8ZrGwFx?=U1(^e6{~raTAut3(0F-no!K8W_ zWLF0RH(8jRY&L2i?yw#WPt4RinqEfJ3udaoEi#&3sGnXyVM;E>9aE&qpxaNHZqikc O+DCer;nOkH!V>^BPIb-z diff --git a/assets/4on.bmp b/assets/4on.bmp index 2399ff70bd032004d0b4ae9dbdcc0c03aa195990..52a608d64fa732c051398d1c60baeedf04c8a087 100644 GIT binary patch literal 3274 zcmZ?rJ;lQS23kl0Lm-tK`@XD1^*csAPB_&@8lj-+<)k+M&J%P zQMuOFjK;>s!f9z~YCz03bLLD=TdwQO8ZrGwFx?=U1(^e6|NsAg6px0%kV^xgq)Q1V zHQiH^RUmpv%V(qZ;ZBmH;fa}+M$^k^dLgAu8%;0NPcNV_B^Q$tclgvI$18-5SytfF PPpaIgebf!#p%$J190RS3 literal 3274 zcmZ?rJ;lQS23kl0Lm-tK`@XD1^*csAPB_&@8lj-+<)k+M&J%P zQMuOFjK;>s!f9z~YCz03bLLD=TdwQO8ZrGwFx?=U1(^e6{~raTAut3(0F-no!K8W_ zl2t(2g>+0#HXF4McQ}uRCuZs$O)sPA1v6FP78y-1)K4#c3HN^0%A8O$V0NzKVu>b%7 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()