From 8a0fad9a617eafe13fc923eae9194847e0ee4114 Mon Sep 17 00:00:00 2001 From: Jan BELLON Date: Sun, 3 Mar 2024 00:25:16 +0000 Subject: [PATCH] Update 3 files - /images/solved/Maze_1.png - /images/Maze_1.png - /generator.py --- generator.py | 27 +++++++++++++-------------- images/Maze_1.png | Bin 0 -> 16215 bytes images/solved/Maze_1.png | Bin 0 -> 17722 bytes 3 files changed, 13 insertions(+), 14 deletions(-) create mode 100644 images/Maze_1.png create mode 100644 images/solved/Maze_1.png diff --git a/generator.py b/generator.py index ec1dad7..2da9ad5 100644 --- a/generator.py +++ b/generator.py @@ -10,7 +10,8 @@ os.system('cls' if os.name == 'nt' else 'clear') folder = os.getcwd() -map_size = input("Maze size : ") +maze_size = input("Maze size : ") +maze_name = input("Maze ID : ") wall_thickness = 3 # in pixels @@ -19,8 +20,8 @@ image_size = (1920, 1080) wall_list = [[],[]] for i in wall_list: - for x in range(1, round(map_size) + 1): - for y in range(1, round(map_size) + 1): + for x in range(1, round(maze_size) + 1): + for y in range(1, round(maze_size) + 1): i.append((x, y)) image = Image.new( @@ -29,11 +30,11 @@ image = Image.new( color = (255,255,255) ) -padding = 2 * image_size[1] / map_size +padding = 2 * image_size[1] / maze_size -pixel_size = round((image_size[1] - padding * 2) / map_size) +pixel_size = round((image_size[1] - padding * 2) / maze_size) -maze_pict = map_size * pixel_size +maze_pict = maze_size * pixel_size draw = ImageDraw.Draw(image) @@ -48,17 +49,15 @@ closed_list = [] path = {} -print(f"Map size : {map_size} x {map_size}") - -map_Name = input("Map Number : ") +print(f"maze size : {maze_size} x {maze_size}") time.sleep(2) def build_grid(x, y): - for n in range(map_size): + for n in range(maze_size): x = 1 y += 1 - for m in range(map_size): + for m in range(maze_size): grid.append((x, y)) x += 1 @@ -177,7 +176,7 @@ draw.rectangle( ) print("Maze successfully generated") -image.save(f"{folder}/images/Maze_{map_Name}.png") +image.save(f"{folder}/images/Maze_{maze_name}.png") def Path_tracker(x, y): position_x = x * pixel_size + decalage + 1 @@ -196,6 +195,6 @@ def path_tracer(x, y): x, y = path[x, y] Path_tracker(x,y) -path_tracer(map_size, map_size) +path_tracer(maze_size, maze_size) -image.save(f"{folder}/images/solved/Maze_{map_Name}.png") \ No newline at end of file +image.save(f"{folder}/images/solved/Maze_{maze_name}.png") \ No newline at end of file diff --git a/images/Maze_1.png b/images/Maze_1.png new file mode 100644 index 0000000000000000000000000000000000000000..ede27008de57258ae26c0e5594f931c6d923f2ad GIT binary patch literal 16215 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 literal 0 HcmV?d00001