Desafío
Dada la entrada en la forma <n1>, <n2>
en que el número puede ser -1, 0 o 1, devuelve la dirección cardinal correspondiente . Los números positivos se mueven hacia el este en el eje xy hacia el sur en el eje y, los números negativos se mueven hacia el oeste en el eje xy hacia el norte en el eje y.
Salida debe ser en forma South East
, North East
, North
. Es sensible a mayúsculas y minúsculas.
Si la entrada es 0, 0, su programa debe regresar That goes nowhere, silly!
.
Entrada / muestra de muestra:
1, 1
-> South East
0, 1
-> South
1, -1
-> North East
0, 0
-> That goes nowhere, silly!
Este es el código de golf , gana la respuesta más corta en bytes.
code-golf
string
kolmogorov-complexity
Matias K
fuente
fuente
Respuestas:
Japt ,
5551 bytesExplicación
Pruébalo en línea!
fuente
Python,
10187 bytesSolución realmente ingenua.
¡Gracias a @Lynn por guardar 14 bytes! Cambios: el uso del método string.split en realidad lo hace más largo; _; Y también, existen índices negativos en python.
fuente
lambda x,y:('','South ','North ')[y]+('','East','West')[x]or'That goes nowhere, silly!'
lambda x,y:'North htuoS'[::x][:6]+'EastseW'[::y][:4]
Editar: es probable que ahora sea demasiado largo, pero puedes hacer el segundo corte[:6*x**2]
, del mismo modo para la cadena Este / Oeste, si puede evitar el error en el primer corte.lambda x,y:('North ','South ')[y+1]+('West','East')[x+1]or'That goes nowhere, silly!'
es más corto en 2 bytesSouth East
por(0, 0)
. ¡Gracias de cualquier forma!PHP, 101 bytes
fuente
Perl 6 , 79 bytes
Intentalo
Expandido:
fuente
JavaScript (ES6),
1061009793 bytesEs un enfoque muy simple. Consiste en unos pocos operadores ternarios anidados juntos:
Casos de prueba
fuente
a!=0
puede reemplazarse por justa
, ya que 0 es falso y todos los demás valores son verdaderos. Además, tomar la entrada en la sintaxis de curry es más corto, y el enfoque de matriz también es más corto.f=a=>b=>
y llamando a la función comof(1729)(1458)
; que es locurrying syntax
que mencionó @Luke.a|b
lugar dea||b
. Suponiendo que la entrada solo consta de -1, 0 o 1 (que no está claro para mí), podría reemplazara>0
yb>0
con~a
y~b
.a?(...):""
/b?(...):""
Lote, 156 bytes
El
for
bucle actúa como una tabla de búsqueda para filtrar cuando el parámetro (posiblemente negado) es igual a -1 y concatena las palabras coincidentes. Si no se selecciona nada, se imprime el mensaje tonto.fuente
JavaScript (ES6), 86 bytes
Explicación
Llámalo con sintaxis curry (
f(a)(b)
). Esto usa índices de matriz. Si ambosa
yb
son 0, el resultado es una cadena vacía falsa. En ese caso, la cadena después de la||
se devuelve .Intentalo
Pruebe todos los casos de prueba aquí:
fuente
GNU sed , 100 + 1 (r flag) = 101 bytes
Por diseño, sed ejecuta el script tantas veces como haya líneas de entrada, por lo que uno puede hacer todos los casos de prueba en una ejecución, si es necesario. El siguiente enlace de TIO hace exactamente eso.
Pruébalo en línea!
Explicación:
El espacio de patrón restante al final de un ciclo se imprime implícitamente.
fuente
05AB1E ,
484543 bytesPruébalo en línea!
Explicación
fuente
Jalea , 40 bytes
Pruébalo en línea!
fuente
Japt , 56 bytes
Pruébalo en línea! El | Banco de pruebas
Explicación:
fuente
00
es exactamente lo mismo0
, ya que se elimina el dígito adicional;)Retina ,
848281 bytes1 byte guardado gracias a @seshoumara por sugerir en
0...?
lugar de0\w* ?
Pruébalo en línea!
fuente
Nor
ySou
)0...?
.Swift 151 bytes
fuente
PHP, 95 bytes.
Esto simplemente muestra el elemento de la matriz y, si no hay nada, solo muestra el mensaje "predeterminado".
Está destinado a ejecutarse con la
-r
bandera, recibiendo las coordenadas como los argumentos primero y segundo.fuente
C # ,
95102 bytesGolfed
Sin golf
Legible sin golf
Código completo
Lanzamientos
+ 7 bytes
- Fragmento envuelto en una función.95 bytes
- Solución inicial.Notas
Soy un fantasma, boo!
fuente
(a,b)=>{...}
bita=>b=>
, podría no necesitar la()
vuelta de laa|b
, es posible que pueda utilizar cadenas interpolados para obtener la cadena construye más bonito así()
todo el mundoa|b
, lo necesito, de lo contrarioOperator '|' cannot be applied to operands of type 'int' and 'bool'
. También probé las cadenas interpoladas, pero no di mucho debido a""
que me dieron errores.Scala, 107 bytes
Pruébalo en línea
Para usar esto, declare esto como una función y llámelo:
Cómo funciona
fuente
C, 103 bytes
fuente
Java 7, 130 bytes
Explicación:
Código de prueba:
Pruébalo aquí.
Salida:
fuente
CJam , 68 bytes
Pruébalo en línea! o verificar todos los casos de prueba
Imprime un espacio final en
[0 -1]
o[0 1]
(North
oSouth
).Explicación
fuente
Röda , 100 bytes
Pruébalo en línea!
Esta es una solución trivial, similar a algunas otras respuestas.
fuente