Escriba un programa de una sola línea de dos o más caracteres de longitud que no contenga terminadores de línea y no tome entrada. Por ejemplo, su programa podría ser:
MyProgram
Cuando su programa se organiza en las formas que hacen las manecillas de un reloj a las 12, 3, 6 y 9 en punto, debe emitir el número de hora correspondiente. No hay otros tiempos que sean compatibles.
Específicamente:
Cuando su programa está organizado como las manecillas del reloj a las 12 en punto (🕛)
m a r g o r P y M
ejecutarlo debería dar salida
12
.Cuando su programa está organizado como las manecillas del reloj a las 3 en punto (🕒)
m a r g o r P y MyProgram
ejecutarlo debería dar salida
3
.Cuando su programa está organizado como las manecillas del reloj a las 6 en punto (🕕)
m a r g o r P y M y P r o g r a m
ejecutarlo debería dar salida
6
.Cuando su programa está organizado como las manecillas del reloj a las 9 en punto (🕘)
........m ........a ........r ........g ........o ........r ........P ........y margorPyM
ejecutarlo debería dar salida
9
.
Notas
El primer carácter en su programa siempre se coloca en el centro del reloj. (Tenga en cuenta que solo hay uno
M
en el ejemplo de las 6 en punto).Se puede usar cualquier carácter que no sea de línea nueva para sangrar el programa para la disposición de las 9 en punto. En los ejemplos
.
se usa, pero el espacio o/
o#
sería igual de válido.Para la disposición de las 3 en punto, no debe haber caracteres en la región superior derecha vacía. (es decir, manténgalo vacío, no lo llene con espacios).
El arreglo inicial del programa (
MyProgram
como está) no necesita hacer nada. Solo las disposiciones de las 12, 3, 6 y 9 en punto deben tener una salida correcta y bien definida.El código que solo funciona como una función o comando REPL no está permitido. Cada uno de los cuatro arreglos debe estar listo para ejecutarse como programas completos como es.
El programa más corto en bytes gana. Por ejemplo, MyProgram
tiene una longitud de 9 bytes.
fuente
3
y6
Brainfuck no se distinguirían porque solo difieren en los espacios en blanco.Respuestas:
GolfScript,
1110 bytesSe utiliza
#
como carácter de relleno.12 en punto
Pruébalo en línea!
Cómo funciona.
6
es empujado en la pila, lo;
descarta.]
envuelve la pila en una matriz (no afecta la salida).9
y3
son empujados en la pila,;
y los;
descartan.Finalmente,
1
y2
se empujan en la pila, y se imprimen implícitamente sin separación.3 en punto
Pruébalo en línea!
Cómo funciona
6
es empujado en la pila, lo;
descarta.]
envuelve la pila en una matriz (no afecta la salida).9
y3
son empujados en la pila,;
y los;
descartan.1
y21
son empujados en la pila, los;;
descarta.3
es empujado en la pila.#
comienza un comentario hasta el final de la línea.6:00
Pruébalo en línea!
Cómo funciona
6
es empujado en la pila, lo;
descarta.]
envuelve la pila en una matriz (no afecta la salida).9
y3
son empujados en la pila,;
y los;
descartan.1
,2
y1
son empujados en la pila.;
y;
descartar el último1
y2
.3
y9
son empujados en la pila.]
y;
envolver la pila en una matriz y descartarla, limpiando la pila.6
es empujado en la pila.9:00
Pruébalo en línea!
Cómo funciona
Todas las líneas menos la última son comentarios.
6
es empujado en la pila, lo;
descarta.]
envuelve la pila en una matriz (no afecta la salida).9
es empujado en la pila.#
comienza un comentario hasta el final de la línea.fuente
> <> , 20 bytes
Hay no imprimibles allí, a saber:
X
es\x06\t
c
es\x03
La misma parte del código fuente se ejecuta cada vez, utilizando
g
dos partes del código fuente para determinar qué restar de 12.12:00 | 3 en punto | 6 en punto | 9 en punto (parece desalineado debido a la pestaña)
fuente
ROOP , 54 bytes
Se utiliza
<
como carácter de relleno.12 en punto | 3:00 | 6 en punto | 9:00
12 en punto
Los
1
y los2
que están cerca de la parte superior caen durante 3 ciclos. Cuando llegan alW
operador, el operador coloca el número enO
, que representa la salida.El
1
en esta partecayó durante 2 ciclos, el
V
operador lo mueve hacia abajo y en el siguiente ciclo activa elH
operador que finaliza el programa.3 en punto
O
También son objetos que se mueven y caen. Como el código ahora tiene una línea con más de un carácter, todas las demás líneas están llenas de espacios vacíos. Todos seO
mueven hacia la derecha y caen, lo que hace que losW
operadores no tengan un lugar para enviar el1
y2
.Lo único
O
que no se mueve es el que está atrapado en el centro. Lo3
anterior cae durante 4 ciclos a laW
.Entonces los números que caen están llenando los 4 espacios entre el
W
y3
. Cuando se llena, otro número puede pasar sobre todos ellos y llegar alH
operador que finaliza el programa.6:00
Muy similar a la 12, las
6
caídas a laW
y la1
a laH
. Esto ocurre en 2 ciclos, finalizando el programa antes de que ocurra el caso 12.9:00
(Muestro una sola columna de
<
porque los demás no hacen nada).La
V
toma9
y la mueve a la tubería de abajo, que desvía el objeto hacia la izquierda. La tubería<
mueve el objeto hacia abajo y el siguiente hacia la derecha. ElV
operador coloca el9
en el espacio de abajo y luego se envía a la salida.El
1
hace movimientos iguales y alcanza elH
, que termina el programa. A medida que las tuberías mueven objetos en el mismo ciclo, todo esto toma un solo ciclo.fuente