Arrr ... ¡Hola, mami! ¡Despliega la vela mayor! Lleno a estribor! ¡Ah, siente el viento en tu cabello!
Bien, sinceros ... ¡Necesito un poco de tus habilidades de codificación! Mi tripulación es un poco más modernizada que yo ... Todavía prefiero los puntos de la brújula (ver aquí para más información, Arrr ...) mientras mi tripulación siempre usa una cabeza ... ¡Quiero una forma fácil de convertir este tonto que llaman cabeza a lo que puedo entender, Arrr!
¡Lo que necesito es un código que esté ingresando un número (los decimales están bien) como ese 0 <= the headin' < 360
y se escupe la respuesta como el punto de compás más cercano! Arrr!
Aquí hay algunos ejemplos:
> heading 0.1
North
> heading 11.25
North by East
> heading 22.7
North Northeast
> heading 44.99
Northeast
> heading 91
East
Ahora, si te estás dando la cabeza de tal manera que caiga exactamente en el medio de dos puntos cardinales, no te preocupes, mi corazón ... Espero que el código salga a la luz. Between <point 1> and <point 2>
, por ejemplo heading 5.625
, dirá Between North and North by East
Esto solo sucederá para un encabezado que satisfaga la ecuación H = 5.625 + 11.25(N)
donde H sea el encabezado y N sea un número entero entre 0 y 31 inclusive ...
Dos restricciones aunque ...
1) No quiero que use matrices para almacenar sus datos para los puntos o la cabeza ... Eso lo engañará, señor, y me probará travesuras ... Esto tiene ¡Se calculará, como en los viejos tiempos! Arrr!
2) El código más corto gana, o te haré caminar por la tabla ... ¡Arrr!
'
(Apostrophe) en una sola pregunta. ¡Felicitaciones! : DRespuestas:
Perl 5.10 usando sustitución,
231228226224Cuatro nuevas líneas agregadas para facilitar la lectura.
Editar: Golfed 2 bytes más usando
pop
. Gracias @Dom HastingsEditar: 2 bytes menos usando
qw()
fuente
Estoy pasando demasiado tiempo en esta búsqueda del tesoro, pero aquí hay una solución en Java :
editar Si minimizo el código anterior y lo hago realmente feo, se convertiría en esto:
Java, 770 caracteres
fuente
aaarrrgs
Arrays.asList
comando, perdóname por mi ignorancia de Java, pero ¿no es eso usar una matriz de almacenamiento? ¿O es esta una forma furtiva de introducir la matriz en forma de lista? ;)switch
declaración en su lugar (con algunos caracteres adicionales, desafortunadamente). Ah, y se agregó una versión condensada del mismo código. Pensaré en reducirlo aún más cambiando realmente cómo funciona.Pitón, 264
Esto usa mayúsculas según la página de wikipedia y debería funcionar para cualquier número.
fuente
Arrr Python, 336
Gracias @Jeen
fuente
Perl 5.10,
262257254Algo similar a una de las soluciones de Python:
Cuatro nuevas líneas agregadas para facilitar la lectura.
Editar: Tres bytes menos gracias a @Dom Hastings
fuente
;
al final desub p
y cambiarshift
apop
.