WIP(iterative display): display change for every generation doesn't work

This commit is contained in:
2026-03-27 13:33:45 +01:00
parent 2828e37853
commit 135e13deff
3 changed files with 47 additions and 43 deletions
+16 -10
View File
@@ -1,11 +1,12 @@
import os
from typing import Any, Callable
from typing import Any, Callable, Generator
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:
@@ -22,9 +23,8 @@ class MazeMLX:
self.mlx.mlx_get_data_addr(self.img_ptr)
)
def __del__(self) -> None:
def close(self) -> None:
self.mlx.mlx_destroy_image(self.mlx_ptr, self.img_ptr)
self.mlx.mlx_destroy_window(self.mlx_ptr, self.win_ptr)
def put_pixel(self, x, y) -> None:
offset = y * self.size_line + x * (self.bpp // 8)
@@ -83,10 +83,16 @@ class MazeMLX:
def close_loop(self, _: Any):
self.mlx.mlx_loop_exit(self.mlx_ptr)
self.mlx.mlx_destroy_window(self.mlx_ptr, self.win_ptr)
def gen_maze(self, maze: np.ndarray) -> None:
self.mlx.mlx_loop_hook(self.mlx_ptr, self.update_maze, maze)
self.mlx.mlx_hook(self.win_ptr, 17, 0, self.close_loop, None)
def gen_maze(self, amazing: AMazeIng) -> None:
for _ in amazing.generate():
self.update_maze(amazing.maze.get_maze())
time.sleep(1)
def start(self, amazing: AMazeIng) -> None:
self.mlx.mlx_loop_hook(self.mlx_ptr, self.gen_maze, amazing)
self.mlx.mlx_hook(self.win_ptr, 33, 0, self.close_loop, None)
self.mlx.mlx_loop(self.mlx_ptr)
@@ -96,14 +102,14 @@ def main() -> None:
mlx = MazeMLX(1000, 1000)
config = Parsing.DataMaze.get_data_maze("config.txt")
amazing = AMazeIng(**config)
for _ in amazing.generate():
os.system("clear")
amazing.maze.ascii_print()
mlx.gen_maze(amazing.maze.get_maze())
mlx.start(amazing)
with open("test.txt", "w") as output:
output.write(amazing.__str__())
except Exception as err:
print(err)
finally:
if mlx is not None:
mlx.close()
if __name__ == "__main__":
-2
View File
@@ -129,7 +129,6 @@ class Kruskal(MazeGenerator):
for h in range(height - 1):
for w in range(width):
walls += [(w + (width * h), w + (width * (h + 1)))]
print(walls)
np.random.shuffle(walls)
yield self.walls_to_maze(walls, height, width)
@@ -147,7 +146,6 @@ class Kruskal(MazeGenerator):
len(sets.sets) == 19 and cells_ft is not None
):
break
print(f"nb sets: {len(sets.sets)}")
return self.walls_to_maze(walls, height, width)
+31 -31
View File
@@ -1,34 +1,34 @@
BBBBBB97D397BBBB917BBD15513D17
84684003BAA946AAA854696D3EEBC3
C112D2AC28443D06EAB9103945507A
BEAED283E857C3AD52AEAEAC7D5452
87C53EAEBC393C4154012D29553956
A95147EBAD6AEBB87D2EC386D52853
86D4517AC17C50443B813AABD1443E
EBD1787850513A9506AAEAAC3A93EB
B8543850787EEAAB87EC3EC3C2A852
AEBD443AD4517EC6ED3D2D3EB8687E
838553AC7BD2BD3BBD43EB85069457
EAC57843D2B86D4407D0106943C7BB
D01552B856C4553BC556AC783E97C2
92C7D6C29557F96AFFFD6D16850512
E83D15382D3BFC7857FD39696907EA
BEAD6D46ABC2FFFAFFF96AD2D2C57A
87ABD13BC6D293FAFD50547C3C3D3E
C168128455106EFAFFFABD17EBA907
9056AEC7B92ABBBAD15407ABD2C2C3
EAD1691786E8044296952D06B8147A
BEB87EAD053E87D6ED07812BAE8796
87AAD5412B87C7957BEBEAAC2D07EB
C3C2D55286857905169456E9438796
D07EBBD287A97EAB8507957E944507
96BD0692AD445146C7EBC55503D3AB
C16D2BEAC3D514553D52BD53AE92EA
B8552C12BE97AB952D104796C52E92
C47D016AABC16869456AD5413BAD6A
D113AED2C292D03ED53ABD52800392
D6EC457C7C6C7EC57D446D56EEEC6E
BB93B9793D555157D3BD117D3B9793
C42EAC3EC517BC3BD2856EB9442D2E
D1016D07BBAD2BA852A93D2ABBA92B
BEAC3D450469446ED2C2A92EA80286
87A947BD417C15797ABAC2ED2AEA87
87EC53AD54516D3AB82C7AD3807E87
85397AC3951297AC4283D29468796B
ABC4145007AE87C17AAAD407BED2D2
A8512B9687C7C39412E8114147D47A
A87EEAC78151382D2EBEEAD0553D12
EABD3C17EED2C6AB87C17EBA95696E
9447816D393C3BC2C5387D46C7D297
C179687942C3EC507D6A917D153AC3
D0387EBA92BAF952FFF82C156BAA92
92C41106AEAEFED457FEC7C7D0406A
AEBD6AAD03C3FFFBFFFD155154787E
83AD5687AA9457FAFD5503D6D512BB
EC2917ED6C2B97FAFFFBAE95396AC2
D3C68517B9006D16B95407EBAE9452
D07D6D2B86AABBA946B9697A8787BE
905397C6A96C04407D287878452D03
AC784153EC57C7B83BC4387A9547EA
857EBA92D511392AAC3BAAD2C15156
85392EEED56EC2C6EB86EC16D692BB
EB8285151539143BBAA9796BD16802
942EEBAD03EEA9682C2C54387E96AE
87AD14696C7D687AC56D17845387AB
E96BA91017B952B85153C5057EED6A
D056EEEEA902B846D2D2D5295113BA
D455557D46EEC47D56D47D447EEC46
1,1
29,29
SSEESSEESWSEESSSESSWSWWWWSSESSSWSEENEENESEEEESWSWSEESSSSEEEENNEESEENEEENNWNNWNNEENNENENESEESWSSESSESWSSSSWWSSSEESSESEN
SEESESESWSEESSWSWWWSSSWSESESEEEEENNEESWSSESSESESSEEEENEENEEENNNEEEEENEESSSSWSSWWWSSSWSWSESSSSENEEEESEN