# Main Command: Go 4 # Edge by Guy Walker # www.logoarts.co.uk to new # set default screen, pen and turtle ResetAll SetScreenSize [400 400] HideTurtle SetSC Black SetPC Green SetPS 1 PenUp end to edge :order :side If :Order < 0 [Stop] SetX X -:Side/2 SetY Y -:Side/2 # Right Integer 90 *Random 4 # random rotation SetPC Pick [1 2 3 6 9 13 14 15] Run List :Tile :Side SetPC Dark PenColor Fill SetY Y +:Side Edge :Order-1 :Side/2 SetX X +:Side Edge :Order-1 :Side/2 SetY Y -:Side Edge :Order-1 :Side/2 SetX X -:Side/2 SetY Y +:Side/2 end to go :order New Make "Side 192 Repeat 4 [ Wash SetPos [4 4] SetH 0 Make "Tile Word "Tile RepCount Edge :Order :Side-1 Wait 180] end to tile1 :side # quater circle drawn from centre Right 45 Back :Side/1.42 Arch 90 :Side Right 45 Forward :Side PenDown Back :Side Left 90 Forward :Side PenUp Back :Side Right 45 Forward :Side/1.42 Left 45 end to tile2 :side # kite shape Kite :Side end to tile3 :side # lens shape Left 45 Lens 1.41*:Side Right 45 end to tile4 :side # square shape Square :Side # Left 45 Square :Side/1.41 Right 45 # diamond shape end to arch :angle :radius # symmetrical arc drawn relative to turtle heading Arc :Radius Heading-:Angle/2 Heading+:Angle/2 end To Dark :Hue # output rgb list midway between :hue and black Repeat 3 [ Make "Hue ButFirst LPut Int (First :Hue)/2 :Hue] Output :Hue End to kite :size # kite shape drawn from centre (tp) Back :Size/2 Right 90 Back :Size/2 Left 26.6 PenDown Forward 1.12 *:Size PenUp Back 1.12 *:Size Left 36.8 PenDown Forward 1.12 *:Size PenUp Back 1.12 *:Size Left 26.6 Forward :Size Right 90 Forward :Size/2 PenDown Forward :Size/2 Right 90 Forward :Size/2 PenUp Left 90 Back :Size/2 Left 90 # return to centre end to lens :size # lens shape drawn from centre (tp) Repeat 2 [ Back :Size/2 Arch 90 :Size/1.41 Forward :Size/2 Left 180] end to square :side # square (side x side) drawn from centre (tp) Back :Side/2 Right 90 Back :Side/2 PenDown Repeat 4 [ Forward :Side Left 90] PenUp Forward :Side/2 Left 90 Forward :Side/2 # return to centre end