Herausforderung
Zeichnen Sie das Logo der Olympischen Spiele ...
... als Zeichenkunst (zB ASCII)!
Beispielausgabe
* * * * * * * * *
* * * * * *
* * * * * *
* * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * *
* * * *
* * * *
* * * * * *
Deine Kunst muss nicht genau so aussehen wie meine, aber sie muss die olympischen Ringe gut genug darstellen, dass sie erkennbar sind.
Regeln
- Das Programm muss die Grafik in die Konsole schreiben.
- Der kürzeste Code (in Byte, jede Sprache) gewinnt.
- Eine Lösung, die Ringe in ihren jeweiligen Farben (oder in einer engen Darstellung) druckt, erhält einen Bonus von minus 20 Punkten.
Der Gewinner wird am 23. Februar gewählt wird rd am Ende der Olympischen Winterspiele 2014.
Gewinner
- Gold : Marinus - APL, 62 Punkte
- Silber : Ayiko - Perl 6, 75 Punkte
Bronze : evuez - Python, 107 Punkte
Beliebte Wahl : Danko Durbić - Commodore 64 BASIC
Antworten:
APL (82) (-20 = 62)
Bearbeiten: Zur Änderung ist dieses Programm so einfach, dass TryAPL es berührt, sodass Sie es dort ausführen können (fügen Sie einfach die Zeile ein).
Ich bin mir nicht sicher, ob ich das Farbbit beanspruchen kann, aber ich repräsentiere sie alle unterschiedlich.
Die APL-Konsole unterstützt keine Farben, daher habe ich schattierte Blockzeichen verwendet (das Zuweisen anderer ASCII-Zeichen wäre so einfach wie das Ersetzen der Zeichen am Anfang der Zeichenfolge.)
Sie sollten wie durchgehende Kreise aussehen (abhängig von Ihrer Schriftart).
Oder:
quelle
Commodore 64 BASIC
Schreiben direkt auf dem Bildschirm und Farbspeicher.
Ausgabe:
Hier erfahren Sie, wie Sie dies mit Sprites tun.
quelle
HTML Fiddle -
48,35, 33 Zeichen (Danke @Dom und @cnst!)Ausgabe:
quelle
OOO<div style="margin:-10px 5px">OO
stattdessen ... (Ich denke, es muss ein Block sein, daher die<div/>
)div
, kann einfachp
stattdessen verwenden!BASH in Farbe - 271 - 20 = 251 - Mit verschränkten Ringen; P
Ergebnis:
Und das zum Spaß : 61 - 20 = 41.
LZ77 Version:
quelle
bash: !/\\e[3}": event not found
:(x='54mO53m_50m052m_51mO\n53m U 52mU\n';printf "${x//5/\\e[3}"
- (Ich bin ein bisschen böse mit den 5 hier.) Oder sogar das könnte besser sein, mit Überlappung im Auge:x='54mO53mA50m052mA51mO\n53m U 52mU\n';printf "${x//5/\\e[3}"
- obwohl es chaotischer aussehen könnte als die anderen.Sinclair BASIC auf dem ZX Spectrum 48K (261 Bytes)
BASIC-Auflistung:
Endergebnis:
Programm läuft und Code messen:
BASIC-Auflistung im Textformat:
TAP-Datei mit dem Programm, geeignet für Emulatoren oder reale Maschinen, die DivIDE oder DivMMC verwenden: http://www.zxprojects.com/images/stories/draw_the_olympics_flag.tap
quelle
Also habe ich nicht richtig gelesen, es ist ASCII-Kunst, also denke ich, dass dies ungültig ist. Hoppla!
HTML 121 (141 - 20)
In Chrome:
PHP 103 (123 - 20)
quelle
#06f
#fa0
#193
Ruby: 198 Zeichen - 20 = 178
(Beachten Sie, dass
^[
es sich um einzelne Zeichen handelt.)Probelauf:
quelle
Mathematica - 185
Hier ist die Ausgabe
Eine andere Version, basierend auf der Rasterung von Vektorgrafiken
quelle
PostScript, 203 (-20 = 183)
Ich behaupte, dass dies als "ASCII-Kunst" gilt, obwohl es nicht in die Konsole schreibt. Ausgabe:
Dies könnte ein wenig mehr golfen werden.
quelle
Windows-Befehlsskript - 112
ProzentBytesUnd natürlich die obligatorische Cheat'ish-Version - 4 Bytes
gespeichert als:
quelle
Ein weiterer Versuch in Perl,
130120Vielen Dank an manatwork für die Hilfe
Ausgabe:
quelle
for
anstelle vonforeach
; 2 Zeichen durch Entfernen von(
…)
rundensprintf()
Argumenten; 2 Zeichen durch Entfernenhex
des Parameters; 1 Zeichen mity///
anstelle vontr///
; 1 Zeichen durch Entfernen des Finales;
.y///
. Werde jetzt nachsehen.Python:
157140138133122107 Zeichen107
(dank manatwork )
Beispielausgabe:
157
122
(habe gerade damit begonnen, ich werde versuchen, es zu verbessern)
mit besserer Ausgabe: 120 Zeichen
Beispielausgabe:
quelle
print'\n'.join(['{0:b}'.format(int(o,36)).rjust(39,'0')for o in"kpvbkq0 1re099tu 3ifszg1t 3iwiuayp 1re099tu kpvbkq0 httbls 5trxmo".split()])
. In Bezug auf die "bessere Ausgabe" -Version können Sie dort denrjust()
zweiten Parameter sparen. (Und fügen Sie ein "t" in die Überschrift dieses Beitrags ein.)bin()
. Aber warum benutzt dustr()
es?bin()
Der Rückgabewert von ist bereitsstr
.010000010100000101000101000001010000010
? Die beiden unteren Ringe sehen für mich etwas kaputt aus.Perl,
177163Eine verbesserte Version dank Dom Hastings:
Ausgabe:
quelle
"\n"
as zu verwenden$r
, können Sie$/
die"\n"
Standardeinstellung verwenden. Wörtliche Zeilenumbrüche können Sie an einigen Stellen sogar noch mehr einsparen. Sie können auch 1 Zeichen mehr sparen$s=$"x3
als mit$s=" "
. Ich hoffe, das hilft!C 257 Bytes
Dies hätte ein bisschen mehr golfen können.
Dies muss auf einem Tektronix 4010 (oder einem Emulator wie xterm -t) ausgeführt werden. Ausgabe:
Dies ist in der Tat ASCII-Kunst, da dies alles '.' Figuren. Und es wird wie gewünscht auf der Konsole ausgegeben. Einige Tektronix-Emulatoren unterstützen Farbe. Meins nicht, also konnte ich das nicht tun.
quelle
Java,
181179161156 Bytes(Kompiliert nicht mit jdk 1.7, benötigt 1.6 oder niedriger)
Die Ausgabe:
Auf jeden Fall kein Gewinner, aber komm schon, es ist Java .
quelle
replaceAll()
‚regulären Ausdruck und setzen den gesamten angepassten Teil zurück:replaceAll(".{29}","$0\n")
. (Möglicherweise wird am Ende Ihrer Datei ein zusätzlicher Zeilenumbruchimport
und setzen Sie den Paketnamen direkt in den Konstruktoraufruf. Das reduziert die Größe auf 161 Zeichen.class M{static{...
auf gespartenum M{M;{...
. Der nächste große Schritt ist, BigInteger loszuwerden. Ist das möglich? Ich versuche, etwas Magie mit String.format zu machen, habe aber noch keine Ergebnisse.Haskell, 200
Ausgabe:
Golf gespielt von:
quelle
map.map
weil es lustig klingt. : DRubin, 9
#Satire
Die Regeln erlauben Kunst, die nicht genau wie das Beispiel aussieht, aber "die olympischen Ringe gut genug darstellen muss, dass sie erkennbar sind" .
Möglicherweise erkennen Sie diese Darstellung des Logos der Olympischen Spiele.
quelle
Javascript - 170
185189ZeichenAusgabe:
2. Javascript - 25 Zeichen
Ausgabe:
Der zweite ist faul
quelle
split()
Parameter; 2 Zeichen durch Entfernen der letzten 2;
s.'kpvbkq041re099tu43ifszg1t43iwiuayp41sdk52824kpvbkq04httbls45trxmo'.split(4).map(x=>{a=parseInt(x,36).toString(2);console.log(' '.repeat(39-a.length)+a.replace(/0/g,' '))})
.Binär! (265 CHARS)
Es ist zu groß, um zu gewinnen, aber zumindest sieht es cool aus!
quelle
PHP - 99 (-20?)
Das ist eindeutig erkennbar. Ich sage, dass meine "Farben" zählen; es ist eine enge Darstellung.
Wenn Sie das nicht mögen, dann ist hier
GolfScript - 101 (-20?)
quelle
header("Content-Type: text/plain")
, der Standard für Webserver ist Text / HTMLBash + ImageMagick: 163 Zeichen
Beispielausgabe:
quelle
Perl 6:
1127756 Zeichen, 75 Byte.comb
gibt eine Liste der einzelnen Zeichen in einem String aus (ohne Argument).ord
Gibt die Zeichencodenummer des Zeichens an.base(2)
Gibt eine Zeichenfolge mit Base-2-Codierung dieses Int zurück.trans
Ersetzt die Ziffern durch Leerzeichen und @ für bessere Sichtbarkeitflip
Kehrt die Zeichen einer Zeichenfolge um, damit fehlende führende Nullen die Zeichnung nicht durcheinander bringen.edit2: neuere lösung mit qwote wörtern und base-36 verschlüsselt
<ABC DEF GHI>
ist eine Zitat-Wort-Syntax in Perl6, sodass Sie eine Liste von Strings erhalten:36($_)
Erstellt ein Int aus einer Base-36-codierten Zeichenfolge in$_
(for
Loop-Standardvariable).edit: alte lösung hat schönere (kopierte) zeichnung aber ist länger:
quelle
Mathematica
18517510 Bytes von Mathe gespeichert.
Die folgenden Ringe sind ASCII-O's.
Der Buchstabe "O", leicht durchscheinend, in Century Gothic, wurde 5-mal mit Schriftgröße = 145 Druckerpunkten gedruckt.
Dies ist keine Terminal-Kunst. Es entspricht jedoch voll und ganz der Wikipedia-Definition von ASCII-Kunst: http://en.wikipedia.org/wiki/ASCII_art .
quelle
FontSize ->
kann entfernt werden.FontSize -> 145
durch145
.JavaScript: 153 Zeichen
Ich wollte sehen, ob ich es mit Algebra schneller machen kann, um die Kreise tatsächlich grafisch darzustellen:
(
c
ist ein Array von fünf (x, y) Paaren, die Zentren der Kreise, abgeflacht, um zehn Zeichen zu speichern.)Ausgabe:
159 Zeichen sind etwas lesbarer:
Ausgabe:
In 167 Zeichen haben wir "Farben":
Ausgabe:
Und mit 189 Zeichen kann ich den Radius auch
r
einstellbar machen :http://jsfiddle.net/mblase75/5Q6BX/
quelle
APL, 8 Zeichen / Byte *
Hier ist eine Antwort für die niedrigste Zeichenanzahl (das ist doch Code Golf)
Ausgabe:
Das Symbol ist ○, APL-Kreisoperator. Sie können stattdessen ein 'O' setzen, falls Sie eine reine ASCII-Ausgabe wünschen. Ich fand es einfach passend, ein APL-Symbol zu verwenden.
Nur für Kicks, hier ist eine Farbversion (37 Zeichen - 20 = 17 Punkte)
Ausgabe: ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ *: APL kann in einem eigenen (älteren) Einzelbyte -Zeichensatz geschrieben werden, der APL-Symbole den oberen 128-Byte-Werten zuordnet
. Aus diesem Grund kann ein Programm mit N Zeichen , das nur ASCII-Zeichen und APL-Symbole verwendet, als N Byte lang angesehen werden.
quelle
CSS,
1176922855771 Bytes, -20 Farbbonus = 751Nur CSS, kein Markup erforderlich. Sehen Sie markenlose Geige hier: http://jsfiddle.net/XcBMV/12/
In Farbe und mit der richtigen Überlappung.
quelle
Perl - 12 Zeichen
OK, es ist also keine besonders künstlerische Darstellung. ;-)
Etwas niedlicher:
quelle
16-Bit-BIOS-OL-Loader für GAS-Assembly - 617 - 20 = 597
Werde hier ein bisschen verrückt, also nur zum Spaß.
Es wird nicht viel geladen, aber das Logo der Olympischen Spiele wird als ASCII mit Farben geladen;)
Code:
(Linux) MBR-Image erstellen und extrahieren
Laufen im Emulator
(Habe es noch nicht auf meinem Heimcomputer getestet ...)
Ergebnis
quelle
TI-Basic (16 Byte)
Hinweis: TI-Basic ist tokenisiert. Wenn ich mich richtig erinnere
ClrHome
undDisp
es sich um Ein-Byte-Token handelt.quelle
quelle