*> <> , 43 42 bytes
<v":1200----"
S>@5dov>~r@@}r5
1&}o:&<^!?:-
Experimente aqui!
Eu sinto que deveria ser capaz de reduzir isso, tenho algumas idéias para tentar ... Basicamente, isso gera uma pilha de :1200----
. Ele isola :
e vira a pilha, inserindo-a :
no meio de uma ----
ou outra 1200
(dependendo do que estiver no final da pilha).
Devo observar também que a única instrução *> <> usada é S
(suspensão), caso contrário, este é um programa> <> adequado.
Atualização: salvou 1 byte deslocando o :
para a direita em vez de protegê-lo com um registro.
Explicação
Inicialização
<v":1200----"
Aqui construímos a pilha que usaremos para a vida útil do programa.
< move the IP left
":1200----" push ":1200----" to the stack
v move the IP down into "output time"
Tempo de saída
>@5dov
1&}o:&<^!?:-
Esta é a seção em que o tempo é realmente gerado. Os primeiros 5 são empurrados para a pilha, de modo que o loop abaixo saiba executar 5 vezes.
Initialisation:
>@5dov
> move the IP right
@ move the ":" back two spaces in the stack
5 push 5 to the stack (let's call this `i`)
do output carriage return
v move IP down into "loop"
Loop:
1&}o:&<^!?:-
< move the IP left
& place i onto the register
}o: output a character and shift the stack left
& place i back onto the stack
1 - decrement i by 1
^!?: if i == 0, exit to "recover and swap"
Recuperar e trocar
S >~r@@}r5
Aqui recuperamos a :
posição que resulta após a saída e terminamos com uma pilha invertida. Na verdade, isso sai muito bem no "tempo de saída", causando um loop infinito.
> move the IP right
~ remove trailing i from stack
r@@ reverse the stack and move ":" to the front
}r reverse the stack again, keeping ":" on the front
S 5 sleep for 500ms
Solução de 45 bytes
<v[5"12:00"1
d/S5
o/!?l
v>]?v
00.>0"--:--"5[
Experimente aqui!
Este também é basicamente um programa> <>.
Eu realmente pensei que seria capaz de salvar alguns bytes com esta abordagem. Isso simplesmente resulta 12:00
, então --:--
. Eu salvo bytes reutilizando a rotina de saída o/!?l
(eu até reutilizo esse espelho como entrada e saída). Utilizo várias pilhas para armazenar o estado (tem saída 12
ou --
) e seleciono com qual estado devo sair v>]?v
.
Explicações em breve! (1/2)