anzeigen von locked felder flicken
BIN
assets/1.bmp
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
BIN
assets/1on.bmp
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
BIN
assets/2.bmp
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
BIN
assets/2on.bmp
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
BIN
assets/3.bmp
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
BIN
assets/3on.bmp
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
BIN
assets/4.bmp
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
BIN
assets/4on.bmp
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 3.2 KiB |
17
src/GUI.py
@@ -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()
|
||||||
|
|||||||