/ examples / turtle_hilbert.py
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