turtle_hilbert.py
1 import board 2 from adafruit_turtle import turtle 3 4 5 def hilbert2(step, rule, angle, depth, t): 6 if depth > 0: 7 a = lambda: hilbert2(step, "a", angle, depth - 1, t) 8 b = lambda: hilbert2(step, "b", angle, depth - 1, t) 9 left = lambda: t.left(angle) 10 right = lambda: t.right(angle) 11 forward = lambda: t.forward(step) 12 if rule == "a": 13 left() 14 b() 15 forward() 16 right() 17 a() 18 forward() 19 a() 20 right() 21 forward() 22 b() 23 left() 24 if rule == "b": 25 right() 26 a() 27 forward() 28 left() 29 b() 30 forward() 31 b() 32 left() 33 forward() 34 a() 35 right() 36 37 38 turtle = turtle(board.DISPLAY) 39 turtle.penup() 40 turtle.setheading(90) 41 turtle.goto(-80, -80) 42 turtle.pendown() 43 hilbert2(5, "a", 90, 5, turtle) 44 45 while True: 46 pass