def draw_line (size, side, x, y, spiral):
  for i in range(size):
      #top
      if side == 0:
          spiral[x][y+i] = '*'
      #right
      elif side == 1:
          spiral[x+i][y+size] = '*'
      #bottom
      elif side == 2:
          spiral[x+size][y+i] = '*'
      #left
      elif side == 3:
          spiral[x+i][y] = '*'

def print_spiral(spiral, size):
  for row in spiral:
    print ''.join(row)

def spiral(size):
  #build spiral
  spiral = [[' ']*size for _ in xrange(size)]
  #keep track of current square stats
  currentsize = size
  side = 0
  x = 0
  y = 0
  while currentsize > 0:
      draw_line(currentsize, side, x, y, spiral)
      currentsize -= 1
      side += 1
      if side == 1:
        x += 1
      elif side == 2:
        y += 1
      elif side == 3:
        x += 1
      else:
        side = 0
        y += 1

  print_spiral(spiral, size)

#test
# spiral(5)
# spiral(2)
# spiral(3)
# spiral(4)
# spiral(6)
# spiral(12)

results matching ""

    No results matching ""