#一筆描き
from turtle import *
import time
from random import seed, random

def turn(d):
  if d: left(90)
  else: right(90)

def draw(n, d, s):
  '''n:depth, d:direction (True:left, False:right), s:step'''
  if n == 0:
    return
  elif (n % 2):
    draw(n - 1, ~d, s); forward(s); turn(d)
    draw(n - 1, d, s); forward(s); draw(n - 1, d, s)
    turn(d); forward(s); draw(n - 1, ~d, s)
  else:
    color((.25 + random() / 2.0, .25 + random() / 2.0, .25 + random() / 2.0))
    draw(n - 1, ~d, s); turn(d); forward(s); draw(n - 1, d, s)
    turn(~d); forward(s); turn(~d)
    draw(n - 1, d, s); forward(s); turn(d); draw(n - 1, ~d, s)

if __name__ == '__main__':
  # demo(); time.sleep(1); goto((0, 0)); clear()
  seed(None)
  for n in xrange(1, 13):
    tracer(True if n < 5 else False)
    up(); goto((-30 * n, -30 * n)); write('depth=%d' % n, True); down();
    if n % 2: left(90)
    draw(n, False, (24 / n) if n < 8 else 2 if n < 9 else 1);
    time.sleep(3); reset()