Reto:
Cree una función o programa que tomará una entrada N (un número de 0 a 24) que representa la HORA.
La salida debería extraer un reloj analógico de asteriscos que muestre la hora N.
🕛🕐🕑🕒🕓🕔🕕🕖🕗🕘🕙🕚🕛🕐🕑🕒🕓🕔🕕🕖🕗🕘🕙🕚🕛
Notas:
• La manecilla de minutos debe ser más larga que la manecilla de hora (en términos de número de asteriscos utilizados)
• El minutero debe tener al menos 2 asteriscos.
• Mediodía, 3pm, 6pm y 9pm siempre serán ortogonales. Su producción para horas intermedias, cuando se organizan por grados, debe estar en el mismo orden que las horas del día. Lo que quiero decir es al mediodía la aguja de las horas es 0º y en la mano 15:00 horas es de 90º por lo que para los casos de salida de la 1 pm y 2 pm el siguiente debe ser verdad: 0pm_deg < 1pm_deg < 2pm_deg < 3pm_deg
. Además de esta regla, la cantidad de grados real puede ser lo que usted decida, obviamente cambiará dependiendo de la fuente y otros factores nativos.
• La unión de conexión entre la manecilla de hora y la manecilla de minutos es un carácter unicode circular / ovalado de cualquier tipo. o, O, •, 0, etc.
Ejemplo de entrada / salida (puede variar según los estilos de dibujo)
N = 3;
*
*
*
O * *
N = 4;
*
*
*
O
*
*
N = 5;
*
*
*
0
*
*
N = 6;
*
*
o
*
N = 7;
*
*
*
•
*
*
N = 0,12,24;
*
*
*
o
Ejemplo de salidas diferenciadoras:
N = 4 VS N = 5 VS N = 6
* * *
* * *
O O O
* * *
Este es el código de golf , por lo que gana el programa con el bytecount más corto.
3
ser de un tamaño diferente que el minutero7
?23:00
es11:00
. En mi mente, estaba tratando de regresar nuevamente a la mano 12Respuestas:
Javascript (ES6),
1057665 bytes-29 bytes:
-11 bytes:
y==(N%12).toString(16)?'*':' '
->'0x'+y^N%12?' ':'*'
Original con manos más largas: (
10594 bytes)fuente
CSS / HTML (JavaScript), 62 + 106 =
180168 bytesEditar: Guardado 9 bytes gracias a @nderscore.
fuente
<body onload=f(prompt())>
<input oninput=h.style.transform=`rotate(${this.value*30}deg)`>
Python 2 ,
148140135 bytes-8 eliminando algunos espacios sobrantes y una nueva línea innecesaria.
-5 cambiando
(' ','*')
a' *'
Pruébalo en línea!
fuente
C (gcc) , 144 bytes
Pruébalo en línea!
fuente
SmileBASIC,
908874 bytesSalida de ejemplo:
fuente
Python 3 ,
8685 bytes-1 byte, mejor esfera del reloj (crédito DuctrTape, como se usa en mi respuesta Jelly)
Pruébalo en línea!
fuente
Jalea ,
35 3433 bytesPruébalo en línea! (
tI©
!) o ver todo (0 - 24) .¿Cómo?
Tenga en cuenta que
“ tI©’Œ?Ḋ
(permutación en el índice, dequeued) es un byte save over“9ȧỤ_ÑḶ’b⁴
(base 16 de), que es un byte save over“¦þxṙ<ȥ’ḃ13
(base biyectiva 13 de).†
Con respecto al pop: tenemos un espacio adicional en la cadena, que es donde irá el asterisco para 0, 12, 24 para permitir la indexación mod-12 de la lista de índices, sacando el último carácter de allí es byte-más barato que haciendo la concatenación de“**o”
antemano y sobrescribiendo uno de esos asteriscos.‡
Con respecto a la rotación: este es un byte guardado sobre la construcción de una cadena con el "** o" en el medio (ya sea antes o después de la colocación del asterisco).fuente
Haskell, 148 bytes
La función c es la que resuelve la tarea dada
fuente
Bash + Unix utilities, 57 bytes
(Hay un espacio después de la barra invertida final).
Pruébalo en línea!
No es un reloj muy bonito, pero cumple con todos los requisitos.
fuente
PHP, 71 bytes
Manecilla de 1 hora de asterisco, manecilla de 2 minutos de asterisco.
toma datos del argumento de la línea de comando; correr con
-nr
.fuente
05AB1E , 41 bytes
Esto es demasiado lento para TIO.
Para código similar trabajando en TIO intente esto
Estoy bastante seguro de que esto puede ser tanto golfizado como acelerado.
Explicación que viene más tarde.
fuente
Logicode 634 bytes
No se pudo entender cómo ingresar, por lo que hay una var a = ... para la entrada en la parte superior del enlace tio
He dejado de jugar al golf. Sin embargo, podría hacerlo más corto a costa de hacer que el reloj se vea horrible.
Pruébalo en línea
fuente