RosettaCodeData/Task/Box-the-compass/Zkl/box-the-compass.zkl
2017-09-25 22:28:19 +02:00

17 lines
540 B
Text

A:=("X N NbE NNE NEbN NE NEbE ENE EbN E EbS ESE " // one based array
"SEbE SE SEbS SSE SbE S SbW SSW SWbS SW SWbW "
"WSW WbS W WbN WNW NWbW NW NWbN NNW NbW").split(" ");
fcn compassBox(d){
return(( ( (d + 360.0 / 64.0) % 360.0) * 32.0 / 360.0).ceil());
}
foreach i in ([0..32]){
heading:=11.25*i;
switch(i%3){ // or heading+=5.62*((i+1).divr(3)[1]-1);
case(1){ heading+=5.62 }
case(2){ heading-=5.62 }
}
box:=compassBox(heading);
println("%6.2f\UB0; : %2d\t%s".fmt(heading,box,A[box]));
}