forked from UNN/2026-rff_mp
20 lines
797 B
Python
20 lines
797 B
Python
|
|
"""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())
|