28 lines
1.0 KiB
Plaintext
28 lines
1.0 KiB
Plaintext
DIM bearing(32)
|
|
bearing() = 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
|
|
|
|
FOR i% = 0 TO 32
|
|
box% = FNcompassbox(bearing(i%), compass$)
|
|
PRINT ; bearing(i%), ; box%, compass$
|
|
NEXT
|
|
END
|
|
|
|
DEF FNcompassbox(bearing, RETURN box$)
|
|
LOCAL pt%
|
|
pt% = INT(bearing / 360 * 32 + 0.5) MOD 32
|
|
box$ = FNpt(pt%)
|
|
LEFT$(box$,1) = CHR$(ASC(LEFT$(box$,1))-32)
|
|
= pt% + 1
|
|
|
|
DEF FNpt(pt%)
|
|
LOCAL pt$() : DIM pt$(3)
|
|
IF pt% AND 1 THEN = FNpt((pt% + 1) AND 28) + " by " + \
|
|
\ FNpt(((2 - (pt% AND 2)) * 4) + pt% AND 24)
|
|
IF pt% AND 2 THEN = FNpt((pt% + 2) AND 24) + "-" + FNpt((pt% OR 4) AND 28)
|
|
IF pt% AND 4 THEN = FNpt((pt% + 8) AND 16) + FNpt((pt% OR 8) AND 24)
|
|
pt$() = "north", "east", "south", "west"
|
|
= pt$(pt% DIV 8)
|