Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- M = [[1, 0, 0, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 0, 0, 0],
- [0, 0, 1, 1, 0],
- [0, 0, 0, 0, 1]]
- def coords(M): # Цикл: 1)Смотрит, есть ли на этаже хуйня 2)Если есть, пишет номер этажа столько раз, сколько хуёвин там есть 3)Пишет по очереди Х-координаты на этаже
- anything = [any(M[x]) for x in range(len(M))] # Проверяем вложенные списки ("ось Y") на наличие "куска змейки" [True, False...]
- y_s = []; x_s = [] # Создаём списки координат для Oy и Ox соответственно
- for x in range(len(M)): # Забираем индекс оси оординат (соответствующие индексам True в списке anything)
- if anything[x] == True: # Если в списке что-то есть, то:
- a = M[x].count(1) # Берём количество кусков змеи (единиц) 'на этаже'
- fart = M[x].copy() # Создаём копию 'этажа'
- while a != 0: # Итерируем цикл столько раз, сколько кусков змеи на 'этаже'
- y_s.append(x) # Добавляем индекс Y-координаты ('номер этажа') в список y-координат
- x_s.append(fart.index(1)) # Смотрим индекс X-координаты на этаже
- fart[fart.index(1)] = 0 # Добавляем индекс X-координаты в список x-координат, заменяем это в нашей копии на 0, чтобы
- a -= 1 # в следующей итерации индексировать уже следующую переменную
- return list(zip(x_s, y_s)) # Зипуем списки координат
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement