2026-rff_mp/SobolevNS/docs/data/task2_maze/generate_weighted_choice.py

20 lines
797 B
Python
Raw Normal View History

2026-05-22 10:45:29 +00:00
"""generate_weighted_choice.py - создаёт лабиринт, где Dijkstra/A* реально
обходят 'болото' и находят более дешёвый путь, чем BFS."""
W, H = 21, 13
grid = [[' '] * W for _ in range(H)]
# периметр
for x in range(W):
grid[0][x] = '#'; grid[H-1][x] = '#'
for y in range(H):
grid[y][0] = '#'; grid[y][W-1] = '#'
# центральное болото 5х5 (вес 3)
for y in range(4, 9):
for x in range(8, 13):
grid[y][x] = '~'
# старт слева в центре, выход справа в центре
grid[H//2][1] = 'S'
grid[H//2][W-2] = 'E'
with open('mazes/weighted_choice.txt','w') as f:
f.write('\n'.join(''.join(row) for row in grid) + '\n')
print(open('mazes/weighted_choice.txt').read())