Заливать питона, решать лабиринт

Возврат индекса из диапазона ошибки, кто-то, пожалуйста, помогите!

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-1th значение целого числа i, который явно не работает:).

Просто положи maze перед этими двумя, чтобы сделать это: maze[i][j-1],

Другие вопросы по тегам