Types/Turtle/MooreCurve.ps1

<#
.SYNOPSIS
    Generates a Moore curve.
.DESCRIPTION
    Generates a Moore curve using turtle graphics.
.LINK
    https://en.wikipedia.org/wiki/Moore_curve
.EXAMPLE
    turtle id moore1 moorecurve 42 1
.EXAMPLE
    turtle id moore2 moorecurve 42 2
.EXAMPLE
    turtle id moore3 moorecurve 42 3
.EXAMPLE
    turtle id moore4 moorecurve 42 4
.EXAMPLE
    Move-Turtle MooreCurve 15 5 |
        Set-Turtle Stroke '#4488ff' |
        Save-Turtle "./MooreCurve.svg"
#>

param(
[double]$Size = $(
    (Get-Random -Min 42 -Max 84) * (1,-1 |Get-Random)
),
[int]$Order = (3,4 | Get-Random),
[double]$Angle = 90
)        


return $this.LSystem(
    'LFL+F+LFL', 
    [Ordered]@{ 
        L = '-RF+LFL+FR-'
        R = '+LF-RFR-FL+'
    },
    $Order,
    @{
        F = { $this.Forward($Size) }
        '\+' = { $this.Rotate(90) }            
        '-' = { $this.Rotate(-90) }
    }
)