let gons = 10 let sides = 4 let size = 50 fn randcolor () -> (random(0,255), random(0,255), random(0,255)) fn ngon! (sides, size) -> { repeat sides { fd! (size) rt! (inv(sides)) } :gon! } fn spiralgon_recursive! (num, sides, size) -> { pencolor!(randcolor()) ngon! (sides, size) if gt? (num, 0) then { rt!(inv(gons)) spiralgonr!(dec (num), sides, add(10,size)) } else { :tired! } } & Non recursive version using loop for reference/example & fn spiralgon! (num, sides) -> { & loop (15, 0) with (size, times) -> { & if lt? (times, num) then { & pencolor!(randcolor()) & ngon! (sides, size) & rt! (0.2) & if gt? (times, div (num, 2)) then { & fd! (20) & } else { & back! (200) & } & recur (add (size, 1), inc (times)) & } else :dizzy & } & } spiralgon_recursive!(gons, sides, size)