diff --git a/Makefile b/Makefile index 42a2781..258d000 100644 --- a/Makefile +++ b/Makefile @@ -32,3 +32,5 @@ run_test_maze_gen: PYTHONPATH=src uv run pytest tests/test_MazeGenerator.py run_test: uv run pytest +mlx: + uv run python3 test.py diff --git a/a_maze_ing.py b/a_maze_ing.py index ad0e074..b451b16 100644 --- a/a_maze_ing.py +++ b/a_maze_ing.py @@ -1,12 +1,9 @@ -import os -from typing import Any, Callable, Generator +from typing import Any from src.AMazeIng import AMazeIng from src.parsing import Parsing from mlx.mlx import Mlx import numpy as np import math -from src.amaz_lib import Maze -import time class MazeMLX: @@ -15,6 +12,7 @@ class MazeMLX: self.height = height self.width = width self.mlx_ptr = self.mlx.mlx_init() + self.generator = None self.win_ptr = self.mlx.mlx_new_window( self.mlx_ptr, width, height, "amazing" ) @@ -37,6 +35,7 @@ class MazeMLX: def clear_image(self) -> None: self.buf[:] = b"\x00" * len(self.buf) + self.mlx.mlx_clear_window(self.mlx_ptr, self.win_ptr) def put_line(self, start: tuple[int, int], end: tuple[int, int]) -> None: sx, sy = start @@ -77,24 +76,28 @@ class MazeMLX: if maze[y][x].get_west(): self.put_line((x0, y0), (x0, y1)) self.mlx.mlx_put_image_to_window( - self.mlx_ptr, self.win_ptr, self.img_ptr, 0, 0) + self.mlx_ptr, self.win_ptr, self.img_ptr, 0, 0) def close_loop(self, _: Any): self.mlx.mlx_loop_exit(self.mlx_ptr) def gen_maze(self, amazing: AMazeIng) -> None: - for output in amazing.generate(): - maze = output - maze.ascii_print() - self.clear_image() - self.update_maze(amazing.maze.get_maze()) + self.generator = amazing.generate() def start(self, amazing: AMazeIng) -> None: - test = self.gen_maze(amazing) - # self.mlx.mlx_loop_hook(self.mlx_ptr, test, amazing) + self.gen_maze(amazing) + self.mlx.mlx_loop_hook(self.mlx_ptr, self.render, amazing) self.mlx.mlx_hook(self.win_ptr, 33, 0, self.close_loop, None) self.mlx.mlx_loop(self.mlx_ptr) + def render(self, amazing: AMazeIng): + try: + next(self.generator) + self.update_maze(amazing.maze.get_maze()) + # time.sleep(0.01) + except StopIteration: + pass + def main() -> None: mlx = None diff --git a/config.txt b/config.txt index 8c6d50d..5d7e0a5 100644 --- a/config.txt +++ b/config.txt @@ -1,8 +1,8 @@ -WIDTH=15 -HEIGHT=15 +WIDTH=20 +HEIGHT=20 ENTRY=1,1 EXIT=2,2 OUTPUT_FILE=maze.txt -PERFECT=True +PERFECT=False GENERATOR=DFS SOLVER=AStar diff --git a/src/amaz_lib/Maze.py b/src/amaz_lib/Maze.py index 6ab8121..dccd0c6 100644 --- a/src/amaz_lib/Maze.py +++ b/src/amaz_lib/Maze.py @@ -1,8 +1,6 @@ from dataclasses import dataclass import numpy -from .Cell import Cell -from .MazeGenerator import MazeGenerator @dataclass diff --git a/test.txt b/test.txt index 2abf10a..e42df81 100644 --- a/test.txt +++ b/test.txt @@ -1,19 +1,24 @@ -D39393951579553 -BAAC6AE96956952 -AAA97C383C396D2 -86AC156E83AC53E -A943C553EC453C3 -AE96FB96FFFBC3A -C56BFC4157FA96A -9516FFFAFFF86BA -C3C513FAFD52D2A -94796AFAFFFA92A -A93C3ABC3D546EA -AAA96C2BC555552 -EA8693C43B91796 -96E96A93C6AC3AB -C5547C6C5547C46 +B9153957955513953953 +AEA96A9569792C6BAAD6 +C5443AA9169281102C53 +95556A82816C2AC2A952 +A93916A86A956C3A86D6 +AEC6C542944513806953 +C395553AC393C2AC787A +BC69512C7AAC56855692 +A952BAAF96AFFFAD53AE +A810686FC5057FC516C3 +AAC4543FFFAFFFB96952 +AC5553817FAFD52ABC3A +815552843FEFFF80296A +AC553A85413D55406C12 +C53BAAC392C3953C13AA +9386AC386A9683C56AAA +846903AE96C568517C2A +AD3A82C385397C3C5546 +C12AA87AA94293AD5513 +D46C6C5446D46C45556E 1,1 2,2 -ES +SSEEENENWWWS