Я пишу код для теста черного ящика для задания. В моей функции входы представляют собой 2d-массив, а int для x и int для y и int для силы зомби. Из моей начальной позиции, если значение элемента меньше, чем сила зомби, я меняю значение элемента на -1. Чем я добираюсь до этих элементов соседей, вверх, вниз, влево и вправо (Не диагонально) и делаю то же самое с ними. Я использую try, кроме, если элемент существует, чем добавляет его в список, если он не перемещается. Из того, что я понимаю с помощью try, не остановится от добавления элемента, которого нет в массиве в списке. Вот почему я не уверен, почему я получаю ошибку индексации, когда я черную коробку проверяю свой код. Входы, которые я добавил, но я не знаю, что вводит тест черного ящика.Не уверен, что вызывает ошибку индекса в моей инструкции if
Here is my code
population = [[9, 3, 4, 5, 4], [1, 6, 5, 8, 9], [2, 3, 7, 3, 2], [4,5,1,4,3], [4, 5, 4, 3, 9]]
x = 2
y = 1
zombie = 5
def answer(population, x, y, zombie):
list = []
list.append([x,y])
while list:
print list
front_of_list = list.pop(0)
x = front_of_list[0]
y = front_of_list[1]
if population[front_of_list[0]][front_of_list[1]] <= zombie and population[front_of_list[0]][front_of_list[1]] >= 0:
population[front_of_list[0]][front_of_list[1]] = -1
if x-1 >=0:
try:
population[x-1][y]
list.append([x-1,y])
except:
pass
if y-1 >= 0:
try:
population[x][y-1]
list.append([x,y-1])
except:
pass
if x+1 < len(population):
try:
population[x+1][y]
list.append([x+1,y])
except:
pass
if y+1 < len(population[0]):
try:
population[x][y+1]
list.append([x,y+1])
except:
pass
answer(population, x, y, zombie)
print population
Какая строка получает ошибку? – Barmar
Скопируйте и вставьте полный ответ в свой вопрос –
Я только что запустил ваш код с помощью python 2.7, и он прошел нормально –