fork(1) download
  1. def naruto(size):
  2. lines = [size] + sum([[x, x] for x in range(size, 0, -2)], [])
  3. print(lines)
  4.  
  5. def rot90(dx, dy):
  6. return -dy, dx
  7.  
  8. def progress():
  9. vec = (1, 0)
  10. for line in lines:
  11. for _point in range(line):
  12. yield vec
  13. vec = rot90(vec[0], vec[1])
  14.  
  15. field = [[0 for _ in range(size + 1)] for _ in range(size + 1)]
  16. x = y = 0
  17. field[y][x] = 1
  18. for dx, dy in progress():
  19. x += dx
  20. y += dy
  21. field[y][x] = 1
  22. return field
  23.  
  24. for line in naruto(10):
  25. print(line)
  26.  
  27.  
Success #stdin #stdout 0.02s 9156KB
stdin
Standard input is empty
stdout
[10, 10, 10, 8, 8, 6, 6, 4, 4, 2, 2]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1]
[1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1]
[1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 1]
[1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1]
[1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1]
[1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1]
[1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1]
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]