brute-force

This commit is contained in:
Alfred Baumann
2026-06-08 11:41:48 +02:00
parent 7b7df0f7a8
commit 6de80582d9
3 changed files with 47 additions and 10 deletions

View File

@@ -1,8 +1,10 @@
import os
from time import sleep
from typing import override
import pygame
from src.algorithms.bruteforce import BruteForceSolver
from src.net import NetGame
# pyright: reportUnusedCallResult=false, reportAny=false
@@ -59,7 +61,9 @@ class PieceSprite(pygame.sprite.Sprite):
class NetGUI:
game: NetGame
window: pygame.Surface
pieceSprites: pygame.sprite.Group[PieceSprite] # pyright: ignore[reportInvalidTypeArguments]
pieceSprites: pygame.sprite.Group[
PieceSprite # pyright: ignore[reportInvalidTypeArguments]
]
def __init__(self, width: int, height: int):
self.game = NetGame(width, height)
@@ -74,7 +78,7 @@ class NetGUI:
self.pieceSprites.add(PieceSprite(x, y))
def run_game(self):
while True:
while not self.game.solved():
events = pygame.event.get()
for event in events:
@@ -82,20 +86,20 @@ class NetGUI:
raise SystemExit
elif event.type == LEFT_TURN:
self.game.turn_ccw(event.x, event.y)
if self.game.solved():
raise SystemExit # TODO: Richtiger Spiel schluss, nicht einfach schliessen
elif event.type == RIGHT_TURN:
self.game.turn_cw(event.x, event.y)
if self.game.solved():
raise SystemExit
elif event.type == LOCK:
self.game.lock(event.x, event.y)
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_b:
BruteForceSolver(self.game).solve()
self.pieceSprites.update(self.game, events)
for sprite in self.pieceSprites:
self.window.blit(sprite.image, sprite.rect)
pygame.display.flip()
sleep(2)
NetGUI(13, 13).run_game()
NetGUI(5, 5).run_game()