Заливать питона, решать лабиринт
Возврат индекса из диапазона ошибки, кто-то, пожалуйста, помогите!
def floodfill(maze, x, y, a, b):
#maze[x][y] = b
for i in range(1,len(maze)):
for j in range(len(maze[i])):
if maze[i-1][j] == a or [i][j-1] == a or maze[i-1][j] == b or maze[i][j-1] == b:
if maze[i][j] == a:
maze[i][j] = b
return maze
здесь решается "лабиринт".... заполнение потока должно изменить все 0 на 1
[[-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1],
[0, 0, 0, 0, 0, 0, -1, 0, -1, 0, -1],
[-1, 0, -1, -1, -1, 0, -1, 0, -1, 0, -1],
[-1, 0, -1, 0, 0, 0, -1, 0, -1, 0, -1],
[-1, 0, -1, -1, -1, -1, -1, 0, -1, 0, -1],
[-1, 0, 0, 0, 0, 0, 0, 0, -1, 0, -1],
[-1, 0, -1, -1, -1, -1, -1, -1, -1, 0, -1],
[-1, 0, -1, 0, 0, 0, 0, 0, 0, 0, -1],
[-1, 0, -1, -1, -1, -1, -1, -1, -1, 0, -1],
[-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1]]
1 ответ
В 5-й строке вашего кода, в первой or
просто сказано [i][j-1]
само собой.
>>> i = 9
>>> j = 10
>>> [i][j-1]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
>>>
Вы пытаетесь получить j-1
th значение целого числа i
, который явно не работает:).
Просто положи maze
перед этими двумя, чтобы сделать это: maze[i][j-1]
,