Advertisement
Guest User

Untitled

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