Inspirado en este mensaje de chat
Su tarea será tomar una palabra y encontrar la posición promedio de sus letras en el teclado como una letra.
Diseño del teclado
Dado que los diseños varían de un teclado a otro, utilizaremos un estándar basado en mi propio teclado en esta pregunta.
El teclado tiene 3 filas, la fila superior de izquierda a derecha contiene las teclas.
QWERTYUIOP
La segunda fila contiene las letras.
ASDFGHJKL
La fila final contiene
ZXCVBNM
Cada letra es 1 unidad horizontal de su vecino a la izquierda. Esto significa que W
está a 1 de distancia Q
y E
está a 1 de distancia, W
etc.
Las teclas al comienzo de cada fila tienen las posiciones:
Q : 0,0
A : 1/3,1
Z : 2/3,2
Esto significa que las filas se separan una unidad verticalmente y las dos filas inferiores se desplazan un tercio de la fila por encima de ellas.
Debe tomar una palabra como entrada y salida de la letra más cercana a la posición promedio de las letras en su palabra. El promedio de un conjunto de vectores es
(average x value, average y value)
Cuando dos teclas son equidistantes del promedio, puede generarlas como la tecla "más cercana".
Este es el código de golf, por lo que las respuestas se puntuarán en bytes, con menos bytes mejor.
Solución de ejemplo
Calculemos el promedio de APL
.
Convertimos cada letra a un vector
A -> (1/3,1)
P -> (9,0)
L -> (8 1/3,1)
Sumamos estos tres vectores para obtener (17 2/3, 2)
. Luego dividimos cada coordenada por 3 (El número de letras en la palabra) para obtener (5 8/9, 2/3)
.
La carta más cerca (5 8/9, 2/3)
es J
a (6 1/3,1)
lo que nuestro resultado es J
.
Casos de prueba
APL -> J
TEXT -> R
PPCG -> J
QQQQ -> Q
ZZZZ -> Z
PPPP -> P
MMMM -> M
QQSS -> A or W
F
ya no parece ser una salida permitida ...Java (OpenJDK 8) ,
452431424400389324322296285281276274260258257 bytesAlgo para comenzar a jugar golf
Pruébalo en línea!
fuente
TEXT
.Mathematica, 234 bytes
fuente