ludus-scripts/binary_tree.ld

49 lines
649 B
Plaintext
Raw Normal View History

& Example 2: fractal (binary) tree
& from https://en.wikipedia.org/wiki/L-system
box states = []
fn push! () -> {
2024-11-03 22:32:15 +00:00
update! (states, append (_, unbox (turtle_state)))
}
fn pop! () -> {
let state = do states > unbox > last
update! (states, butlast)
penup! ()
2024-11-03 22:32:15 +00:00
loadstate! (state)
}
fn branch! () -> {
2024-11-03 22:32:15 +00:00
pc! (colors :green)
pw! (4)
fd! (20)
}
fn one! {
(0) -> {
branch! ()
}
(n) -> {
one! (dec (n))
one! (dec (n))
}
}
fn zero! {
(0) -> branch! ()
(n) -> {
one! (dec (n))
push! ()
lt! (inv (10))
zero! (dec (n))
pop! ()
rt! (inv (10))
zero! (dec (n))
}
}
zero! (7)
hideturtle! ()