brute-force
This commit is contained in:
18
src/GUI.py
18
src/GUI.py
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user