Алгоритм створення лабіринту: відмінності між версіями
[неперевірена версія] | [неперевірена версія] |
Вилучено вміст Додано вміст
+Категорія:Алгоритми на графах; +Категорія:Види графів; +Категорія:Лабіринти; +Категорія:Стохастичні моделі за допомогою HotCat, вікіфікація, оформлення, правопис, шаблон |
|||
Рядок 139:
def maze(width=81, height=51, complexity=.75, density=.75):
# Тільки непарні форми
shape = ((height // 2) * 2 + 1, (width // 2) * 2 + 1)
# Відрегулюємо складність і щільність щодо розміру лабіринту
complexity = int(complexity * (5 * (shape[0] + shape[1]))) #
density = int(density * ((shape[0] // 2) * (shape[1] // 2))) #
# Побудуємо справжній лабіринт
Z = numpy.zeros(shape, dtype=bool)
# Заповнюємо кордони
Z[0, :] = Z[-1, :] = 1
Z[:, 0] = Z[:, -1] = 1
# Зробимо проходи
for i in range(density):
x, y = rand(0, shape[1] // 2) * 2, rand(0, shape[0] // 2) * 2 #
Z[y, x] = 1
for j in range(complexity):
|