anzeigen von locked felder flicken

This commit is contained in:
Alfred Baumann
2026-06-10 14:40:43 +02:00
parent f3a6257cd4
commit 62864b7c00
9 changed files with 13 additions and 4 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@@ -4,6 +4,7 @@ from typing import override
import pygame import pygame
from src.algorithms.wfc import WFCSolver
from src.algorithms.bruteforce import BruteForceSolver from src.algorithms.bruteforce import BruteForceSolver
from src.net import NetGame from src.net import NetGame
@@ -32,8 +33,9 @@ class PieceSprite(pygame.sprite.Sprite):
@override @override
def update(self, game: NetGame, events: list[pygame.event.Event]): def update(self, game: NetGame, events: list[pygame.event.Event]):
piece = game.get_piece(self.x, self.y) piece = game.get_piece(self.x, self.y)
image = pygame.image.load(os.path.join("assets", f"{piece.type}.bmp")).convert() image = pygame.image.load(
image.set_colorkey("#ffffff") os.path.join("assets", f"{piece.type}.bmp")
).convert_alpha()
image = pygame.transform.rotate(image, -90 * int(piece.direction)) image = pygame.transform.rotate(image, -90 * int(piece.direction))
if piece.locked: if piece.locked:
self.image.fill("#a0a0a0") self.image.fill("#a0a0a0")
@@ -87,6 +89,7 @@ class NetGUI:
def run_game(self): def run_game(self):
current_solver = None current_solver = None
display_solver = False display_solver = False
step_solver = False
while not self.game.solved(): while not self.game.solved():
events = pygame.event.get() events = pygame.event.get()
@@ -102,16 +105,22 @@ class NetGUI:
elif event.type == pygame.KEYDOWN: elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_b: if event.key == pygame.K_b:
current_solver = BruteForceSolver(self.game).solve() current_solver = BruteForceSolver(self.game).solve()
if event.key == pygame.K_d: elif event.key == pygame.K_d:
display_solver = not display_solver 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: if current_solver:
try: try:
_ = next(current_solver) _ = next(current_solver)
except StopIteration: except StopIteration:
current_solver = None current_solver = None
if step_solver:
_ = input()
if (not current_solver) or display_solver: if (not current_solver) or display_solver:
self.update_display(events) self.update_display(events)
sleep(2) sleep(2)
NetGUI(3, 3).run_game() NetGUI(5, 5).run_game()