27 lines
1.4 KiB
Text
27 lines
1.4 KiB
Text
Module CheckIt {
|
|
Locale 1033 'change decimal point char to dot.
|
|
Form 80,50 ' set console to 80 characters by 50 lines
|
|
\\ Function heading() get a positive double as degrees and return the compass index (1 for North)
|
|
Function heading(d) {
|
|
d1=d div 11.25
|
|
if d1 mod 3= 1 then d+=5.62 :d1=d div 11.25
|
|
=d1 mod 32 +1
|
|
}
|
|
Dim wind$(1 to 32)
|
|
wind$(1)="North", "North by east", "North-northeast", "Northeast by north", "Northeast"
|
|
wind$(6)="Northeast by east", "East-northeast", "East by north", "East", "East by south", "East-southeast"
|
|
wind$(12)="Southeast by east", "Southeast", "Southeast by south", "South-southeast", "South by east", "South"
|
|
wind$(18)="South by west", "South-southwest", "Southwest by south", "Southwest", "Southwest by west", "West-southwest"
|
|
wind$(24)="West by south", "West", "West by north", "West-northwest", "Northwest by west", "Northwest", "Northwest by north"
|
|
wind$(31)="North-northwest", "North by west"
|
|
oldvalue=-2
|
|
newvalue=2
|
|
Print " angle | box | compass point"
|
|
Print "-------+-----+---------------------"
|
|
For i=0 to 360 step 0.005
|
|
newvalue=heading(i)
|
|
if (newvalue mod 3) =2 then i+=5.62: newvalue=heading(i)
|
|
if oldvalue<>newvalue then Print format$("{0:2:-6}°| {1::-2} | {2}",i, newvalue, wind$(newvalue)) : oldvalue=newvalue : refresh
|
|
Next i
|
|
}
|
|
CheckIt
|