2026-rff_mp/romanovpv/task 2/docs/data/generate_mazes.py

43 lines
1000 B
Python
Raw Normal View History

2026-05-24 20:53:59 +00:00
import random
def save_maze(filename, width, height, wall_probability):
maze = []
for i in range(height):
row = ""
for j in range(width):
if i == 0 or i == height-1:
row += "#"
elif j == 0 or j == width-1:
row += "#"
else:
if random.random() < wall_probability:
row += "#"
else:
row += " "
maze.append(list(row))
maze[1][1] = "S"
maze[height-2][width-2] = "E"
for i in range(1, height-1):
maze[i][1] = " "
for j in range(1, width-1):
maze[height-2][j] = " "
maze[1][1] = "S"
maze[height-2][width-2] = "E"
with open(filename, "w", encoding="utf-8") as f:
for row in maze:
f.write("".join(row)+"\n")
save_maze(
"medium_maze.txt",
50,
50,
0.30
)
save_maze(
"big_maze.txt",
100,
100,
0.40
)
print("Лабиринты созданы")