def naruto(size): lines = [size] + sum([[x, x] for x in range(size, 0, -2)], []) print(lines) def rot90(dx, dy): return -dy, dx def progress(): vec = (1, 0) for line in lines: for _point in range(line): yield vec vec = rot90(vec[0], vec[1]) field = [[0 for _ in range(size + 1)] for _ in range(size + 1)] x = y = 0 field[y][x] = 1 for dx, dy in progress(): x += dx y += dy field[y][x] = 1 return field for line in naruto(10): print(line)
Standard input is empty
[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]