Em codegolf.com (não foi carregado em 15 de setembro de 2011), havia um que estava me deixando louco. Imprima para STDOUT um relógio de uma forma exata, lendo o tempo de STDIN e marcando um h
às horas e m
minutos (arredondado para um múltiplo de 5) e x
se eles se sobrepõem, os tiques não utilizados são marcados com um o
, para que
echo "23:13" | perl script.pl
rendimentos
o
h o
o m
o o
o o
o o
o
O meu é:
$/=':';($h,$m)=<>;printf'%9s
%5s%8s
%2s%14s
%s%16s
%2s%14s
%5s%8s
%9s',map{qw'o h m x'[2*($_==int$m/5)^$_==$h%12]}map{$_,11-$_}0..5
para 136 caracteres, usando Perl. Eu gostaria de poder entrar no site, mas me lembro que os líderes tinham menos de 100 anos, também usando Perl. Alguém pode vencê-lo?
Respostas:
Golfscript, 75 bytes
Inspirado no artigo vinculado nos comentários .
A
XXXXXXXXXXXX
parte representa 12 bytes de dados, alguns deles não imprimíveis, e devem ser substituídos pela sequência de bytes120 47 253 22 194 9 183 44 196 55 125 246
.Por conveniência, aqui está uma versão codificada em base64:
Exemplo de execução:
fonte
C,
259244163 caracteresO argumento da linha de comandos substituído por stdin (conforme necessário também acaba mais curto).
Removido o suporte por minutos acima de 59 - um desperdício de 3 caracteres.
O código é mostrado com quebras de linha e recuo, mas os caracteres foram contados sem eles.
Tentativa mais antiga (usando códigos de escape ANSI), 244 caracteres:
fonte
Python, 175 caracteres
Não supera seu código Perl, mas talvez uma linguagem mais concisa com números complexos incorporados (ou funções trigonométricas) possa usar essa idéia para fazer melhor.
fonte
Python, 226 caracteres
Uso: execute 'python script.py' e digite o tempo necessário. (Ex: 09:45)
Resultado:
fonte
Minha solução perl:
527 bytes
Minha solução C:
440 bytes
fonte
<>
e eu não acho que você precisa paraprintf
a maneira que você estiver usando,print
vai funcionar :)Scala 327 chars
em uso com um formato de círculo adequado, não com limão-XXXX:
ungolfed:
Usa o código ANSI para saída na pos (y, x). Como precisamos apenas da precisão de 5 minutos, os valores pré-calculados para x e y parecem ser mais curtos do que manipular as funções sin e cos com sua importação.
fonte
Python, 176 caracteres
fonte
Perl 131 caracteres
fonte