Some help for Lesson 1

to main ; Example for square shapes
cs ht   ; plain cosmetics
setsc 0
setpc 4
pu setxy -70 -70 seth 0 pd
shape 4 140 .45 6
end

to shape :sides :size :fract :level
if :level<1 [stop] ; every recursive program needs a stop rule
repeat :sides[shape :sides :size*:fract :fract :level-1 fd :size rt 360/:sides]
end

Some help for Lesson 2


to main ; An example for pentagonal shape
cs ht setsc 0
setpc 3
pu setxy -25 -30 seth -18 pd
draw 5 50 .33 4 
end

to draw :sides :size :fract :level
if :level<1[stop]
repeat :sides[shape :size :fract rt 360/:sides]
end

to shape :size :fract
fd .5*:size*(1+:fract) rt 180
draw :sides :size*:fract :fract :level-1
rt 180 fd .5*:size*(1-:fract)
end