Итак, сначала вам нужно понять используемые структуры данных: path
- это массив numpy из shape (path length, 2)
и содержит список позиций x
и y
(пикселей на изображении).
path[0]
дает вам first node
пути path[-1]
last node
. path[i][0]
дает вам x
координату node i
path[i][1]
дает вам y
координату node i
.
board
является массивом numpy с формой (rows, columns)
и содержит все пиксели лабиринта.
Первый l oop посещает каждую пару (x, y)
пути и устанавливает цвет для этих пикселей красный:
for (x, y) in path: #
maze.board[x][y] = constants.RED
# Example path around a 3x3 square
path = np.array([[1, 1], # right
[2, 1],
[3, 1], # up
[3, 2],
[3, 3], # left
[2, 3],
[1, 3], # down
[1, 2],
[1, 1]]) # back at the start
# (1,3) <-- (3, 3)
# | |
# | |
# (1,1) --> (3, 1)
Последние две строки функции устанавливают синий цвет для начала и целевого узла.
maze.board[path[0][0], path[0][1]] = constants.BLUE
maze.board[path[-1][0], path[-1][1]] = constants.BLUE
Впоследствии board
используется для рисования изображения с черными стенами, красной дорожкой, синим цветом начала и цели.