Desafio:
Crie uma função ou programa que aceite uma entrada N (um número de 0 a 24) que represente a HOUR.
A saída deve extrair um relógio analógico dos asteriscos mostrando a hora N.
🕛🕐🕑🕒🕓🕔🕕🕖🕗🕘🕙🕚🕛🕐🕑🕒🕓🕔🕕🕖🕗🕘🕙🕚🕛
Notas:
• O ponteiro dos minutos deve ser maior que o ponteiro das horas (em termos de número de asteriscos usados)
• O ponteiro dos minutos deve ter pelo menos 2 asteriscos.
• Meio-dia, 15h, 18h e 21h sempre serão ortogonais. Sua saída para horas intermediárias, quando organizadas em graus, deve estar na mesma ordem que as horas do dia. O que quero dizer é ao meio-dia o ponteiro das horas é 0º e às 3 da tarde o ponteiro das horas é 90º assim para seus casos de 13:00 saída e 2pm o seguinte deve ser verdadeiro: 0pm_deg < 1pm_deg < 2pm_deg < 3pm_deg
. Além dessa regra, o valor do grau real pode ser o que você decidir, obviamente ele mudará dependendo da fonte e de outros fatores nativos.
• A junta de conexão entre o ponteiro das horas e o ponteiro dos minutos é um caractere unicode circular / oval de qualquer tipo. o, O, •, 0, etc.
Exemplo de entrada / saída (pode variar dependendo dos estilos de desenho)
N = 3;
*
*
*
O * *
N = 4;
*
*
*
O
*
*
N = 5;
*
*
*
0
*
*
N = 6;
*
*
o
*
N = 7;
*
*
*
•
*
*
N = 0,12,24;
*
*
*
o
Exemplo de diferenciação de saídas:
N = 4 VS N = 5 VS N = 6
* * *
* * *
O O O
* * *
Isso é código-golfe , então o programa com o menor número de bytes vence!
3
ter um tamanho diferente do ponteiro dos minutos7
?23:00
é11:00
. Em minha mente eu estava tentando laço em torno de volta para o 12 mão de novoRespostas:
Javascript (ES6),
1057665 bytes-29 bytes:
-11 bytes:
y==(N%12).toString(16)?'*':' '
->'0x'+y^N%12?' ':'*'
Original com ponteiros mais longos: (
10594 bytes)fonte
CSS / HTML (JavaScript), 62 + 106 =
180168 bytesEditar: salvou 9 bytes graças a @nderscore.
fonte
<body onload=f(prompt())>
<input oninput=h.style.transform=`rotate(${this.value*30}deg)`>
Python 2 ,
148140135 bytes-8 excluindo alguns espaços restantes e uma nova linha desnecessária.
-5 mudando
(' ','*')
para' *'
Experimente online!
fonte
C (gcc) , 144 bytes
Experimente online!
fonte
SmileBASIC,
908874 bytesExemplo de saída:
fonte
Python 3 ,
8685 bytes-1 byte, melhor relógio (crédito DuctrTape, como usado na minha resposta Jelly)
Experimente online!
fonte
Geléia ,
35 3433 bytesExperimente online! (
tI©
!) ou veja todos (0 - 24) .Quão?
Observe que
“ tI©’Œ?Ḋ
(permutação no índice, desenfileirado) é um salvamento em bytes“9ȧỤ_ÑḶ’b⁴
(base 16 de), que é um salvamento em bytes“¦þxṙ<ȥ’ḃ13
(base bijetiva 13 de).†
Em relação ao pop - temos um espaço extra na string, que é onde o asterisco para 0, 12, 24 irá permitir a indexação mod-12 da lista de índices. fazendo a concatenação de“**o”
antemão e substituindo um desses asteriscos.‡
Com relação à rotação - este é um salvamento em byte sobre a construção de uma string com o `` ** o '' no meio (com ela antes ou depois da colocação do asterisco).fonte
Haskell, 148 bytes
A função c é a que resolve a tarefa fornecida
fonte
Utilitários Bash + Unix, 57 bytes
(Há um espaço após a barra invertida final.)
Experimente online!
Não é um relógio muito bonito, mas atende a todos os requisitos.
fonte
PHP, 71 bytes
1 ponteiro de horas de asterisco, 2 ponteiros de asterisco de minutos.
recebe entrada do argumento da linha de comando; corra com
-nr
.fonte
05AB1E , 41 bytes
Isso é muito lento para o TIO.
Para código semelhante trabalhando no TIO, tente isto
Tenho certeza de que isso ainda pode ser jogado e acelerado.
Explicação em breve.
fonte
Código de lógica 634 bytes
Não foi possível descobrir como inserir, para que haja um var a = ... para a entrada na parte superior do link do tio
Desistiram de jogar isso. Poderia torná-lo mais curto, com o custo de fazer o relógio parecer horrível.
Experimente Online
fonte