Das Logo der Olympischen Spiele zeichnen [geschlossen]

107

Herausforderung

Zeichnen Sie das Logo der Olympischen Spiele ...

Olympische Spiele-Logo

... 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

Adam Maras
quelle
7
20 Bonuspunkte. Warum sollte ich +20 zu meiner Punktzahl haben wollen?
Justin
21
Hum, das ist ein Markenzeichen ...
Moala
4
@moala Ich denke, dies fällt unter die Fair-Use-Richtlinie.
Nzall
11
In der Farbe ist es offensichtlich, dass es sich um ineinandergreifende Ringe handelt, die sich nicht nur überlappen . Nur wenige Einträge haben dies berücksichtigt.
Rob Kennedy
6
Völlig IANAL: OK, um die Software zu schreiben, die die O ******************************************************************************************** :-)
Carl Witthoft

Antworten:

23

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.

2/' ▓█░▓▒'[1+(13↑⍉n)⌈¯13↑⍉32↑¯26↑⌈1.1×11↓n←⍉c,0,2×c,0,2×c←(⍳2/10)∊⌈5+5×1 2∘○¨⍳1e4]

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).

      2/' ▓█░▓▒'[1+(13↑⍉n)⌈¯13↑⍉32↑¯26↑⌈1.1×11↓n←⍉c,0,2×c,0,2×c←(⍳2/10)∊⌈5+5×1 2∘○¨⍳1e4]
    ▓▓▓▓▓▓▓▓▓▓▓▓          ████████████          ▓▓▓▓▓▓▓▓▓▓▓▓    
  ▓▓            ▓▓      ██            ██      ▓▓            ▓▓  
▓▓                ▓▓  ██                ██  ▓▓                ▓▓
▓▓            ░░░░░░░░░░░░          ▒▒▒▒▒▒▒▒▒▒▒▒              ▓▓
▓▓          ░░    ▓▓  ██  ░░      ▒▒    ██  ▓▓  ▒▒            ▓▓
▓▓        ░░      ▓▓  ██    ░░  ▒▒      ██  ▓▓    ▒▒          ▓▓
▓▓        ░░      ▓▓  ██    ░░  ▒▒      ██  ▓▓    ▒▒          ▓▓
▓▓        ░░      ▓▓  ██    ░░  ▒▒      ██  ▓▓    ▒▒          ▓▓
  ▓▓      ░░    ▓▓      ██  ░░  ▒▒    ██      ▓▓  ▒▒        ▓▓  
    ▓▓▓▓▓▓░░▓▓▓▓          ██░░██▒▒████          ▓▓▒▒▓▓▓▓▓▓▓▓    
          ░░                ░░  ▒▒                ▒▒            
            ░░            ░░      ▒▒            ▒▒              
              ░░░░░░░░░░░░          ▒▒▒▒▒▒▒▒▒▒▒▒                

Oder:

      2/' bByRg'[1+(13↑⍉n)⌈¯13↑⍉32↑¯26↑⌈1.1×11↓n←⍉c,0,2×c,0,2×c←(⍳2/10)∊⌈5+5×1 2∘○¨⍳1e4]
    bbbbbbbbbbbb          BBBBBBBBBBBB          RRRRRRRRRRRR    
  bb            bb      BB            BB      RR            RR  
bb                bb  BB                BB  RR                RR
bb            yyyyyyyyyyyy          gggggggggggg              RR
bb          yy    bb  BB  yy      gg    BB  RR  gg            RR
bb        yy      bb  BB    yy  gg      BB  RR    gg          RR
bb        yy      bb  BB    yy  gg      BB  RR    gg          RR
bb        yy      bb  BB    yy  gg      BB  RR    gg          RR
  bb      yy    bb      BB  yy  gg    BB      RR  gg        RR  
    bbbbbbyybbbb          BByyBBggBBBB          RRggRRRRRRRR    
          yy                yy  gg                gg            
            yy            yy      gg            gg              
              yyyyyyyyyyyy          gggggggggggg                
Marinus
quelle
165

Commodore 64 BASIC

Schreiben direkt auf dem Bildschirm und Farbspeicher.

Programm

Ausgabe:

Ausgabe


Hier erfahren Sie, wie Sie dies mit Sprites tun.

Danko Durbić
quelle
1
Das ist fantastisch. +1. Können wir eine Byteanzahl bekommen?
Adam Maras
2
Denken Sie daran, dass Sie beim C64 BASIC auch Befehle und Zeilennummern abkürzen können, wenn Sie Golf spielen möchten.
Gabriele D'Antona
15
Das einzige, was mich an dieser Antwort stört, ist: Wie ist diese ASCII-Kunst?
Justin
10
Dies ist PETSCII-Kunst
Gabriele D'Antona
7
@ Quincunx: Da PETSCII auch als CBM ASCII bezeichnet wird, kann dies qualifiziert sein. Wenn Sie ein anderes Zeichen zum Zeichnen verwenden möchten (damit es eher wie klassisches ASCII aussieht), sollten Sie in Zeile 100 160 (umgekehrtes Leerzeichen) durch 42 (Sternchen) ersetzen.
Heinzi
86

HTML Fiddle - 48 , 35 , 33 Zeichen (Danke @Dom und @cnst!)

OOO<p style="margin:-15px 6px">OO

Ausgabe:

Bildbeschreibung hier eingeben

Briguy37
quelle
2
Sie können mehr Zeichen speichern mit: OOO<div style="margin:-10px 5px">OOstattdessen ... (Ich denke, es muss ein Block sein, daher die <div/>)
Dom Hastings
Da es sich nicht um eine Konsolenausgabe handelt, sind Sie besser dran,
wenn
@ DomHastings: Guter Anruf! Antwort aktualisiert :)
Briguy37
3
Warum dann die Mühe machen div, kann einfach pstattdessen verwenden!
22.
2
@PygameNerd: Es hängt von Ihrer Definition von "ASCII-Kunst" ab: Ja, wenn Ihre Definition "ASCII-Zeichen, die zu einem Bild angeordnet sind" lautet. nein, wenn Ihre Definition "ASCII-Zeichen in einem Texteditor mit fester Breite zur Bildung eines Bildes" lautet. Zu der Frage, ob die Ausgabe als CousinCocaine an die Konsole erfolgt, ob die Definition "Die Steuer- oder Überwachungseinheit eines Computers, die die Tastatur oder die Tasten, Schalter usw. enthält" lautet , dann ist die Ausgabe des Webbrowsers Teil des Monitors und damit der Konsole (obwohl dies wahrscheinlich nicht die Absicht des OP ist).
Briguy37
76

BASH in Farbe - 271 - 20 = 251 - Mit verschränkten Ringen; P

o='_4mGA  _0mGA  _1mG\n _4m/A \A _0m/A \\_1mA /A \\\n_4mD_3m---_0mD_2m---_1mD\n _4m\A_3m/_4m/A_0m\\_3m\\A_2m/_0m/A_1m\\_2m\A _1m/\n_4mG_3mD_0m---_2mD_1m---\n_3m   A\A /A _2m\A /_1m\n _3mA G  A_2mG\n';o=${o//D/|A   |};o=${o//A/    };o=${o//G/   ---};printf "${o//_/\\e[3}"

Ergebnis:

Bildbeschreibung hier eingeben


Und das zum Spaß : 61 - 20 = 41.

x='_4mO_3m^_0m0_2m^_1mO\n_3m V _2mV\n';printf "${x//_/\\e[3}"

Bildbeschreibung hier eingeben


LZ77 Version:

echo H4sIALOY5VIAA12QwRXAIAhD767ghQV8CnYbXYENOnw1YqX1xk8wQGz1UiJKKRFebLX8ARsIs7g0g/djN7CdRAYC7Pf6h+5RVR3foMdTMcqHWlS3jKr5RKO/g25doJdXZ+ii75CseU2zNkGzH6HYCPKhPGmA2Wh3+7mEDHMgb/2cUPYJH2gPhtZxAQAA|base64 -d|zcat
Runium
quelle
13
Bei nur wenigen Antworten ist die abwechselnde Überlappung der Ringe richtig. Daher ist dies eine Aufwertung wert, auch wenn die Punktzahl etwas höher ist.
Peter Taylor
1
bash: !/\\e[3}": event not found:(
Alter Lagos
Ich denke, Ihre Bash-Version ist gültig - nirgendwo im OP gibt sie die Größe der Grafik an - aber Sie müssen die "V" -Formringe reparieren. Vielleicht eine Tilde (~) für den Grund der Ringe?
AmeliaBR
@AlterLagos: Könnten Sie Update-Arbeiten finden?
Runium
@AmeliaBR: Ja, das war mehr zum Spaß und nicht so ernst gemeint. Versucht mit verschiedenen. Vielleicht ist das mehr nach Belieben? 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.
Runium
76

Sinclair BASIC auf dem ZX Spectrum 48K (261 Bytes)

BASIC-Auflistung:

BASIC-Auflistung

Endergebnis:

Ergebnis

Programm läuft und Code messen:

Programm läuft

BASIC-Auflistung im Textformat:

5 INK VAL "7": CLS 
10 LET a=VAL "42": LET b=VAL "131": LET c=VAL "40": CIRCLE INK SGN PI;a,b,c: CIRCLE INK PI-PI;a+a+a,b,c: CIRCLE INK VAL "2";VAL "210",b,c
20 LET a=VAL "84": LET b=VAL "87": CIRCLE INK VAL "6";a,b,c: CIRCLE INK VAL "4";a+a,b,c
30 FOR l=PI-PI TO VAL "21": FOR c=PI-PI TO VAL "31": IF ATTR (l,c)<>VAL "63" THEN PRINT INK VAL "8";AT l,c;"*"
40 NEXT c: NEXT l

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

mcleod_ideafix
quelle
17
Ich mag den Asciification-Teil :)
Thorbjørn Ravn Andersen
1
Das ist schön!
pcnThird
Die Verwendung der Z80-Sprite-Grafik ist einfach genial !! PS subtrahieren 20 Punkte für Farben.
Tomas
Es fühlt sich so schmutzig an, normale Kunst zu erzeugen und daraus ASCII-Kunst zu machen. :)
undergroundmonorail
Könnten Sie den Quellcode in einer kopierbaren Form einfügen?
Paŭlo Ebermann,
44

Also habe ich nicht richtig gelesen, es ist ASCII-Kunst, also denke ich, dass dies ungültig ist. Hoppla!


HTML 121 (141 - 20)

<pre style=line-height:3px;letter-spacing:-3px><font color=#06f>O <font color=#000>O <font color=red>O
 <font color=#fa0>O <font color=#193>O

In Chrome:

Was ist das!  Eine olympische Flagge für Ameisen?

PHP 103 (123 - 20)

<pre style=line-height:3px;letter-spacing:-3px><?=($f='<font color=')."#06f>O ${f}#000>O ${f}red>O
 ${f}#fa0>O ${f}#193>O";
Dom Hastings
quelle
2
Sie können die Farben ein bisschen näher ohne Abzug bekommen: blau #06f#fa0#193
:,
2
Da es sich nicht um eine Konsolenausgabe handelt, sind Sie besser dran,
wenn
39

Ruby: 198 Zeichen - 20 = 178

a=[*0..9].map{[' ']*35}
d=->c,x,y=0{11.times{|i|7.times{|j|a[y+j][x+i]="^[[3#{c}m#^[[0m"if[248,774,1025,1025,1025,774,248][j]&1<<i!=0}}}
d[4,0]
d[0,12]
d[1,24]
d[3,6,3]
d[2,18,3]
$><<a.map{|r|r*''}*$/

(Beachten Sie, dass ^[es sich um einzelne Zeichen handelt.)

Probelauf:

Olympische Spiele-Logo

Mann bei der Arbeit
quelle
37

Mathematica - 185

c[x_, y_] := 
 Table[Boole[Abs[(i - x)^2 + (j - y)^2 - 16] < 4], {i, 0, 15}, {j, 0, 
   30}]
MatrixForm@
 Replace[Blue c[5, 4] + Black c[5, 14] + Red c[5, 24] + 
   Yellow c[9, 9] + Green c[9, 19], {0 -> "", 
   c_ + _ | c_ :> Style["*", c]}, {2}]

Hier ist die Ausgabe

Bildbeschreibung hier eingeben

Eine andere Version, basierend auf der Rasterung von Vektorgrafiken

MatrixForm@
 Replace[ImageData@
   Rasterize[
    Graphics[{Blue, Circle[{4, 9}, 4], Black, Circle[{14, 9}, 4], Red,
       Circle[{24, 9}, 4], Yellow, Circle[{9, 4}, 4], Green, 
      Circle[{19, 4}, 4]}], ImageSize -> {30, 15}], {c_ :> 
    Style["*", RGBColor@c]}, {2}]

Bildbeschreibung hier eingeben

swish
quelle
2
Sie erhalten Punkte für die schönste Ausgabe.
Michael Stern
Gute Arbeit. Ich habe meine eigene Version Ihres Codes veröffentlicht.
Mr.Wizard
34

PostScript, 203 (-20 = 183)

%!
/Courier findfont 12 scalefont setfont
/l { setrgbcolor translate 20 { 0 30 moveto (*) show 18 rotate } repeat } def
140 200 0 0 1 l 45 -30 1 1 0 l 45 30 0 0 0 l 45 -30 0 1 0 l 45 30 1 0 0 l
showpage

Ich behaupte, dass dies als "ASCII-Kunst" gilt, obwohl es nicht in die Konsole schreibt. Ausgabe:

Olympische Ringe

Dies könnte ein wenig mehr golfen werden.

Pseudonym
quelle
19
Wenn dies ASCII-Kunst ist, ist es sicherlich das erste Mal, dass ich rotierte Sternchen verwendet habe.
TheBlastOne
2
Ich bin sicher, es wird nicht das letzte sein.
Pseudonym
25

Windows-Befehlsskript - 112 Prozent Bytes

%1%0 @echo. set
%2.= oooo 
%2,=o    o
%1%.%%.%%.%&%1%,%%,%%,%&%1o  %.%%.%  o&%1%.%%.%%.%&%1   %,%%,%&%1   %.%%.%

100% olympische Ringe

Und natürlich die obligatorische Cheat'ish-Version - 4 Bytes

%~n0

gespeichert als:

@echo. oooo  oooo  oooo&echo.o    oo    oo    o&echo.o   oooo  oooo   o&echo. oooo  oooo  oooo&echo.   o    oo    o&echo.    oooo  oooo.cmd
Robert Sørlie
quelle
10
Wir brauchen mehr Antworten in BAT und CMD :)
Einacio
21

Ein weiterer Versuch in Perl, 130 120

Vielen Dank an manatwork für die Hilfe

for(qw(15005 40410 802a0 80a28 41414 15005 808 2a0)){$s=sprintf"%20b",hex;$s=~y/01/ #/;print$s.substr(reverse($s),1).$/}

Ausgabe:

   # # #         # # #         # # #   
 #       #     #       #     #       # 
#         # # #         # # #         #
#       # #   # #     # #   # #       #
 #     # #     # #   # #     # #     # 
   # # #         # # #         # # #   
        #       #     #       #        
          # # #         # # #          
zimperliches Ossifrage
quelle
3
Sie können sparen: 4 Zeichen mit foranstelle von foreach; 2 Zeichen durch Entfernen von ()runden sprintf()Argumenten; 2 Zeichen durch Entfernen hexdes Parameters; 1 Zeichen mit y///anstelle von tr///; 1 Zeichen durch Entfernen des Finales ;.
Handarbeit
@manatwork Danke! Ich habe noch nie davon gehört y///. Werde jetzt nachsehen.
Squeamish Ossifrage
20

Python: 157 140 138 133 122 107 Zeichen

107

(dank manatwork )

for o in"jzd360 1zlpwci 3ydgr29 20pzv5u jzd360 149ytc b8n40".split():print bin(int(o,36))[2:].rjust(34,'0')

Beispielausgabe:

0001001000000001001000000001001000
0100000010000100000010000100000010
1000000001001000000001001000000001
0100000110000110000110000110000010
0001001000000001001000000001001000
0000000100000010000100000010000000
0000000001001000000001001000000000

157

print'\n'.join(['{0:b}'.format(o).rjust(39,'0') for o in [45099909288,137984246274,275230249985,276241138945,137984246274,45099909288,1078001920,352343040]])

122

(habe gerade damit begonnen, ich werde versuchen, es zu verbessern)

h=lambda x:bin(int("15bb511iun9aqulod22j8d4 ho8skh  "[x::8],36))[2:].rjust(20)
for x in range(8):print h(x)+h(x)[::-1][1:]

mit besserer Ausgabe: 120 Zeichen

for o in"jzd360 1zlpwci 3ydgr29 20pzv5u jzd360 149ytc b8n40".split():print bin(int(o,36))[2:].replace('0',' ').rjust(34)

Beispielausgabe:

   1  1        1  1        1  1   
 1      1    1      1    1      1 
1        1  1        1  1        1
 1     11    11    11    11     1 
   1  1        1  1        1  1   
       1      1    1      1       
         1  1        1  1         
evuez
quelle
1
Was ist mit Basis 36? Dies hat 140 Zeichen: 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 den rjust()zweiten Parameter sparen. (Und fügen Sie ein "t" in die Überschrift dieses Beitrags ein.)
manatwork
Ich habe nach einer besseren Lösung gesucht, deine sieht toll aus!
Evuez
1
Schöne Verbesserung mit bin(). Aber warum benutzt du str()es? bin()Der Rückgabewert von ist bereits str.
Manatwork
3
Sollte die 5. Zeile nicht sein 010000010100000101000101000001010000010? Die beiden unteren Ringe sehen für mich etwas kaputt aus.
Squeamish Ossifrage
@manatwork in der Tat nicht darüber nachgedacht!
Evuez
17

Perl, 177 163

Eine verbesserte Version dank Dom Hastings:

$s=$"x3;print"  .-~-. "x3 .$/." /$s  \\"x3 .$/."|$s$s "x4 ."
 \\$s ./~\\.$s./~\\.$s /
  '-./'$s'\\-/'$s'\\.-'
"."$s |$s"x3 ."
$s "." \\$s  /"x2 ."
$s"."$s'-.-'"x2;

Ausgabe:

  .-~-.   .-~-.   .-~-. 
 /     \ /     \ /     \
|       |       |       |       
 \    ./~\.   ./~\.    /
  '-./'   '\-/'   '\.-'
    |       |       |   
     \     / \     /
      '-.-'   '-.-'
zimperliches Ossifrage
quelle
2
Hurra für Perl! Ein paar zusätzliche Einsparungen: Anstatt "\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=$"x3als mit $s=" ". Ich hoffe, das hilft!
Dom Hastings
15

C 257 Bytes

#include <stdio.h>
d(i,j){int r=35;float x=r,y=0;while(--r>0){char s[8]={29,(((int)y+j)/32)+32,(((int)y+j)%32)+96,(((int)x+i)/32)+32,(((int)x+i)%32)+64,31,'.',0};puts(s);x-=0.2*y;y+=0.2*x;}}main(){d(140,200);d(185,170);d(230,200);d(275,170);d(320,200);}

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:

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.

Pseudonym
quelle
12

Java, 181 179 161 156 Bytes

enum M{M;{System.out.print(new java.math.BigInteger("2b13bp4vx9rreb1742o0tvtpxntx0mgsfw48c4cf",36).toString(2).replaceAll(".{29}","$0\n"));System.exit(1);}}

(Kompiliert nicht mit jdk 1.7, benötigt 1.6 oder niedriger)

Die Ausgabe:

11100011111110001111111000111
10111110111011111011101111101
01111111000111111100011111110
10111100111001110011100111101
11100011111110001111111000111
11111101111101110111110111111
11111111000111111100011111111

Auf jeden Fall kein Gewinner, aber komm schon, es ist Java .

Yurii Shylov
quelle
2
Ersatz 2 Zeichen von nicht bei der Erfassung von 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 Zeilenumbruch
eingefügt
1
Eine weitere Sache: Entfernen Sie das importund setzen Sie den Paketnamen direkt in den Konstruktoraufruf. Das reduziert die Größe auf 161 Zeichen.
Handarbeit
Weitere 5 Bytes durch Ändern von class M{static{...auf gespart enum 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.
Yurii Shylov
12

Haskell, 200

main=mapM(putStrLn.map(\b->if b then '#' else ' '))$(map.map)(\(x,y)->or$map(\(n,m)->(<2).abs.(18-)$sqrt$(n-x)^2+(m-y*2)^2)$[(20,20),(60,20),(100,20),(40,40),(80,40)])$map(zip[0..120].repeat)[0..30]

Ausgabe:

            #################                       #################                       #################            
         ########### ###########                 ########### ###########                 ########### ###########         
      #######               #######           #######               #######           #######               #######      
     #####                     #####         #####                     #####         #####                     #####     
   #####                         #####     #####                         #####     #####                         #####   
  #####                           #####   #####                           #####   #####                           #####  
 #####                             ##### #####                             ##### #####                             ##### 
 ####                               #### ####                               #### ####                               #### 
 ####                               #### ####                               #### ####                               #### 
 ###                                 ### ###                                 ### ###                                 ### 
 ####                           #################                       #################                           #### 
 ####                        ########### ###########                 ########### ###########                        #### 
 #####                    #######  ##### #####  #######           #######  ##### #####  #######                    ##### 
  #####                  #####    #####   #####    #####         #####    #####   #####    #####                  #####  
   #####               #####     #####     #####     #####     #####     #####     #####     #####               #####   
     #####            #####    #####         #####    #####   #####    #####         #####    #####            #####     
      #######        #####  #######           #######  ##### #####  #######           #######  #####        #######      
         ########### ###########                 ########### ###########                 ########### ###########         
            #################                       #################                       #################            
                     ###                                 ### ###                                 ###                     
                     ####                               #### ####                               ####                     
                     ####                               #### ####                               ####                     
                     #####                             ##### #####                             #####                     
                      #####                           #####   #####                           #####                      
                       #####                         #####     #####                         #####                       
                         #####                     #####         #####                     #####                         
                          #######               #######           #######               #######                          
                             ########### ###########                 ########### ###########                             
                                #################                       #################                                

Golf gespielt von:

{-# LANGUAGE NoMonomorphismRestriction #-}

olympMids = [(1,1),(3,1),(5,1),(2,2),(4,2)]
circleRadius = 0.9
circleBorder = 0.1
scaleFactor = 20
verticalScale = 0.5

distance :: Floating a => (a,a) -> (a,a) -> a
distance (x,y) (x2,y2) = sqrt $ (x2-x)^2 + (y2-y)^2

match :: (Floating a, Ord a) => (a,a) -> (a,a) -> Bool
match v v2 = (<circleBorder) . abs . (circleRadius-) $ distance v v2

matchOlymp :: (Floating a, Ord a) => (a,a) -> Bool
matchOlymp v = or $ map (match $ scale v) $ olympMids
  where
    scale (x,y) = (x / scaleFactor, y / scaleFactor / verticalScale)

board :: (Enum a, Num a) => a -> a -> [[(a, a)]]
board lx ly = map (zip [0..lx] . repeat) [0..ly]

printOlymp = mapM (putStrLn . map to) $ (map.map) matchOlymp $ board 120 30

main = printOlymp

to :: Bool -> Char
to True = '#'
to False = ' '
Vektorweg
quelle
2
Ich lache immer noch darüber, map.mapweil es lustig klingt. : D
Vektorweg
Es scheint irgendwie aufgebläht ...
SamB
die ringe oder der code?
Vektorweg
Ich meine die Ringe :-)
SamB
11

Rubin, 9

p"\044"*5

#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.

Darren Stone
quelle
Witzig :) Als Chicagoer kann ich Ihnen sagen, dass der Bürgermeister genau das gesehen hat, als er die Spiele umwarb!
Dean Radcliffe
Als Vancouverite (2010 Games) kann ich mich auch beziehen. :-)
Darren Stone
8
Ich habe das Gefühl, hier einen Insider-Witz zu verpassen :-P
Türklinke
2
@DoorknobofSnow Tut mir leid, aber Sie haben sich über die Zeichencodes gewirrt. Wenn Sie keine Verbindung zwischen Olympischen Spielen und Dollarzeichen haben, kann ich Ihnen dort nicht weiterhelfen.
AmeliaBR
8
Ausgabe ist:
$
Roger
11

Javascript - 170 185 189 Zeichen

'jzd36071zlpwci73ydgr29720pzv5u7jzd3607149ytc7b8n40'.split(7).map(function(x){a=parseInt(x,36).toString(2);console.log((Array(35-a.length).join(0)+a).replace(/0/g,' '))})

Ausgabe:

   1  1        1  1        1  1    
 1      1    1      1    1      1  
1        1  1        1  1        1 
 1     11    11    11    11     1  
   1  1        1  1        1  1    
       1      1    1      1        
         1  1        1  1         

2. Javascript - 25 Zeichen

console.log('O O O\n O O')

Ausgabe:

O O O 
 O O 

Der zweite ist faul

Eduard Florinescu
quelle
1
Sie können schonen; 2 Zeichen unter Verwendung von "4" als Trennzeichen anstelle von "." Und unter Verwendung von Ziffer 4 (ohne Anführungszeichen) als split()Parameter; 2 Zeichen durch Entfernen der letzten 2 ;s.
Manatwork
A (derzeit) Firefox-Version nur der oben kann noch weiter reduziert werden, was zu 172 Zeichen: 'kpvbkq041re099tu43ifszg1t43iwiuayp41sdk52824kpvbkq04httbls45trxmo'.split(4).map(x=>{a=parseInt(x,36).toString(2);console.log(' '.repeat(39-a.length)+a.replace(/0/g,' '))}).
Handarbeit
Vielen Dank, fügte Ihr Vorschlag hinzu, ich werde es Browser für jetzt unabhängig lassen.
Eduard Florinescu
◯ ist nicht ascii ...
njzk2
@ njzk2 Yup, löste es סּ_סּ
Eduard Florinescu
11

Binär! (265 CHARS)

0001111100000000111110000000011111000
0100000001000010000000100001000000010
1000000001111100000000011111000000001
0100000011000011000001100001100000010
0001111100000000111110000000011111000
0000000010000001000001000000100000000
0000000001111100000000011111000000000

Es ist zu groß, um zu gewinnen, aber zumindest sieht es cool aus!

Dozer789
quelle
Olympisches Logo in der Matrix.
user13107
@ user13107 Was?
Dozer789
10

PHP - 99 (-20?)

 bbbb  ####  rrrr
b    b#    #r    r
b   ybyy  g#gg   r
 bbyb  ##g#  rrrr
   y    yg    g
    yyyy  gggg

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?)

' bbbb  ####  rrrr
b    b#    #r    r
b   ybyy  g#gg   r
 bbyb  ##g#  rrrr
   y    yg    g
    yyyy  gggg'
Justin
quelle
16
Wo ist der Code?
Machen Sie den
14
@Undo Das ist der Code ;-)
Türknauf
In Wahrheit kenne ich PHP nicht. Das ist das einzige PHP-Programm, das ich schreiben kann. (Sicher habe ich ein Tutorial durchlaufen, aber ich habe es vergessen).
Justin
2
Würde das PHP nicht als bbbb #### rrrr bb # #rrb ybyy g # gg r bbyb ## g # rrrr yg g yyyy gggg auf dem Bildschirm erscheinen?
Mr Lister
4
Sie müssen hinzufügen header("Content-Type: text/plain"), der Standard für Webserver ist Text / HTML
Kroltan
10

Bash + ImageMagick: 163 Zeichen

e=ellipse
c=,10,5,0,360
convert -size 70x20 xc:black +antialias -stroke white -fill none -draw "$e 10,5$c$e 34,5$c$e 58,5$c$e 22,10$c$e 46,10$c" xpm:-|tr -dc ' .
'

Beispielausgabe:

.

     ...........             ...........             ...........
   ....       ....         ....       ....         ....       ....
 ...             ...     ...             ...     ...             ...
..                 ..   ..                 ..   ..                 ..
..                 ..   ..                 ..   ..                 ..
.                ...........             ...........                .
..             ......   ......         ......   ......             ..
..           ...   ..   ..   ...     ...   ..   ..   ...           ..
 ...        ..   ...     ...   ..   ..   ...     ...   ..        ...
   ....     ......         ......   ......         ......     ....
     ...........             ...........             ...........
            ..                 ..   ..                 ..
            ..                 ..   ..                 ..
             ...             ...     ...             ...
               ....       ....         ....       ....
                 ...........             ...........
Mann bei der Arbeit
quelle
10

Perl 6: 112 77 56 Zeichen, 75 Byte

say flip .ord.base(2).trans("01"=>" @")for"𜜜𢢢񃣡𦶲𜜜䔐㣠".comb
  • Unicde-Strings! (Die obige Zeichenfolge lautet "\ x1C71C \ x228A2 \ x438E1 \ x26DB2 \ x1C71C \ x4510 \ x38E0")
  • .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 Sichtbarkeit
  • flip 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

say flip :36($_).base(2).trans("01"=>" @")for<2HWC 315U 5XI9 3ESY 2HWC DN4 B8G>
  • <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 $_( forLoop-Standardvariable).

edit: alte lösung hat schönere (kopierte) zeichnung aber ist länger:

  say flip :36($_).base(2).trans("01"=>" o")for<KPVBKQ0 1RE099TU 3IFSZG1T 3IWIUAYP 1SDK5282 KPVBKQ0 HTTBLS 5TRXMO>
   ooooooooo
 oooooo
oooooooo
oooooooooo
 oooooooooo
   ooooooooo
        oooo
          oooooo
Ayiko
quelle
10

Mathematica 185 175

10 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 .

Graphics[{[email protected],Style["O",#]~Text~#2&@@@{{Blue,{-1.5,1}},{Black,{0,1}},{Red,{1.5,1}},{Orange,{-.8,.4}},{Darker@Green,{.8,.4}}}},BaseStyle->{145,FontFamily->"Century Gothic"}]

Olympische Ringe

DavidC
quelle
2
Da es sich nicht um eine Konsolenausgabe handelt, sind Sie besser dran,
wenn
FontSize -> kann entfernt werden.
Mathe
@ Mathe, stimmt. Ich habe die Schriftgröße nur verwendet, um die Ausgabe auf eine angemessene Größe zu bringen.
DavidC
@DavidC Ich meine , Sie ersetzen könnte FontSize -> 145durch 145.
Mathe
@mathe. Ja! Vielen Dank.
DavidC
8

JavaScript: 153 Zeichen

Ich wollte sehen, ob ich es mit Algebra schneller machen kann, um die Kreise tatsächlich grafisch darzustellen:

s="";c=[3,7,11,7,19,7,7,4,15,4];for(y=10;y>0;y--){s+="\n";for(x=0;x<23;x+=.5){t=1;for(i=0;i<9;i+=2){a=x-c[i];b=y-c[i+1];d=a*a+b*b-9;t&=(d<0?-d:d)>3}s+=t}}

( cist ein Array von fünf (x, y) Paaren, die Zentren der Kreise, abgeflacht, um zehn Zeichen zu speichern.)

Ausgabe:

1110000000111111111000000011111111100000001111
1000111110001111100011111000111110001111100011
0011111111100111001111111110011100111111111001
0011111111100000001111111110000000111111111001
0011111110000111000011111000011100001111111001
1000111100001111100001110000111110000111100011
1110000000111111111000000011111111100000001111
1111111100111111111001110011111111100111111111
1111111110001111100011111000111110001111111111
1111111111100000001111111110000000111111111111

159 Zeichen sind etwas lesbarer:

s="";c=[3,7,11,7,19,7,7,4,15,4];for(y=10;y>0;y--){s+="\n";for(x=0;x<23;x+=.5){t=1;for(i=0;i<9;i+=2){a=x-c[i];b=y-c[i+1];d=a*a+b*b-9;t&=(d<0?-d:d)>3}s+=t?" ":t}}

Ausgabe:

   0000000         0000000         0000000    
 000     000     000     000     000     000  
00         00   00         00   00         00 
00         0000000         0000000         00 
00       0000   0000     0000   0000       00 
 000    0000     0000   0000     0000    000  
   0000000         0000000         0000000    
        00         00   00         00         
         000     000     000     000          
           0000000         0000000            

In 167 Zeichen haben wir "Farben":

s="";c=[3,7,11,7,19,7,7,4,15,4];for(y=10;y>0;y--){s+="\n";for(x=0;x<23;x+=.5){t=1;for(i=0;i<9;i+=2){a=x-c[i];b=y-c[i+1];d=a*a+b*b-9;t&=(d<0?-d:d)>3;h=t?i:h}s+=t?" ":h}}

Ausgabe:

   8888888         0000000         2222222    
 888     888     000     000     222     222  
88         88   00         00   22         22 
88         8844400         0066622         22 
88       4444   0044     6600   2266       22 
 888    4444     0004   6000     2226    222  
   8888888         0000000         2222222    
        44         44   66         66         
         444     444     666     666          
           4444444         6666666            

Und mit 189 Zeichen kann ich den Radius auch reinstellbar machen :

r=5;s="";c=[r,0,2*r+1,r,3*r+2,0,4*r+3,r,5*r+4,0];for(y=-r;y<3*r;y++){s+="\n";for(x=0;x<9*r;x+=.5){t=1;for(i=0;i<9;i+=2){a=x-c[i];b=y-c[i+1];d=a*a+b*b-r*r;t&=(d<0?-d:d)>r;h=t?i:h}s+=t?" ":h}}

http://jsfiddle.net/mblase75/5Q6BX/

Blazemonger
quelle
7

APL, 8 Zeichen / Byte *

Hier ist eine Antwort für die niedrigste Zeichenanzahl (das ist doch Code Golf)

2 5⍴'○ '

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)

2 20⍴'m',⍨¯2↓3↓∈(⊂'m○ ^[[3'),⍪'40132 '
                      ‾‾ ← single Esc character, type Ctrl+V Esc on the terminal

Ausgabe: Farbringe Terminal-Ausgang ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ *: 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.

Tobia
quelle
7

CSS, 1176 922 855 771 Bytes, -20 Farbbonus = 751

html,head,title,body{display:block; color:transparent; font:bold 1em/1 monospace; height:0}
link,meta,style{display:none}
:before,:after{float:left; color:#000; white-space:pre;
content:'   @@@@@@@\A  @@@     @@@\A@@         @@ \A            @@\A@@         @@\A@@         @@\A  @@@     @@@\A    @@@@  @'}
html:before{color:blue}
title:before,title:after{color:blue; position:absolute; left:0; top:3em; content:'@@'}
title:after{color:red; top:7em; content:'                                   @@'}
head:after{color:red}
body:before{clear:left; content:'     '}
body:after,html:after{position:relative; top:-5em; color:#EC0;
content:'    @  @@@@\A   @@@     @@@\A  @@         @@\A  @@         @@\A  @@\A  @@         @@\A   @@@     @@@\A     @@@@@@@'}
html:after{color:#090}

Nur CSS, kein Markup erforderlich. Sehen Sie markenlose Geige hier: http://jsfiddle.net/XcBMV/12/

Ringe

In Farbe und mit der richtigen Überlappung.

Herr Lister
quelle
6

Perl - 12 Zeichen

say"OOO\nOO"

OK, es ist also keine besonders künstlerische Darstellung. ;-)

Etwas niedlicher:

perl -MTerm::ANSIColor=:constants -E'say ON_BRIGHT_WHITE,BLUE,O,BLACK,O,RED,O,$/,YELLOW,O,GREEN,O,RESET'
tobyink
quelle
6

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:

.code16;S:jmp o;nop;o:mov $1984,%ax;mov %ax,%ds;mov %ax,%es;movw $t,%si;r:lodsb;or %al,%al;jz q;cmp $33,%al;jg k;movb $0,c;call X;inc %dh;mov $0,%dl;call G;jmp r;k:sub $48,%al;mov %al,%cl;add %al,c;lodsb;cmp $32,%al;je v;mov %al,%bl;and $15,%bl;mov $35,%al;v:mov $9,%ah;mov $0,%bh;mov $0,%ch;int $16;call X;mov c,%dl;call G;jmp r;q:ret;G:mov $2,%ah;int $16;X:mov $3,%ah;mov $0,%bh;int $16;ret;c:.byte 0;t:.asciz "3 5A9 5H9 5D!1 1A7 1A5 1H7 1H5 1D7 1D!1A9 1A4N9 1H4B9 1D!1A7 1N1 1A3 1H1 1N5 1B1 1H3 1D1 1B7 1D!1 1A5 1N1 1A5 1H1 1N3 1B1 1H5 1D1 1B5 1D!3 4A1N9 4H1B9 5D!8 1N7 1N5 1B7 1B!9 1 5N9 5B!";.=S+510;.word 0xaa55

(Linux) MBR-Image erstellen und extrahieren

as -o olymp.o olymp.S
objcopy -O binary olymp.o olymp.img

Laufen im Emulator

(Habe es noch nicht auf meinem Heimcomputer getestet ...)

qemu-system-i386 olymp.img

Ergebnis

Bildbeschreibung hier eingeben

Runium
quelle
4
Sie sind sich sicher, dass Sie externe Ressourcen nicht extrem nutzen, oder? +1
Adam Maras
@AdamMaras: Ja, und da ist das;), musste es versuchen. Als nächstes soll eine echte Last des Betriebssystems einbezogen werden. O`Loader II.
Runium
Wie wird es bewertet, wenn Sie die Binärdatei messen, vorausgesetzt, dass die Festplatte bereits über einen Bootsektor verfügt, sodass Sie die 55-Stunden-AAh am Ende überspringen können (zusammen mit dem zugehörigen Auffüllen)?
SamB
@ SamB: Das wären 275 Bytes, 255 pt, wobei der Codeteil ungefähr 91 Bytes und die Variable + Plotdaten 184 Bytes sind.
Runium
5

TI-Basic (16 Byte)

Hinweis: TI-Basic ist tokenisiert. Wenn ich mich richtig erinnere ClrHomeund Dispes sich um Ein-Byte-Token handelt.

ClrHome
Disp "O O O"," O O
bb94
quelle
4
#include<iostream.h>
#include<conio.h>
#define tc textcolor

void circle(int x,int y,int k)
{
  tc(k);
  int n;
  for(n=0;n<=6;n++)
  {

    if(n==0||n==6)
    {
      gotoxy(x+3,y+n);
      cprintf("* * *");
    }
    else if(n==1||n==5)
    {
      gotoxy(x+1,y+n);
      cprintf("*");
      gotoxy(x+9,y+n);
      cprintf("*");
    }
    else if(n>1&&n<5)
    {
      gotoxy(x,y+n);
      cprintf("*");
      gotoxy(x+10,y+n);
      cprintf("*");
    }
  }
}

void main()
{
  clrscr();
  circle(1,1,BLUE);
  circle(14,1,WHITE);
  circle(27,1,RED);
  circle(8,4,YELLOW);
  circle(21,4,GREEN);
  _setcursortype(0);
  getch();
}

Hergestellt in Turbo C ++ 3.0 Compiler.  Versucht, den Code so kurz wie möglich zu halten

Archon
quelle
7
1) Verwenden Sie Markdown, um den Codeblock zu markieren und den bereitgestellten Code lesbar zu halten. 2) Da dies eine Code-Golf- Herausforderung ist, versuchen Sie bitte, die Größe Ihres Codes auf das unbedingt Notwendige zu reduzieren. 3) Bitte fügen Sie Ihrer Antwort eine Überschriftenzeile hinzu (hervorgehoben mit einem gewissen Aufschlag bis zu Ihrer Präferenz (normalerweise Überschrift 1 oder fett )), wobei Sie die verwendete Sprache, die Länge des Codes und die erzielte Punktzahl angeben.
Manatwork