40 lines
1 KiB
Text
40 lines
1 KiB
Text
[ tuck space swap of
|
|
join
|
|
swap split drop echo$ ] is lecho$ ( $ n --> )
|
|
|
|
[ table ] is heading
|
|
|
|
$ "N NbE N-NE NEbN NE NEbE E-NE EbN
|
|
E EbS E-SE SEbE SE SEbS S-SE SbE
|
|
S SbW S-SW SWbS SW SWbW W-SW WbS
|
|
W WbN W-NW NWbW NW NWbN N-NW NbW"
|
|
nest$
|
|
witheach
|
|
[ $ "" swap
|
|
witheach
|
|
[ [ switch
|
|
char N case $ "north"
|
|
char E case $ "east"
|
|
char S case $ "south"
|
|
char W case $ "west"
|
|
char b case $ " by "
|
|
otherwise $ "-" ]
|
|
join ]
|
|
' heading put ]
|
|
|
|
[ 4 45 v* 1 2 v+ / 32 mod heading ] is degrees->compass$ ( n/d --> $ )
|
|
|
|
$ " 0.0 16.87 16.88 33.75 50.62 50.63
|
|
67.5 84.37 84.38 101.25 118.12 118.13
|
|
135.0 151.87 151.88 168.75 185.62 185.63
|
|
202.5 219.37 219.38 236.25 253.12 253.13
|
|
270.0 286.87 286.88 303.75 320.62 320.63
|
|
337.5 354.37 354.38"
|
|
nest$
|
|
witheach
|
|
[ i^ 32 mod 1+
|
|
dup 10 < if sp
|
|
echo sp
|
|
dup $->v drop
|
|
degrees->compass$ 19 lecho$
|
|
echo$ cr ]
|