De codegolf.com (no se cargó el 15 de septiembre de 2011) fue uno que me estaba volviendo loco. Imprima en STDOUT un reloj de una forma exacta, lea el tiempo de STDIN y marque un h
a la hora y m
al minuto (redondeado a un múltiplo de 5) y x
si se superponen, las marcas no utilizadas se marcan con un o
, de modo que
echo "23:13" | perl script.pl
rendimientos
o
h o
o m
o o
o o
o o
o
El mio es:
$/=':';($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. Desearía poder ingresar al sitio, pero me parece recordar que los líderes tenían menos de 100 años y también usaban Perl. ¿Alguien más puede vencerlo?
Respuestas:
Golfscript, 75 bytes
Inspirado en el artículo vinculado en los comentarios .
La
XXXXXXXXXXXX
parte representa 12 bytes de datos, algunos de ellos no imprimibles, y debe reemplazarse con la secuencia de bytes120 47 253 22 194 9 183 44 196 55 125 246
.Por conveniencia, aquí hay una versión codificada en base64:
Ejemplo de ejecución:
fuente
C,
259244163 caracteresSe reemplazó el argumento de la línea de comando con stdin (según sea necesario, también termina más corto).
Se eliminó el soporte para minutos superiores a 59, un desperdicio de 3 caracteres.
El código se muestra con saltos de línea y sangría, pero los caracteres se contaron sin ellos.
Intento anterior (utilizando códigos de escape ANSI), 244 caracteres:
fuente
Python, 175 caracteres
No supera su código Perl, pero quizás un lenguaje más conciso con números complejos integrados (o funciones trigonométricas) podría usar esta idea para hacerlo mejor.
fuente
Python, 226 caracteres
Uso: ejecute 'python script.py' y luego escriba el tiempo requerido. (Ej: 09:45)
Salida:
fuente
Mi solución perl:
527 bytes
Mi solución C:
440 bytes
fuente
<>
y no creo que necesitesprintf
la forma en que lo estás usando,print
funcionará :)Scala 327 caracteres
en uso con una forma de círculo adecuada, no tu lemon-XXXX:
sin golf:
Utiliza Ansi-Code para la salida en pos (y, x). Dado que solo necesitamos una precisión de 5 minutos, los valores precalculados para x e y parecen ser más cortos que manejar las funciones sin y cos con su importación.
fuente
Python, 176 caracteres
fuente
Perl 131 caracteres
fuente