Escreva um programa de linha única com dois ou mais caracteres que não contenha terminadores de linha e não aceite entrada. Por exemplo, seu programa pode ser:
MyProgram
Quando o seu programa é organizado nas formas que os ponteiros do relógio produzem às 12, 3, 6 e 9 horas, ele precisa exibir o número da hora correspondente. Nenhum outro horário precisa ser suportado.
Especificamente:
Quando o seu programa é organizado como ponteiros do relógio às 12 horas (🕛)
m a r g o r P y M
executá-lo deve sair
12
.Quando seu programa é organizado como ponteiros do relógio às 3 horas (🕒)
m a r g o r P y MyProgram
executá-lo deve sair
3
.Quando seu programa é organizado como ponteiros do relógio às 6 horas (🕕)
m a r g o r P y M y P r o g r a m
executá-lo deve sair
6
.Quando seu programa é organizado como ponteiros do relógio às 9 horas (🕘)
........m ........a ........r ........g ........o ........r ........P ........y margorPyM
executá-lo deve sair
9
.
Notas
O primeiro caractere do seu programa é sempre colocado no centro do relógio. (Observe como há apenas um
M
no exemplo das 6 horas.)Qualquer caractere que não seja de nova linha pode ser usado para recuar o programa para o arranjo das 9 horas. Nos exemplos
.
é usado, mas o espaço ou/
ou#
seria igualmente válido.Para o arranjo das 3 horas, nenhum caractere deve estar na região superior direita vazia. (ou seja, mantenha-o vazio, não o preencha com espaços.)
O arranjo inicial do programa (
MyProgram
como está) não precisa fazer nada. Somente os arranjos das 12, 3, 6 e 9 horas precisam ter saída correta e bem definida.Código que funciona apenas como uma função ou comando REPL não é permitido. Cada um dos quatro arranjos deve estar pronto para executar os programas completos que estiverem.
O programa mais curto em bytes vence. por exemplo, MyProgram
tem um comprimento de 9 bytes.
fonte
3
e6
seriam indistinguíveis para Brainfuck, pois eles diferem apenas no espaço em branco.Respostas:
GolfScript,
1110 bytesUsa
#
como caractere de preenchimento.12 horas
Experimente online!
Como funciona.
6
é empurrado na pilha,;
descarta-o.]
agrupa a pilha em uma matriz (não afeta a saída).9
e3
são empurrados na pilha,;
e;
descartá-las.Finalmente,
1
e2
são empurrados na pilha, e implicitamente impressas sem separação.3 horas
Experimente online!
Como funciona
6
é empurrado na pilha,;
descarta-o.]
agrupa a pilha em uma matriz (não afeta a saída).9
e3
são empurrados na pilha,;
e;
descartá-las.1
e21
são empurrados na pilha,;;
descarta-os.3
é empurrado na pilha.#
inicia um comentário até o final da linha.6 horas
Experimente online!
Como funciona
6
é empurrado na pilha,;
descarta-o.]
agrupa a pilha em uma matriz (não afeta a saída).9
e3
são empurrados na pilha,;
e;
descartá-las.1
,2
E1
são empurrados na pilha.;
e;
descartar o último1
e2
.3
e9
são empurrados na pilha.]
e;
enrole a pilha em uma matriz e descarte-a, limpando a pilha.6
é empurrado na pilha.9:00 horas
Experimente online!
Como funciona
Todas as linhas, exceto a última, são comentários.
6
é empurrado na pilha,;
descarta-o.]
agrupa a pilha em uma matriz (não afeta a saída).9
é empurrado na pilha.#
inicia um comentário até o final da linha.fonte
> <> , 20 bytes
Existem imprimíveis lá, a saber:
X
é\x06\t
c
é\x03
A mesma parte do código-fonte é executada a cada vez, usando
g
duas partes do código-fonte para determinar o que subtrair de 12.12 horas | 3 horas | 6 horas | 9 horas (parece desalinhado devido à guia)
fonte
ROOP , 54 bytes
Usa
<
como caractere de preenchimento.12 horas | 3 horas | 6 horas | 9:00 horas
12 horas
O
1
e o2
que estão perto do topo caem por 3 ciclos. Quando alcançam oW
operador, o operador coloca o número emO
, que representa a saída.O
1
nesta partecaiu por 2 ciclos, o
V
operador move-o abaixo e no próximo ciclo ativa oH
operador que encerra o programa.3 horas
O
também são objetos que se movem e caem. Como o código agora tem uma linha com mais de um caractere, todas as outras linhas são preenchidas com espaços vazios. Tudo seO
move para a direita e cai, fazendo com que osW
operadores não tenham onde enviar o1
e2
.O único
O
que não se move é o que fica preso no centro. O valor3
acima cai para 4 ciclos até oW
.Então os números que caem estão preenchendo os 4 espaços entre o
W
e3
. Quando preenchido, outro número pode passar por cima de todos eles e chegar aoH
operador que encerra o programa.6 horas
Muito parecido com o 12, as
6
quedas para oW
e1
para oH
. Isso ocorre em 2 ciclos, finalizando o programa antes que ocorra o caso 12.9:00 horas
(Eu mostro uma única coluna
<
porque os outros não fazem nada).Ele
V
pega9
e o move para o tubo abaixo, que desvia o objeto para a esquerda. O tubo<
move o objeto para baixo e o próximo para a direita. OV
operador coloca o9
espaço abaixo e depois é enviado para a saída.O
1
faz movimentos iguais e atinge oH
, que termina o programa. Como os tubos movem objetos no mesmo ciclo, tudo isso leva um único ciclo.fonte