mirror of
https://github.com/maoakeEnterprise/amazing.git
synced 2026-04-28 16:04:35 +02:00
WIP(iterative display): display change for every generation doesn't work
This commit is contained in:
+16
-10
@@ -1,11 +1,12 @@
|
|||||||
import os
|
import os
|
||||||
from typing import Any, Callable
|
from typing import Any, Callable, Generator
|
||||||
from src.AMazeIng import AMazeIng
|
from src.AMazeIng import AMazeIng
|
||||||
from src.parsing import Parsing
|
from src.parsing import Parsing
|
||||||
from mlx.mlx import Mlx
|
from mlx.mlx import Mlx
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import math
|
import math
|
||||||
from src.amaz_lib import Maze
|
from src.amaz_lib import Maze
|
||||||
|
import time
|
||||||
|
|
||||||
|
|
||||||
class MazeMLX:
|
class MazeMLX:
|
||||||
@@ -22,9 +23,8 @@ class MazeMLX:
|
|||||||
self.mlx.mlx_get_data_addr(self.img_ptr)
|
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_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:
|
def put_pixel(self, x, y) -> None:
|
||||||
offset = y * self.size_line + x * (self.bpp // 8)
|
offset = y * self.size_line + x * (self.bpp // 8)
|
||||||
@@ -83,10 +83,16 @@ class MazeMLX:
|
|||||||
|
|
||||||
def close_loop(self, _: Any):
|
def close_loop(self, _: Any):
|
||||||
self.mlx.mlx_loop_exit(self.mlx_ptr)
|
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:
|
def gen_maze(self, amazing: AMazeIng) -> None:
|
||||||
self.mlx.mlx_loop_hook(self.mlx_ptr, self.update_maze, maze)
|
for _ in amazing.generate():
|
||||||
self.mlx.mlx_hook(self.win_ptr, 17, 0, self.close_loop, None)
|
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)
|
self.mlx.mlx_loop(self.mlx_ptr)
|
||||||
|
|
||||||
|
|
||||||
@@ -96,14 +102,14 @@ def main() -> None:
|
|||||||
mlx = MazeMLX(1000, 1000)
|
mlx = MazeMLX(1000, 1000)
|
||||||
config = Parsing.DataMaze.get_data_maze("config.txt")
|
config = Parsing.DataMaze.get_data_maze("config.txt")
|
||||||
amazing = AMazeIng(**config)
|
amazing = AMazeIng(**config)
|
||||||
for _ in amazing.generate():
|
mlx.start(amazing)
|
||||||
os.system("clear")
|
|
||||||
amazing.maze.ascii_print()
|
|
||||||
mlx.gen_maze(amazing.maze.get_maze())
|
|
||||||
with open("test.txt", "w") as output:
|
with open("test.txt", "w") as output:
|
||||||
output.write(amazing.__str__())
|
output.write(amazing.__str__())
|
||||||
except Exception as err:
|
except Exception as err:
|
||||||
print(err)
|
print(err)
|
||||||
|
finally:
|
||||||
|
if mlx is not None:
|
||||||
|
mlx.close()
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|||||||
@@ -129,7 +129,6 @@ class Kruskal(MazeGenerator):
|
|||||||
for h in range(height - 1):
|
for h in range(height - 1):
|
||||||
for w in range(width):
|
for w in range(width):
|
||||||
walls += [(w + (width * h), w + (width * (h + 1)))]
|
walls += [(w + (width * h), w + (width * (h + 1)))]
|
||||||
print(walls)
|
|
||||||
np.random.shuffle(walls)
|
np.random.shuffle(walls)
|
||||||
|
|
||||||
yield self.walls_to_maze(walls, height, width)
|
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
|
len(sets.sets) == 19 and cells_ft is not None
|
||||||
):
|
):
|
||||||
break
|
break
|
||||||
print(f"nb sets: {len(sets.sets)}")
|
|
||||||
return self.walls_to_maze(walls, height, width)
|
return self.walls_to_maze(walls, height, width)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,34 +1,34 @@
|
|||||||
BBBBBB97D397BBBB917BBD15513D17
|
BB93B9793D555157D3BD117D3B9793
|
||||||
84684003BAA946AAA854696D3EEBC3
|
C42EAC3EC517BC3BD2856EB9442D2E
|
||||||
C112D2AC28443D06EAB9103945507A
|
D1016D07BBAD2BA852A93D2ABBA92B
|
||||||
BEAED283E857C3AD52AEAEAC7D5452
|
BEAC3D450469446ED2C2A92EA80286
|
||||||
87C53EAEBC393C4154012D29553956
|
87A947BD417C15797ABAC2ED2AEA87
|
||||||
A95147EBAD6AEBB87D2EC386D52853
|
87EC53AD54516D3AB82C7AD3807E87
|
||||||
86D4517AC17C50443B813AABD1443E
|
85397AC3951297AC4283D29468796B
|
||||||
EBD1787850513A9506AAEAAC3A93EB
|
ABC4145007AE87C17AAAD407BED2D2
|
||||||
B8543850787EEAAB87EC3EC3C2A852
|
A8512B9687C7C39412E8114147D47A
|
||||||
AEBD443AD4517EC6ED3D2D3EB8687E
|
A87EEAC78151382D2EBEEAD0553D12
|
||||||
838553AC7BD2BD3BBD43EB85069457
|
EABD3C17EED2C6AB87C17EBA95696E
|
||||||
EAC57843D2B86D4407D0106943C7BB
|
9447816D393C3BC2C5387D46C7D297
|
||||||
D01552B856C4553BC556AC783E97C2
|
C179687942C3EC507D6A917D153AC3
|
||||||
92C7D6C29557F96AFFFD6D16850512
|
D0387EBA92BAF952FFF82C156BAA92
|
||||||
E83D15382D3BFC7857FD39696907EA
|
92C41106AEAEFED457FEC7C7D0406A
|
||||||
BEAD6D46ABC2FFFAFFF96AD2D2C57A
|
AEBD6AAD03C3FFFBFFFD155154787E
|
||||||
87ABD13BC6D293FAFD50547C3C3D3E
|
83AD5687AA9457FAFD5503D6D512BB
|
||||||
C168128455106EFAFFFABD17EBA907
|
EC2917ED6C2B97FAFFFBAE95396AC2
|
||||||
9056AEC7B92ABBBAD15407ABD2C2C3
|
D3C68517B9006D16B95407EBAE9452
|
||||||
EAD1691786E8044296952D06B8147A
|
D07D6D2B86AABBA946B9697A8787BE
|
||||||
BEB87EAD053E87D6ED07812BAE8796
|
905397C6A96C04407D287878452D03
|
||||||
87AAD5412B87C7957BEBEAAC2D07EB
|
AC784153EC57C7B83BC4387A9547EA
|
||||||
C3C2D55286857905169456E9438796
|
857EBA92D511392AAC3BAAD2C15156
|
||||||
D07EBBD287A97EAB8507957E944507
|
85392EEED56EC2C6EB86EC16D692BB
|
||||||
96BD0692AD445146C7EBC55503D3AB
|
EB8285151539143BBAA9796BD16802
|
||||||
C16D2BEAC3D514553D52BD53AE92EA
|
942EEBAD03EEA9682C2C54387E96AE
|
||||||
B8552C12BE97AB952D104796C52E92
|
87AD14696C7D687AC56D17845387AB
|
||||||
C47D016AABC16869456AD5413BAD6A
|
E96BA91017B952B85153C5057EED6A
|
||||||
D113AED2C292D03ED53ABD52800392
|
D056EEEEA902B846D2D2D5295113BA
|
||||||
D6EC457C7C6C7EC57D446D56EEEC6E
|
D455557D46EEC47D56D47D447EEC46
|
||||||
|
|
||||||
1,1
|
1,1
|
||||||
29,29
|
29,29
|
||||||
SSEESSEESWSEESSSESSWSWWWWSSESSSWSEENEENESEEEESWSWSEESSSSEEEENNEESEENEEENNWNNWNNEENNENENESEESWSSESSESWSSSSWWSSSEESSESEN
|
SEESESESWSEESSWSWWWSSSWSESESEEEEENNEESWSSESSESESSEEEENEENEEENNNEEEEENEESSSSWSSWWWSSSWSWSESSSSENEEEESEN
|
||||||
|
|||||||
Reference in New Issue
Block a user