Von codegolf.com (nicht geladen am 15. September 2011) war einer, der mich verrückt machte. Drucken Sie zu STDOUT eine Uhr mit einer genauen Form, lesen Sie die Zeit von STDIN ab und markieren Sie eine h
zur Stunde und m
zur Minute (abgerundet auf ein Vielfaches von 5). x
Wenn sie sich überlappen, werden nicht verwendete Häkchen mit einem markiert o
, so dass
echo "23:13" | perl script.pl
ergibt
o
h o
o m
o o
o o
o o
o
Meins ist:
$/=':';($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
für 136 Zeichen mit Perl. Ich wünschte, ich könnte auf die Website gelangen, aber ich erinnere mich, dass die Anführer unter 100 waren und auch Perl verwendeten. Kann jemand anderes es schlagen?
Antworten:
Golfscript, 75 Bytes
Inspiriert von dem Artikel in den Kommentaren .
Der
XXXXXXXXXXXX
Teil repräsentiert 12 Datenbytes, von denen einige nicht druckbar sind, und sollte durch die Bytefolge ersetzt werden120 47 253 22 194 9 183 44 196 55 125 246
.Der Einfachheit halber ist hier eine Base64-codierte Version:
Beispiellauf:
quelle
C
259244163 ZeichenDas Befehlszeilenargument wurde durch stdin ersetzt (wird bei Bedarf auch kürzer).
Unterstützung für Minuten über 59 entfernt - eine Verschwendung von 3 Zeichen.
Der Code wird mit Zeilenumbrüchen und Einrückungen angezeigt, aber die Zeichen wurden ohne sie gezählt.
Älterer Versuch (unter Verwendung von ANSI-Escape-Codes), 244 Zeichen:
quelle
Python, 175 Zeichen
Schlägt Ihren Perl-Code nicht, aber vielleicht könnte eine präzisere Sprache mit eingebauten komplexen Zahlen (oder Triggerfunktionen) diese Idee nutzen, um es besser zu machen.
quelle
Python, 226 Zeichen
Verwendung: Führen Sie 'python script.py' aus und geben Sie die erforderliche Zeit ein. (Beispiel: 09:45)
Ausgabe:
quelle
Meine Perl-Lösung:
527 Bytes
Meine C-Lösung:
440 Bytes
quelle
<>
und ich glaube nicht, dass du es so brauchst,printf
wie du es benutzt,print
wird funktionieren :)Scala 327 Zeichen
in Verwendung mit einer richtigen Kreisform, nicht Ihre Zitrone-XXXX:
ungolfed:
Verwendet Ansi-Code für die Ausgabe an Position (y, x). Da wir nur eine Genauigkeit von 5 Minuten benötigen, scheinen vorberechnete Werte für x und y kürzer zu sein als die Behandlung von sin- und cos-Funktionen mit ihrem Import.
quelle
Python, 176 Zeichen
quelle
Perl 131 Zeichen
quelle