Итак, проблема в следующем.
Я ввожу переменную с именем maze , другую переменную и еще одну переменную, содержащую 2 кортежа , но может содержать больше .
Я хочу это в зависимости от положения 0 и 1 в лабиринте , чтобы вернуть False или True.
Другая переменная состоит из кортежа, в котором 1-й элемент соответствует индексу любого кортежа в лабиринте, а 2-й элемент - индексу внутри этого соответствующего кортежа.
Итак, в основном я пытаюсь сделать так, чтобы индексы в переменной coe_posicoes совпадали с индексами кортежей в лабиринте и индексами внутри него.
Но вместо этого функция возвращает ошибкувместо ответа.
Например:
лабиринт = ((1,0,0), (1,0,1), (0,1,1), (1,0,1)), ((1,1), (5,5))
coe_posicoes = ((1,1), (5,5))
Так в этом примереУ меня есть кортеж лабиринта с 4 кортежами внутри переменной лабиринта.
В 1-м кортеже внутри coe_posicoes "(1,1)" первый 1 соответствует 2-му кортежу внутри лабиринта, который равен "(0,1,1) ", а 2-е 1 соответствует позиции индекса 1, которая также равна 1.
Таким образом, результат должен быть Ложным, а для кортежа (5,5) он также должен быть Ложным, потому что нет ни одного кортежаиндекс 5 и индекс 5 внутри любого кортежа.
А также, если я попытаюсь добавить кортеж в coe_posicoes и заставить его работать как другие, он не будет работать.
maze = ((1,0,0),(1,0,1),(0,1,1),(1,0,1)),((1,1),(5,5))
conj_posicoes = ((1,1),(5,5))
def eh_mapa_valido(maze,conj_posicoes):
if type(maze) != tuple or type(conj_posicoes) != tuple:
raise(ValueError("mapa_str: algum dos argumentos e invalido"))
else:
z = len(maze[0])
for y in maze:
if len(y) < 3 or len(y) != z or len(maze) < 3:
return False
else:
while maze[0][0] != 1:
return False
while maze[len(maze)-1][-1] != 1:
return False
else:
for el in conj_posicoes:
e = conj_posicoes[el][0]
y = conj_posicoes[el][1]
z = conj_posicoes[1][el]
p = conj_posicoes[1][el + 1]
if len(conj_posicoes[0]) != 2 or len(conj_posicoes[1]) != 2 or len(conj_posicoes) < 2 or conj_posicoes[0][0] < 0 or conj_posicoes[0][1] < 0 or conj_posicoes[1][0] < 0 or conj_posicoes[1][1] < 0 or maze[e][y] == 1 or maze[z][p] == 1:
return False
return True
print(eh_mapa_valido(maze,conj_posicoes))
, так что еслилюбой мог бы помочь мне, я был бы признателенэто много.