Créez une horloge binaire BCD en ASCII. Comme implicite, il affichera l'heure sur six colonnes de points:
(source: Wikimedia Commons )
Chaque colonne est un chiffre codé en binaire, lisant les heures, les minutes et les secondes de gauche à droite. Les heures sont données au format 24 heures.
Le temps d'affichage est lu à partir de la ligne de commande ou de stdin (celui qui convient le mieux). S'il est vide, l'heure actuelle doit être utilisée à la place.
La taille de sortie est un peu contrainte ici et nous ne pouvons ajuster que deux lignes de texte. Vous devez donc mettre les points en seulement deux lignes. Les personnages .
, :
et '
sont utiles ici.
Contribution
Temps d'affichage au format ISO-8601, c'est-à-dire HH:MM:SS
sans fraction de seconde. Format obligatoire de 24 heures. L'entrée peut être vide, auquel cas l'heure actuelle sera utilisée.
Production
Deux lignes avec représentent l'horloge binaire BCD comme dans l'image ci-dessus. Chaque ligne comporte exactement six caractères et les seuls caractères autorisés sont l'espace, le point, les deux-points et l'apostrophe.
Gagnant
Le code le plus court par nombre d'octets gagne. En cas d'égalité, la solution a affiché ses premières victoires.
Exemple d'entrée 1
(vide)
Exemple de sortie 1
.
''. ::
Exemple d'entrée 2
17:59:20
Exemple de sortie 2
..'
.:..'
Exemple d'entrée 3
01:08:01
Exemple de sortie 3
'
. .
Rubis,
107 103 99 9490 caractèresNotez que l'entrée ne doit pas contenir de saut de ligne, donc pour tester la solution, utilisez quelque chose comme
echo -n "01:08:01" | ruby1.9 bcd.rb
.Pour tester le comportement par défaut, exécutez-le avec
ruby1.9 bcd.rb
et entrez^D
(c'est-à-dire un EOF littéral).la source
Time.now.to_s[11,8]
.Windows PowerShell, 81
Comme je n'ai pas créé d'implémentation lors de l'écriture de la tâche, je me sens moi-même éligible à la jouer dès le départ :-)
Histoire:
[Math]::Floor
est waaaayy trop long. Je déteste ça.:
de la première ligne.58
place des:
transtypages automatiques en nombres entiers également - plus besoin de mettre$_
entre guillemets :-)-join
ne sont plus nécessaires.la source
Rubis - 124 caractères
la source
C #
236 caractères
Lisible:
la source
- 48
quand vous le faites% 4
, comme48 % 4 == 0
c/4-12
est plus courte que(c-48)/4
... :)Golfscript (+ Ruby), 63
Encore débutant avec Golfscript. Ne me frappe pas.
la source
""
coercés à faux afin que vous puissiez les supprimer,\
.Perl (84)
la source
"\n$&"
en$/.$&
- astuce Perl-golf commune :)Python 3, 136 caractères
la source
wc -c
. Bon travail. +1Python -
201172 caractèresla source
t=raw_input().replace(':','')
/if not t:t=strftime('%H%M%S')
- vous enregistre 5 caractères :)Lua -
163160 caractèresla source
VBA (Excel),
150148132 octetsUtilisation de la fenêtre et de la cellule immédiates
[A1]
comme entrée.la source
If
instruction dans la[..]
notation et en utilisant un espace insécable au lieu d'un espace normal dans l'instruction fractionnée (Alt + 255), puis en utilisant l'ajout de chaîne au lieu de la concaténation de chaîne. Devrait ressemblera=Format([IF(A1,A1,NOW())],"hhmmss"):b=Split(" . ' :"):For c=1To Len(a):d=Mid(a,c,1):e=e+b(d\4):f=f+b(d Mod 4):Next:?e:?f
, où le premier personnage de la déclaration partagée est l'espace insécablesplit
fonction. J'ai encore appris de nouvelles choses XD Nice! Et merci! : DScala, 222:
la source
VimScript, 143 caractères
la source