Draw the Olympic Games logo

107

24

Challenge

Draw the Olympic Games logo...

Olympic Games logo

...as character (e.g. ASCII) art!

Sample Output

      * * *               * * *               * * *
  *           *       *           *       *           *
*               *   *               *   *               *
*               * * *               * * *               *
*           *   *   *   *       *   *   *   *           *
  *       *   *       *   *   *   *       *   *       *
      * * *               * * *               * * *
          *               *   *               *
            *           *       *           *
                * * *               * * *

Your art doesn't have to look exactly like mine, but it has to represent the Olympic rings well enough that it's recognizable.

Rules

  • The program must write the art to the console.
  • Shortest code (in bytes, any language) wins.
  • A solution that prints rings in their respective colors (or a close representation) will be awarded a minus-twenty-point bonus.

The winner will be chosen on February 23rd at the end of the 2014 Winter Olympics.


Winners

Adam Maras

Posted 2014-01-21T06:41:35.900

Reputation: 1 103

Question was closed 2016-05-23T22:47:52.687

I'm voting to close this as too broad because of the rule "Your art doesn't have to look exactly like mine, but it has to represent the Olympic rings well enough that it's recognizable." – Mego – 2016-05-23T20:56:27.000

720 bonus points. Um, why would I want +20 to my score? – Justin – 2014-01-21T07:21:02.683

@Quincunx I assume -20 was meant – John Dvorak – 2014-01-21T08:10:39.640

21Hum, this is a trademark… – moala – 2014-01-21T09:56:07.210

4@moala I think this falls under fair use policy. – Nzall – 2014-01-21T14:23:41.383

3@NateKerkhofs ok, if you think that the IOC is ok to comply with solely the US copyright law, no problem for me. – moala – 2014-01-21T15:06:06.257

1

Be aware : http://registration.olympic.org/en/faq/detail/id/25 IOC are ùùùùù. Do not mess with them, they are really strict on the use of there logo

– Kiwy – 2014-01-21T15:36:50.943

1AFAIK, countries willing to participate in the Olympic Games have to adjust their copyright law to the IOC ideas, not the other way round. – Hagen von Eitzen – 2014-01-21T15:42:26.983

1Add a rule to include the (tm) mark also. – ja72 – 2014-01-21T15:44:35.553

I've changed the wording of the bonus rule to reflect that the "twenty-point bonus" is indeed not 20 points added to your score. – Adam Maras – 2014-01-21T16:02:47.177

To the trademark issue, I believe that this falls under nominative use, but the final decision resides with the purview of the administration and the lawyers. – Adam Maras – 2014-01-21T16:04:10.357

11In color, it's evident that they are interlocking rings, not merely overlapping. Few of the entries so far have accounted for that. – Rob Kennedy – 2014-01-21T17:53:12.403

6Totally IANAL: ok to write the sofware which draws the O****ic Rgs, not ok to execute it. :-) – Carl Witthoft – 2014-01-21T18:53:39.497

1Surely as no money is being made, this is not illegal. – Jonathan. – 2014-01-22T00:06:04.503

Too bad it's ASCII. Would look great with Python+Turtle for example. ;_; – Apache – 2014-01-22T10:54:40.527

How big a bonus is there for making the rings overlap in the correct way? Maybe 50? The only one I spotted doing this right was http://codegolf.stackexchange.com/a/19218/14680.

– SamB – 2014-01-27T19:41:03.190

er, s/is there/should there be/ – SamB – 2014-01-27T19:49:49.207

@SamB The challenge has already been up for a week, I'd rather keep the rules as they are in terms of bonuses. – Adam Maras – 2014-01-27T20:21:00.977

Answers

23

APL (82) (-20 = 62)

Edit: for a change, this program is simple enough that TryAPL will touch it, so you can run it there (just paste the line in).

Not sure if I can claim the 'color' bit, I'm representing them all differently though.

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]

The APL console doesn't support color, so I used shaded block characters (assigning any kind of other ASCII art would be as simple as replacing the characters at the beginning of the string.)

They should look like unbroken circles (depending on your font.)

      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]
    ▓▓▓▓▓▓▓▓▓▓▓▓          ████████████          ▓▓▓▓▓▓▓▓▓▓▓▓    
  ▓▓            ▓▓      ██            ██      ▓▓            ▓▓  
▓▓                ▓▓  ██                ██  ▓▓                ▓▓
▓▓            ░░░░░░░░░░░░          ▒▒▒▒▒▒▒▒▒▒▒▒              ▓▓
▓▓          ░░    ▓▓  ██  ░░      ▒▒    ██  ▓▓  ▒▒            ▓▓
▓▓        ░░      ▓▓  ██    ░░  ▒▒      ██  ▓▓    ▒▒          ▓▓
▓▓        ░░      ▓▓  ██    ░░  ▒▒      ██  ▓▓    ▒▒          ▓▓
▓▓        ░░      ▓▓  ██    ░░  ▒▒      ██  ▓▓    ▒▒          ▓▓
  ▓▓      ░░    ▓▓      ██  ░░  ▒▒    ██      ▓▓  ▒▒        ▓▓  
    ▓▓▓▓▓▓░░▓▓▓▓          ██░░██▒▒████          ▓▓▒▒▓▓▓▓▓▓▓▓    
          ░░                ░░  ▒▒                ▒▒            
            ░░            ░░      ▒▒            ▒▒              
              ░░░░░░░░░░░░          ▒▒▒▒▒▒▒▒▒▒▒▒                

Or:

      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

Posted 2014-01-21T06:41:35.900

Reputation: 30 224

165

Commodore 64 BASIC

Writing directly in the screen and color memory.

Program

Output:

Output


Here's how you do this with sprites.

Danko Durbić

Posted 2014-01-21T06:41:35.900

Reputation: 10 241

1That's fantastic. +1. Can we get a byte count? – Adam Maras – 2014-01-21T17:44:09.257

Yay! Don't forget to add an SYS 64738. – Xavier J – 2014-01-21T17:56:31.340

2Remember that you can abbreviate commands and line numbers too on C64 BASIC if you want to golf. – Gabriele D'Antona – 2014-01-21T18:36:40.050

This took me straight back to playing Epyx Summer Games. Good times.

– Jaydles – 2014-01-21T21:50:03.687

15The only thing that bothers me about this answer is: How is this ascii art? – Justin – 2014-01-21T23:43:53.883

10this is PETSCII-art – Gabriele D'Antona – 2014-01-22T06:55:00.000

7

@Quincunx: Since PETSCII is also known as CBM ASCII, this might qualify. If you want a different character to be used for drawing (to make it look more like classic ASCII art), replacing 160 (inverted space) with 42 (asterisk) in line 100 should do the trick.

– Heinzi – 2014-01-22T06:58:17.610

If you just make the bottom two rings start from the top at the same time as the others start from the bottom, it will draw them so they are actually interlocking. – AJMansfield – 2014-01-24T16:07:17.363

86

HTML Fiddle - 48, 35, 33 characters (Thanks @Dom and @cnst!)

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

Output:

enter image description here

Briguy37

Posted 2014-01-21T06:41:35.900

Reputation: 2 616

2You can save more chars using: OOO<div style="margin:-10px 5px">OO instead... (I think it needs to be a block though, hence the <div/>) – Dom Hastings – 2014-01-22T06:54:28.577

As this is not console output, you are better of at the free-style olympics contest: http://codegolf.stackexchange.com/q/19050/15168

– CousinCocaine – 2014-01-22T08:55:06.053

@DomHastings: Good call! Answer updated :) – Briguy37 – 2014-01-22T14:19:33.163

3Then why bother with div, can just use p instead! – cnst – 2014-01-22T18:48:15.380

@cnst Very nice! – Briguy37 – 2014-01-22T19:57:53.703

Does this count as ASCII art? – PygameNerd – 2014-01-22T21:00:48.840

2

@PygameNerd: It depends on your definition of "ASCII art": Yes if your definition is "ASCII characters arranged to form a picture"; no if your definition is "ASCII characters in a fixed-width text editor to form a picture". As for whether it is output to the console as CousinCocaine said, if the definition is "The control or monitoring unit of a computer, containing the keyboard or keys, switches, etc.", then the web browser output is part of the monitor and thus the console (though this is probably not what the OP intended).

– Briguy37 – 2014-01-22T21:57:51.357

It's good for a laugh, anyway ;-) – SamB – 2014-01-27T07:38:06.850

76

BASH in color - 271 - 20 = 251 – With entangled rings ;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}"

Result:

enter image description here


And the for fun of it one: 61 - 20 = 41.

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

enter image description here


LZ77 version:

echo H4sIALOY5VIAA12QwRXAIAhD767ghQV8CnYbXYENOnw1YqX1xk8wQGz1UiJKKRFebLX8ARsIs7g0g/djN7CdRAYC7Pf6h+5RVR3foMdTMcqHWlS3jKr5RKO/g25doJdXZ+ii75CseU2zNkGzH6HYCPKhPGmA2Wh3+7mEDHMgb/2cUPYJH2gPhtZxAQAA|base64 -d|zcat

Runium

Posted 2014-01-21T06:41:35.900

Reputation: 1 878

13Not many answers so far get the alternating overlap of the rings right, so this is worth an upvote even if the score is a bit higher. – Peter Taylor – 2014-01-21T18:41:42.287

1bash: !/\\e[3}": event not found :( – Alter Lagos – 2014-01-22T18:42:27.997

I think your bash version is valid -- nowhere in the OP does it specify the size of the graphic -- but you need to fix the "V" shape rings. Maybe a tilde (~) for the bottom of the rings? – AmeliaBR – 2014-01-22T19:04:37.697

@AlterLagos: You might find update works? – Runium – 2014-01-22T19:30:40.683

@AmeliaBR: Yes, That one was more for the fun of it, and not that seriously meant. Tried with various. Perhaps this is more to the liking? x='54mO53m_50m052m_51mO\n53m U 52mU\n';printf "${x//5/\\e[3}" – (I'm a bit evil with the 5 here.) Or even this might be better, with overlap in mind: x='54mO53mA50m052mA51mO\n53m U 52mU\n';printf "${x//5/\\e[3}" – though it might look more messy then the others. – Runium – 2014-01-22T19:32:26.513

Yep, with _ worked, cool! – Alter Lagos – 2014-01-22T19:41:24.373

I try to compress it but it didn't work :( printf "\echo H4sIAEc+41IAA0VQyxXAIAhbhQV8qLhNufaoEzh8EYI9GUM+ir6PjEmlFFKD9YfNoS6/jMmkUBhSCByuEGzaB8g8LheC6ck0ZzIw4mTyzXdTZIudFGa+rR4R8w57szH6CS2SvTV7ezLNmRUq+w9TZjHCFx51t9CxhQ9LqFlHKAEAAA==|base64 -d|zcat`"` – Alvin Wong – 2014-01-25T04:38:31.297

@AlvinWong: Not sure how you made the input for gzip, but updated A with a couple of lines. – Runium – 2014-01-26T23:27:03.037

Looks more like a benzene than olympic circle :-)

– Tomas – 2014-01-27T19:23:44.010

76

Sinclair BASIC on the ZX Spectrum 48K (261 bytes)

BASIC listing:

BASIC listing

Final result:

Result

Program running and code measuring:

Program running

BASIC listing in text format:

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 file with the program, suitable for emulators or real machine using DivIDE or DivMMC: http://www.zxprojects.com/images/stories/draw_the_olympics_flag.tap

mcleod_ideafix

Posted 2014-01-21T06:41:35.900

Reputation: 901

Could you include the source code in a copy-able form? – Paŭlo Ebermann – 2015-09-09T20:20:41.613

Done! You can use the text version, or feed the TAP file to an emulator or real machine. Your choice :) – mcleod_ideafix – 2015-09-09T21:51:04.377

17I like the asciification part :) – Thorbjørn Ravn Andersen – 2014-01-22T14:02:27.043

1This is lovely! – pcnThird – 2014-01-23T02:04:53.440

The use of Z80 sprite graphic is simply genial!! PS subtract 20 points for colors. – Tomas – 2014-01-27T20:32:32.563

It feels so dirty to generate regular art and then make ASCII art from it. :) – undergroundmonorail – 2014-02-24T08:12:29.030

44

So I didn't actually read properly, it's ASCII-art, so I guess this is invalid. Oops!


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:

What is this! An Olympic flag for ants?

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

Posted 2014-01-21T06:41:35.900

Reputation: 16 415

2You can get the colours a bit closer with no penalty: blue:#06f, yellow:#fa0, green:#193 – r3mainer – 2014-01-21T14:10:53.020

2

As this is not console output, you are better of at the free-style olympics contest: http://codegolf.stackexchange.com/q/19050/15168

– CousinCocaine – 2014-01-22T08:54:09.190

39

Ruby: 198 characters - 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*''}*$/

(Note that ^[ are single characters.)

Sample run:

olympic games logo

manatwork

Posted 2014-01-21T06:41:35.900

Reputation: 17 865

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}]

Here is the ouput

enter image description here

Another version, based on rasterization of vector graphics

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}]

enter image description here

swish

Posted 2014-01-21T06:41:35.900

Reputation: 7 484

2You get points for the prettiest output. – Michael Stern – 2014-01-21T16:41:12.947

Nice work. I posted my own version of your code. – Mr.Wizard – 2014-01-22T20:14:28.773

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

I maintain that this counts as "ASCII art", though it doesn't write to the console. Output:

Olympic Rings

This could be golfed a little more.

Pseudonym

Posted 2014-01-21T06:41:35.900

Reputation: 651

19If this is ASCII art, it surely is the first I've seen using rotated asterisks. – TheBlastOne – 2014-01-22T15:56:45.883

2I'm sure it won't be the last. – Pseudonym – 2014-01-23T00:28:03.153

25

Windows Command Script - 112 percent bytes

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

100% Olympic rings

And of course, the obligatory cheat'ish version - 4 bytes

%~n0

saved as:

@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

Posted 2014-01-21T06:41:35.900

Reputation: 1 036

10we need more answers in BAT and CMD :) – Einacio – 2014-01-21T20:18:34.327

21

Another attempt in Perl, 130 120

Thanks to manatwork for helping with this

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

Output:

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

r3mainer

Posted 2014-01-21T06:41:35.900

Reputation: 19 135

3You can spare: 4 character by using for instead of foreach; 2 characters by removing () round sprintf()'s arguments; 2 characters by removing hex's parameter; 1 character by using y/// instead of tr///; 1 character by removing the final ;. – manatwork – 2014-01-21T14:02:46.913

@manatwork Thanks! I've never even heard of y/// before. Will go and look it up now. – r3mainer – 2014-01-21T14:09:32.390

20

Python: 157 140 138 133 122 107 characters

107

(thanks to manatwork)

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

sample output:

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

(just started this one, I will try to improve it)

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:]

with better output: 120 characters

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

sample output:

   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

Posted 2014-01-21T06:41:35.900

Reputation: 383

1What about base 36? This has 140 characters: print'\n'.join(['{0:b}'.format(int(o,36)).rjust(39,'0')for o in"kpvbkq0 1re099tu 3ifszg1t 3iwiuayp 1re099tu kpvbkq0 httbls 5trxmo".split()]). Regarding the “better output” version, there you can spare rjust()'s second parameter. (And insert a “t” in this post's heading.) – manatwork – 2014-01-21T12:20:49.093

I was looking for a better solution, yours look great! – evuez – 2014-01-21T12:26:11.893

1Nice improvement with bin(). But why are you using str() around it? bin()'s return value is already str. – manatwork – 2014-01-21T13:17:31.447

3Shouldn't the 5th line be 010000010100000101000101000001010000010? The bottom two rings look a bit broken to me. – r3mainer – 2014-01-21T13:20:31.873

@manatwork indeed, didn't think about that! – evuez – 2014-01-21T13:25:25.237

@squeamishossifrage thanks, looks better now! – evuez – 2014-01-21T13:29:11.707

In the 146 character solution you can avoid the [ and ] of the list-comprehension inside str.join. – Bakuriu – 2014-01-21T14:37:53.357

it's in fact even shorter without the list-comprehension (just edited this solution) – evuez – 2014-01-21T14:42:19.287

17

Perl, 177 163

An improved version thanks to 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;

Output:

  .-~-.   .-~-.   .-~-. 
 /     \ /     \ /     \
|       |       |       |       
 \    ./~\.   ./~\.    /
  '-./'   '\-/'   '\.-'
    |       |       |   
     \     / \     /
      '-.-'   '-.-'

r3mainer

Posted 2014-01-21T06:41:35.900

Reputation: 19 135

2Hooray for Perl! A couple of extra savings: instead of using "\n" as $r, you can use $/ which defaults to "\n", literal newlines might even save you more in a couple of places. You can also save 1 more char using $s=$"x3 rather than $s=" ". Hope that helps! – Dom Hastings – 2014-01-21T10:28:12.107

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);}

This could have been golfed a bit more.

This has to be run on a Tektronix 4010 (or an emulator such as xterm -t). Output:

Ooutput

This is indeed ASCII art, since those are all '.' characters. And it does output to the console, as requested. Some Tektronix emulators support colour. Mine didn't, so I couldn't do that.

Pseudonym

Posted 2014-01-21T06:41:35.900

Reputation: 651

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]

Output:

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

golfed out of:

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

Posted 2014-01-21T06:41:35.900

Reputation: 301

2i still laugh about the map.map because it sounds funny. :D – Vektorweg – 2014-01-22T15:32:49.793

It seems kind of bloated ... – SamB – 2014-01-27T07:50:23.053

the rings or the code? – Vektorweg – 2014-01-27T10:30:43.703

I mean the rings :-) – SamB – 2014-01-27T19:22:20.253

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);}}

(Won't compile on jdk 1.7, requires 1.6 or lower)

The output:

11100011111110001111111000111
10111110111011111011101111101
01111111000111111100011111110
10111100111001110011100111101
11100011111110001111111000111
11111101111101110111110111111
11111111000111111100011111111

Definitely not a winner, but come on, it's java.

Yurii Shylov

Posted 2014-01-21T06:41:35.900

Reputation: 311

2Spare 2 characters by not capturing in replaceAll()'s regular expression and putting back the entire matched part: replaceAll(".{29}","$0\n"). (There may be an extra line break at the end of your file, as I count only 181 characters in the posted code.) – manatwork – 2014-01-22T16:01:18.633

1One more thing: remove the import and put the package name directly in the constructor call. That reduces the size to 161 characters. – manatwork – 2014-01-22T16:05:43.017

Spared another 5 bytes by changing class M{static{... to enum M{M;{.... Next big step is getting rid of BigInteger, is that possible? I'm trying to do some magic with String.format but have no results yet. – Yurii Shylov – 2014-01-23T09:10:48.747

11

Ruby, 9

p"\044"*5

#satire

The rules allow for art that does not look exactly like the example, but it must "represent the Olympic rings well enough that it's recognizable".

You may recognize this representation of the Olympic Games logo.

Darren Stone

Posted 2014-01-21T06:41:35.900

Reputation: 5 072

Funny :) As a Chicagoan, I can tell you that's exactly what the mayor saw when he was courting the games ! – Dean Radcliffe – 2014-01-21T17:36:24.403

As a Vancouverite (2010 Games), I can also relate. :-) – Darren Stone – 2014-01-21T18:28:34.307

8I feel like I'm missing out on an inside joke here :-P – Doorknob – 2014-01-22T03:23:20.413

@DoorknobofSnow Try this much more verbose Javascript version in your console: o=['\044']; o2=o.concat(o); "\t" + o2.concat(o).join(" ") + "\n\t " + o2.join(" "); – AmeliaBR – 2014-01-22T19:23:13.890

@AmeliaBR That does basically the same thing... how does that help explain anything? – Doorknob – 2014-01-22T19:28:27.147

2@DoorknobofSnow Sorry, I though you were getting confused about character codes. If you don't get the connection between Olympics and dollar signs, I can't help you there. – AmeliaBR – 2014-01-22T21:38:44.047

8output is: $$$$$ – Roger – 2014-01-22T22:44:53.597

Just tried in on http://repl.it/languages/Ruby ... got the output: "$$$$$" => nil

– Xantix – 2014-01-27T04:13:03.213

11

Javascript - 170 185 189 Chars

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

Output:

   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         

2nd Javascript - 25 Chars

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

Output:

O O O 
 O O 

The second is lazy

Eduard Florinescu

Posted 2014-01-21T06:41:35.900

Reputation: 1 863

1You can spare; 2 characters by using “4” as separator instead of “.” and using digit 4 (without quotes) as split()'s parameter; 2 characters by removing the last 2 ;s. – manatwork – 2014-01-21T16:31:07.517

A (currently) Firefox-only version of the above can be reduced even more, to 172 characters: 'kpvbkq041re099tu43ifszg1t43iwiuayp41sdk52824kpvbkq04httbls45trxmo'.split(4).map(x=>{a=parseInt(x,36).toString(2);console.log(' '.repeat(39-a.length)+a.replace(/0/g,' '))}). – manatwork – 2014-01-21T16:35:59.607

Thanks, added your suggestion, I will leave it browser independent for now. – Eduard Florinescu – 2014-01-21T16:40:09.437

◯ is not ascii... – njzk2 – 2014-01-21T20:44:28.733

@njzk2 Yup, solved it סּ_סּ – Eduard Florinescu – 2014-01-21T21:11:14.473

http://codegolf.stackexchange.com/a/19134/2972 :-D – Blazemonger – 2014-01-22T20:40:04.297

@Blazemonger Beats me :) – Eduard Florinescu – 2014-01-22T23:07:33.597

11

Binary! (265 CHARS)

0001111100000000111110000000011111000
0100000001000010000000100001000000010
1000000001111100000000011111000000001
0100000011000011000001100001100000010
0001111100000000111110000000011111000
0000000010000001000001000000100000000
0000000001111100000000011111000000000

It is too large to win, but at least it looks cool!

Dozer789

Posted 2014-01-21T06:41:35.900

Reputation: 281

Olympic logo in the Matrix. – user13107 – 2014-01-22T08:27:41.227

@user13107 What? – Dozer789 – 2014-01-28T22:12:28.493

10

PHP - 99 (-20?)

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

That is definitely recognizable. I say that my "colors" count; it's a close representation.

If you don't like that, then here is

GolfScript - 101 (-20?)

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

Justin

Posted 2014-01-21T06:41:35.900

Reputation: 19 757

16Where's the code? – Undo – 2014-01-21T15:11:23.537

14@Undo That is the code ;-) – Doorknob – 2014-01-21T18:08:27.810

In truth, I don't know PHP. That is the only PHP program/style I know how to write. (Sure I've gone through a tutorial, but I forgot it). – Justin – 2014-01-21T21:56:19.107

2Wouldn't the PHP one come out as bbbb #### rrrr b b# #r r b ybyy g#gg r bbyb ##g# rrrr y yg g yyyy gggg on the screen? – Mr Lister – 2014-01-22T07:55:54.660

@MrLister Nope: http://ideone.com/q2P0lX

– Justin – 2014-01-22T08:12:54.840

@MrLister Okay, try adding a carriage return at the ends of the lines. – Justin – 2014-01-22T08:18:02.757

4You need to add header("Content-Type: text/plain"), the default for web servers is text/html – Kroltan – 2014-01-22T12:27:29.230

-1 for using the code as the string literal – Tyzoid – 2014-01-25T14:58:46.023

10

Bash + ImageMagick: 163 characters

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

Sample output:

.

     ...........             ...........             ...........
   ....       ....         ....       ....         ....       ....
 ...             ...     ...             ...     ...             ...
..                 ..   ..                 ..   ..                 ..
..                 ..   ..                 ..   ..                 ..
.                ...........             ...........                .
..             ......   ......         ......   ......             ..
..           ...   ..   ..   ...     ...   ..   ..   ...           ..
 ...        ..   ...     ...   ..   ..   ...     ...   ..        ...
   ....     ......         ......   ......         ......     ....
     ...........             ...........             ...........
            ..                 ..   ..                 ..
            ..                 ..   ..                 ..
             ...             ...     ...             ...
               ....       ....         ....       ....
                 ...........             ...........

manatwork

Posted 2014-01-21T06:41:35.900

Reputation: 17 865

10

Perl 6: 112 77 56 characters, 75 bytes

say flip .ord.base(2).trans("01"=>" @")for"䔐㣠".comb
  • Unicde strings! (above string is "\x1C71C\x228A2\x438E1\x26DB2\x1C71C\x4510\x38E0")
  • .comb gives a List of the separate characters in a String (without argument anyway)
  • .ord gives character code number from character
  • .base(2) returns a string with base-2 encoding of that Int
  • .trans replaces the digits with space and @ for better visibility
  • flip reverses the characters of a string so that missing leading 0's don't mess up the drawing.
  @@@   @@@   @@@
 @   @ @   @ @   @
@    @@@   @@@    @
 @  @@ @@ @@ @@  @
  @@@   @@@   @@@
    @   @ @   @
     @@@   @@@

edit2: newer solution using qwote words and base-36 encoded

say flip :36($_).base(2).trans("01"=>" @")for<2HWC 315U 5XI9 3ESY 2HWC DN4 B8G>
  • <ABC DEF GHI> is a quote-words syntax in perl6, so you get a list of Strings
  • :36($_) creates an Int from a base-36 encoded string in $_ (for loop default variable)

edit: old solution has nicer (copied) drawing but is longer:

  say flip :36($_).base(2).trans("01"=>" o")for<KPVBKQ0 1RE099TU 3IFSZG1T 3IWIUAYP 1SDK5282 KPVBKQ0 HTTBLS 5TRXMO>
   o o o         o o o         o o o
 o       o     o       o     o       o
o         o o o         o o o         o
o       o o   o o     o o   o o       o
 o     o o     o o   o o     o o     o
   o o o         o o o         o o o
        o       o     o       o
          o o o         o o o

Ayiko

Posted 2014-01-21T06:41:35.900

Reputation: 519

10

Mathematica 185 175

10 bytes saved by mathe.

The rings below are ASCII 'O's.

The letter "O", slightly translucent, in Century Gothic, printed 5 times at font size=145 printer points.

This is not terminal art. However it fully satisfies Wikipedia's definition of Ascii art: http://en.wikipedia.org/wiki/ASCII_art.

Graphics[{Opacity@.8,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"}]

olympic rings

DavidC

Posted 2014-01-21T06:41:35.900

Reputation: 24 524

FontSize -> can be removed. – matrix89 – 2017-09-13T08:23:29.947

@mathe, True. I used the font size merely to make the output a reasonable size. – DavidC – 2017-09-13T11:25:24.660

@DavidC I mean you could replace FontSize -> 145 by 145. – matrix89 – 2017-09-14T02:42:15.173

@mathe. Yes! Thanks. – DavidC – 2017-09-14T19:54:57.660

2

As this is not console output, you are better of at the free-style olympics contest: http://codegolf.stackexchange.com/q/19050/15168

– CousinCocaine – 2014-01-22T08:56:01.557

8

JavaScript: 153 chars

I wanted to see if I could do it any faster using algebra to actually graph the circles:

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

(c is an array of five (x,y) pairs, the centers of the circles, flattened to save ten characters.)

output:

1110000000111111111000000011111111100000001111
1000111110001111100011111000111110001111100011
0011111111100111001111111110011100111111111001
0011111111100000001111111110000000111111111001
0011111110000111000011111000011100001111111001
1000111100001111100001110000111110000111100011
1110000000111111111000000011111111100000001111
1111111100111111111001110011111111100111111111
1111111110001111100011111000111110001111111111
1111111111100000001111111110000000111111111111

159 chars is a little more readable:

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

output:

   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 chars we have "colors":

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

output:

   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            

And with 189 chars, I can make the radius r adjustable as well:

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

Posted 2014-01-21T06:41:35.900

Reputation: 193

7

APL, 8 chars/bytes*

Here's an answer pushing for lowest char count (this is code golf after all)

2 5⍴'○ '

Output:

○ ○ ○
 ○ ○ 

The symbol is ○, APL circle operator. You can put an 'O' instead, in case you want strictly ASCII output. I just thought it fit to use an APL symbol.


Just for kicks, here's a color version (37 chars - 20 = 17 score)

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

Output: color rings terminal output ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
*: APL can be written in its own (legacy) single-byte charset that maps APL symbols to the upper 128 byte values. Therefore, for the purpose of scoring, a program of N chars that only uses ASCII characters and APL symbols can be considered to be N bytes long.

Tobia

Posted 2014-01-21T06:41:35.900

Reputation: 5 455

7

CSS, 1176 922 855 771 bytes, -20 colour bonus = 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}

CSS only, no markup needed. See markupless fiddle here: http://jsfiddle.net/XcBMV/12/

Rings

In colour, and with the correct overlap.

Mr Lister

Posted 2014-01-21T06:41:35.900

Reputation: 3 668

6

Perl - 12 characters

say"OOO\nOO"

OK, so it's not an especially artistic rendering. ;-)

Slightly cuter:

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

tobyink

Posted 2014-01-21T06:41:35.900

Reputation: 1 233

6

GAS Assembly 16-bit BIOS OL loader – 617 - 20 = 597

Going crazy on length here, so mere for the fun of it.


It does not load much, but it loads The Olympic Games logo as ASCII with colors ;)

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) Build and extract MBR image

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

Running in emulator

(Have not tested it on my home computer yet ...)

qemu-system-i386 olymp.img

Result

enter image description here

Runium

Posted 2014-01-21T06:41:35.900

Reputation: 1 878

4You sure take the idea of not using external resources to an extreme, don't you? +1 – Adam Maras – 2014-01-24T01:25:01.000

@AdamMaras: Yes, and there's that ;), had to try. Next is to incorporate a real load of OS. O`Loader II. – Runium – 2014-01-25T02:46:37.170

How does it score if you measure the binary, assuming that the disk already had a boot sector so you can skip the 55h AAh at the end (along with any associated padding)? – SamB – 2014-01-27T19:18:56.707

@SamB: That would be 275 bytes, 255 pt where the code part is about 91 bytes and the variable + plot data 184 bytes. – Runium – 2014-01-27T22:56:37.763

5

TI-Basic (16 bytes)

Note: TI-Basic is tokenized. If I remember correctly, ClrHome and Disp are one-byte tokens.

ClrHome
Disp "O O O"," O O

bb94

Posted 2014-01-21T06:41:35.900

Reputation: 1 831

4

Python (318-20)

def f(s,i,j,c): 
    for (k,l) in zip([i,i,i+1,i+1,i+2,i+2,i+3,i+3,i+4,i+4,i+5,i+5],[j+2,i+3,j+1,j+4,j,j+5,j,j+5,j+1,j+4,j+2,j+3]):s[k][l]=c+'+'+'\033[0m'
a=[]; 
for i in range(9):a+=[14*[' ']]
for i in [0,4,8]:f(a,0,i,'\033[9%im'%((4*i+4)%5))
for i in [2,6]:f(a,3,i, '\033[9%im'%((i+1)%5))
for l in a:print''.join(l)

a is a matrix of strings, the function f modifies it by drawing a circle at location i,j with color c using ansi color codes. Finally a is printed.

flonk

Posted 2014-01-21T06:41:35.900

Reputation: 242

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();
}

Made in turbo c++ 3.0 compiler. Tried t make the code as short as possible

Archon

Posted 2014-01-21T06:41:35.900

Reputation: 57

7

>

  • Please use Markdown to mark code block and keep the posted code readable. 2) As this is a [tag:code-golf] challenge, please try to reduce the size of your code to the strictly necessary. 3) Please add a heading line to your answer (emphasized with some markup up to your preference (usually header 1 or bold)), specifying the used language, the length of the code and the earned score.
  • – manatwork – 2014-01-21T18:41:48.420

    4

    Python - 163 characters (thanks to manatwork!)

    print("""  000     000     000
     0   0   0   0   0   0
    0     000     000     0
     0   0   0   0   0   0
      000     000     000
         0   0   0   0
          000     000""")
    

    Output:

      000     000     000  
     0   0   0   0   0   0 
    0     000     000     0
     0   0   0   0   0   0 
      000     000     000  
         0   0   0   0     
          000     000
    

    Very simple...

    tasteslikejava

    Posted 2014-01-21T06:41:35.900

    Reputation: 77

    >

  • Count it manually. 2) Use a text editor which displays text size or absolute character position. (Midnight Commander's built-in editor displays absolute positions too: move the cursor at the end of text and the absolute position will be equal with the size.) 3) Save it in a file and look at its size. Or if is already posted, Code Golf UserScript Enhancement Pack tells it.
  • – manatwork – 2014-01-22T17:14:14.493

    I just used len() – tasteslikejava – 2014-01-22T17:16:50.907

    len() said it was 170 characters... – tasteslikejava – 2014-01-22T17:18:33.510

    MCEdit says 176. No idea what I miscalculated earlier. – manatwork – 2014-01-22T17:19:38.290

    Minecraft Editor...? – tasteslikejava – 2014-01-22T17:21:29.337

    Midnight Commander's editor. – manatwork – 2014-01-22T17:22:47.247

    that makes much more sense... – tasteslikejava – 2014-01-22T17:23:41.363

    1

    Regarding your code, you can spare: 2 characters by changing for "…" to """…""" and using literal newlines instead of \n; 11 characters by removing trailing spaces from each line's end. http://pastebin.com/9wQmB2N1 (See RAW Paste Data – their syntax highlight seems to alter the code.)

    – manatwork – 2014-01-22T17:29:09.580

    Thinking again, that code is composed mostly by repeating two substrings. So you can use those two “Lego® bricks” to build up the logo: http://pastebin.com/9VfqULji

    – manatwork – 2014-01-22T17:57:54.420

    4

    Coffeescript 123

    Input:

    for t in[y=124830,137313,146673,y,17160,15600]
     n=t.toString 2;k=31-n.length;n=0+n while k--;console.log n.replace /0/g,' '
    

    Output:

       1111  1111  1111
      1    11    11    1
      1   1111  1111   1
       1111  1111  1111
         1    11    1
          1111  1111
    

    Screenshot:

    Coffeescript Ascii Olympic Rings

    Javascript 136

    Input:

    r=[y=124830,137313,146673,y,17160,15600]
    for(i in r){
    n=r[i].toString(2)
    k=31-n.length
    while(k--)n=0+n
    console.log(n.replace(/0/g,' '))}
    

    Ignacio Lago

    Posted 2014-01-21T06:41:35.900

    Reputation: 141

    3

    R - 70

    Using CRAN-R statistics. Unfortunately the output goes to X and not to the console. I resubmitted this answer to the Olympic Games Logo - Free Style Edition

    Anyhow, here is the code:

    l=c(1,9);plot(3:7,c(6,4,6,4,6),col=c(4,7,1,3,2),cex=10,ylim=l,xlim=l)
    

    R plot

    CousinCocaine

    Posted 2014-01-21T06:41:35.900

    Reputation: 1 572

    1"The program must write the art to the console." – klingt.net – 2014-01-21T22:45:31.530

    2The challenge calls for ASCII art... – Igby Largeman – 2014-01-21T23:23:25.410

    Indeed, this program does not write art to the console and is therefor obsolete for this contest. – CousinCocaine – 2014-01-22T08:00:17.203

    3

    C - 230 bytes

    Not a winner, but draws in a non-intuitive way:

    #include <stdio.h>
    #include <math.h>
    #define D(p,q) ((int)hypot(x-(p),y-(q))==8)
    int main(){int y,x;for(y=0;y<29;y++){for(x=0;x<61;x++)putchar((D(10,10)||D(30,10)||D(50,10)||D(20,18)||D(40,18))?'*':' ');putchar('\n');}return 0;}
    

    To compile, gcc -o ologo ologo.c -lm.

    Output:

        *********           *********           *********
       **       **         **       **         **       **
      *           *       *           *       *           *
     *             *     *             *     *             *
    **             **   **             **   **             **
    *               *   *               *   *               *
    *               *   *               *   *               *
    *               *   *               *   *               *
    *             *********           *********             *
    *            ** *   * **         ** *   * **            *
    *           *   *   *   *       *   *   *   *           *
    *          *    *   *    *     *    *   *    *          *
    **        **   **   **   **   **   **   **   **        **
     *        *    *     *    *   *    *     *    *        *
      *       *   *       *   *   *   *       *   *       *
       **     * **         ** *   * **         ** *     **
        *********           *********           *********
              *               *   *               *
              *               *   *               *
              *               *   *               *
              **             **   **             **
               *             *     *             *
                *           *       *           *
                 **       **         **       **
                  *********           *********
    

    user15259

    Posted 2014-01-21T06:41:35.900

    Reputation:

    2

    using PASCAL / DELPHI

    program Project_olympic_rings;
    {$APPTYPE CONSOLE}
    {$R *.res}
    uses
      System.SysUtils;
    begin
        writeln(' O O O ' + #10 + '  O O ');
        readln;
    end.
    

    screen dump

    bela

    Posted 2014-01-21T06:41:35.900

    Reputation: 81

    1

    You can shorten that by removing lines 3, 4, 5, and 8 since they contribute nothing. You can also remove the string concatenation since string and char literals can be written adjacently. There's also a shorter way to write line breaks. In total: program O;{$APPTYPE CONSOLE}begin writeln('O O O'^M' O O')end. 62 characters

    – Rob Kennedy – 2014-01-22T16:35:58.667

    1Or in plain Pascal, 34 characters: begin write('O O O'#10' O O') end. – manatwork – 2014-01-22T19:01:41.380

    2

    PowerShell, 555 bytes

    Certainly not the shortest, but it's PowerShell with real circle functions and some color!

    oic sample image

    cls
    c 8 8 1
    c 16 8 2
    c 24 8 3
    c 12 15 4
    c 20 15 5
    w 30 30 . 6
    function global:c ([int]$x,[int]$y,[int]$n) {
    foreach ($i in 1..360) 
    {
    $t = [math]::pi * ($i / 180)
    w ($x + 5 * [math]::cos($t)) ($y + 5 * [math]::sin($t)) * $n
    }
    }
    function global:w ([int]$x,[int]$y,[string]$c,[int]$n) { 
    $p=$host.ui.rawui.cursorposition 
    $p.x=$x 
    $p.y=$y 
    $host.ui.rawui.cursorposition=$p 
    $h="green"
    switch ($n){ 1 {$h = "blue" } 2 {$h = "black" } 3 {$h = "red" } 4 {$h = "yellow" } 5 {$h = "green" }}
    write-host $c -f $h -nonewline
    } 
    

    chrixbittinx

    Posted 2014-01-21T06:41:35.900

    Reputation: 65

    Nitpick: the rings aren't supposed to be linked to their neighbors to the left and right. – Blazemonger – 2014-01-24T15:19:12.533

    Great point, really shows how much I'm into sports. Is it bad etiquette to edit my answer? – chrixbittinx – 2014-01-24T17:04:39.277

    Don't see why it would be. – Blazemonger – 2014-01-24T17:56:05.573

    2

    LAZARUS / FREE PASCAL (with color support , unit CRT)

    program P;
    uses crt;
    procedure R(c : Byte);
    begin
      TextColor(c);
      write('O ');
    end;
    begin
      R(blue);
      R(white);
      R(red);
      writeln;
      write(' ');
      r(yellow);
      r(green);
    end. 
    

    screen dump LAZARUS Project

    bela

    Posted 2014-01-21T06:41:35.900

    Reputation: 81

    As this is a [tag:code-golf] challenge better reduce those 179 characters. For example to 115: http://pastebin.com/kuQM4TiN And please mention your code's length and score too in your answers header line.

    – manatwork – 2014-01-23T10:28:52.663

    2

    HTML+CSS (222 ch)

    First go at code golf so it's not golfed nearly enough but I hadn't spotted anyone using HTML+CSS yet so meh..

    <style>a{margin:-8px;font-size:4em}a:first-child{color:blue}a:nth-child(3){color:red}a:nth-child(4){color:#ff0}a:last-child{color:#060}a:nth-child(n+4){position:relative;top:-.8em;left:.2em}</style><a>O<a>O<a>O<br><a>O<a>O
    

    Someone can probably golf it more. (size for example was just to make it look better!)

    fiddle: http://jsfiddle.net/mikecmpbll/LtYCh/1/

    Mike Campbell

    Posted 2014-01-21T06:41:35.900

    Reputation: 141

    2

    Jquery 503 chars

    good challenge!

    since I'm a web developer, I used the tools that I use each day... html/jquery/js

    check out my answer at jsfiddle.net

    http://jsfiddle.net/rYcVV/5/

    screenshot of rings attached... enter image description here

    code minified <div id="rings"/><div id="rings"/>var color=["#06f","#000","red","#fa0","#193"],lefty=[150,300,450,225,380],toppy=[50,50,50,100,100];for(var j=0;j<color.length;j++){for(var i=0;i<36;i++){$("#rings").append('<span class="x'+j+'" style="color:'+color[j]+";;display:inline-block;position:absolute;left:"+lefty[j]+"px;top:"+toppy[j]+'px;height:150px;transform-origin: bottom bottom;width:15px;">*</span>')}}for(var m=0;m<color.length;m++){for(var k=0;k<36;k++){$($("span.x"+m)[k]).css("transform","rotate("+(10*k)+"deg)")}};

    J nui

    Posted 2014-01-21T06:41:35.900

    Reputation: 21

    1>

  • Your jsFiddle has wrong setup. For Framework you picked “No Library (pure JS)” so the jQuery code not works. 2) jsFiddle or similar link is welcome, but optional. You have to post your code here. 3) Please add a heading line to your post and specify the used language there. (Maybe the required jQuery version too – the output I managed to get from your code is always uglier than your screenshot.) 4) As this is a [tag:code-golf] challenge, reduce your code to the bare minimum and include the code size in your post's heading.
  • < – manatwork – 2014-01-29T10:08:59.860

    corrected missing jquery library thanks. – J nui – 2014-01-30T11:43:01.060

    Maybe you should mention that requires Chrome. The output is equally ugly in Explorer, Firefox and Opera. – manatwork – 2014-01-30T11:48:07.343

    wow, you're a bit of a hater aren't you? I just looked at that link with internet explorer 9 and it looked the same as in chrome. http://jsfiddle.net/rYcVV/1/ , firefox does not look very good tho.

    – J nui – 2014-01-30T11:51:25.987

    Sorry if you felt any hate in my comment, but I really believe this is ugly: http://i.stack.imgur.com/WoVO9.png Taken in Explorer 11.

    – manatwork – 2014-01-30T12:01:46.750

    added hack for firefox http://jsfiddle.net/rYcVV/3/

    – J nui – 2014-01-30T12:11:06.427

    Looks much better now. – manatwork – 2014-01-30T12:17:45.133

    made another change, I think it will work in IE11, but I don't have that browser right now. http://jsfiddle.net/rYcVV/5/

    – J nui – 2014-01-30T12:23:00.883

    Yes, this version works fine in Explorer 11, while still displays correctly in Chrome, Firefox and Opera. – manatwork – 2014-01-30T12:28:10.777

    1

    PHP, 90 bytes

    This matches the sample output exactly.

    Code in text editor Console output

    The code is displayed in a screenshot as it contains control characters that I can't post on Stack Exchange. Here is a longer, equivalent version using character codes that I can post here:

    <?echo gzinflate("SP\0\1-0D\58Åx¹\x14P\$´Ðhœb¼\\˜æ)(\x10%†M+‘NFÕª…†q‰Aµb*\"d\x08\\#Y᪀%Üð\4Š‚\2v-8‚_X§\0");
    

    That is 109 bytes but the version in the screenshot using control characters is 90 bytes.

    Alex Barrett

    Posted 2014-01-21T06:41:35.900

    Reputation: 161

    Instead of making a screenshot of your editor, paste in the code! – klingt.net – 2014-01-23T09:00:29.430

    I took a screenshot because it contains control characters that wouldn't be visible here. – Alex Barrett – 2014-01-23T09:21:56.750

    ... Isn't it cheating to write the program in binary? – SamB – 2014-01-27T07:55:51.247

    @SamB - It is well within the rules currently listed. – Alex Barrett – 2014-01-27T15:59:57.927

    1

    Mathematica, 132

    Further golfing of swish's fine method:

    x_~f~y_:=Boole[E<Norm@{#-x,#2-y}<4.3]&~Array~{13,30}
    
    Grid@Replace[Hue/@{E,{0,0,0},0,π,.3}.f@@@{5|5,5|15,5|25,9|10,9|20},0->"",c_+_.:>Style["*",c]},{2}]
    

    enter image description here

    Mr.Wizard

    Posted 2014-01-21T06:41:35.900

    Reputation: 2 481

    1

    Bash / base64 / zcat, 125

    $ base64 -d<<<H4sIAKc54FIAA1NQUFDQAkMEwMrnUoCLEaS5UHUrKODlcxG0G4dqLahZWjj4Ckiuxq0KxgKpJT4sUH2M3V+oclhpJDW47AIAX9PRBqIBAAA=|zcat
        * * *           * * *           * * *
      *       *       *       *       *       *
    *           *   *           *   *           *
    *           * * *           * * *           *
    *         * *   * *       * *   * *         *
      *     * *       * *   * *       * *     *
        * * *           * * *           * * *
            *           *   *           *
              *       *       *       *
                * * *           * * *
    $
    

    Digital Trauma

    Posted 2014-01-21T06:41:35.900

    Reputation: 64 644

    1

    TeX, 169

    \color{blue}\put(0,2){\circle{5}}\color{black}\put(6,2){\circle{5}}\color{red}\put(12,2){\circle{5}}\color{yellow}\put(2,0){\circle{5}}\color{green}\put(9,0){\circle{5}}
    

    enter image description here

    Converting the resulting image to ASCII characters:

    Java

    public class Converter {     
        public static String convertImage(BufferedImage img)  {
            BufferedImage image = img;
    
            char[] tones = new char[]{'*', '*', '*', '*', '*',  ' '};
            int tone = 0;
    
            StringBuilder stringBuilder = new StringBuilder();
    
            Color color; 
    
            for (double y = 0; y < image.getHeight(); y++) {
                for (double x = 0; x < image.getWidth(); x++) {
                    color = new Color(image.getRGB((int) x, (int) y));
    
                    tone = (color.getRed() + color.getGreen() + color.getBlue()) / 3;
                    tone = tone / (256 / tones.length - 1);
    
                    while (tone > tones.length - 1) tone--;
    
                    stringBuilder.append(tones[tone] + " ");
                }
                stringBuilder.append("\n");
            }
            return stringBuilder.toString();
        }
    
        public static void main(String args[ ]) { 
            BufferedImage image = null;
            Writer writer;
            try {
                image = ImageIO.read(new File("C:\\OlympicRings.gif"));
    
                writer = new BufferedWriter(new FileWriter(new File("C:\\ascii-conversion.txt")));
                writer.append((convertImage(image)));
                writer.close();
    
            } catch (IOException e) {
                e.printStackTrace();
            }
    
        }    
    } 
    

    it gives -

              * * * * * *                             * * * * * *                             * * * * * *           
          * *             * *                     * *             * *                     * *             * *       
        *                     *                 *                     *                 *                     *     
      *                         *             *                         *             *                         *   
      *                         *             *                         *             *                         *   
    *                             *         *                             *         *                             * 
    *                             *         *                             *         *                             * 
    *                             * * * * * * *                           * * * * * * *                           * 
    *                           * *         *   * *                     * *         *   * *                       * 
    *                         *   *         *       *                 *   *         *       *                     * 
    *                       *     *         *         *             *     *         *         *                   * 
      *                     *   *             *       *             *   *             *       *                 *   
      *                   *     *             *         *         *     *             *         *               *   
        *                 *   *                 *       *         *   *                 *       *             *     
          * *             * *                     * *   *         * *                     * *   *         * *       
              * * * * * * *                           * * * * * * *                           * * * * * *           
                          *                             *         *                             *                   
                          *                             *         *                             *                   
                            *                         *             *                         *                     
                            *                         *             *                         *                     
                              *                     *                 *                     *                       
                                * *             * *                     * *             * *                         
                                    * * * * * *                             * * * * * *                             
    

    user15287

    Posted 2014-01-21T06:41:35.900

    Reputation:

    1

    Math

    |f(x)|=sqrt(1-x^2)
    f(x+2)
    f(x-2)
    f(x+1)-1
    f(x-1)-1
    

    For the output to be able to be graphed with a computer I had to add:

    g(x)=-f(x)
    g(x+2)
    g(x-2)
    g(x+1)-1
    g(x-1)-1
    

    And remove the |'s from the first line.

    But they don't really have to be there.

    Output

    Blue Sheep

    Posted 2014-01-21T06:41:35.900

    Reputation: 221

    1

    C# [202]

    Basic foreach loop in C#

    class P{static void Main(){foreach(var i in new[]{0x3c7f1fc7,0x37ddf77d,0x2fe3f8fe,0x379ce73d,0x3c7f1fc7,0x3fbeefbf,0x3fe3f8ff})System.Console.WriteLine(System.Convert.ToString(i,2).Replace('1',' '));}}
    

    Result Below

        000       000       000
      0     0   0     0   0     0
     0       000       000       0
      0    00   00   00   00    0
        000       000       000
           0     0   0     0
             000       000
    

    Linq Version 215 Characters

    namespace System.Linq{class P{static void Main(){new[]{0x3c7f1fc7,0x37ddf77d,0x2fe3f8fe,0x379ce73d,0x3c7f1fc7,0x3fbeefbf,0x3fe3f8ff}.ToList().ForEach(i=>Console.WriteLine(Convert.ToString(i,2).Replace('1',' ')));}}}
    

    John ClearZ

    Posted 2014-01-21T06:41:35.900

    Reputation: 131

    1

    PROCESSING B/W (78 characters)

    No output to the console but still fun to participate. Colours add a lot to the code so it is not worth the 20 points in this case.

    float i,s=9,k=1;for(i=1;i<6;i++){k=i;if(i>3){s=13;k=i*1-2.5;}text("O",k*8,s);}

    enter image description here

    Colour (150-20=130 characters)

    float r=0,g=0,b=255,i,s=9,k=1;for(i=1;i<6;i++){k=i;if(i>3){s=12;k=k-2.5;g=255;r=(5-i)*255;}if(i==3){r=255;}if(i==2){b=0;}fill(r,g,b);text("O",k*9,s);}

    enter image description here

    user41353

    Posted 2014-01-21T06:41:35.900

    Reputation: 11

    1

    gnuplot 42 characters

    se te du
    uns bor
    uns tic
    p '-' w ell not
    1 4
    2 3
    3 4
    4 3
    5 4
    e
    

    Output:

                 **                       **                      **
           ******  ******           ******  ******          ******  ******
        ***              ***     ***              ***    ***              ***
      ***                  *** ***                  ******                  ***
      *                      * *                      **                      *
      *                      ***                      **                      **
      *                **************           **************                **
      *             ***      * *     ***     ***      **      ***             *
      ***         ***      *** ***     *** ***      ******      ***         ***
        ***       *      ***     ***     * *      ***    ***      *       ***
           **************           **************          **************
                 **                      ***                      **
                  *                      * *                      *
                  ***                  *** ***                  ***
                    ***              ***     ***              ***
                       **************           **************
    

    Shorter version (with axes) 27 characters

    se te du
    p '-' w ell
    1 4
    2 3
    3 4
    4 3
    5 4
    e
    

    Output:

      5.5 ++----------+----------+-----------+----------+-----------+---------++
          +           +          +           +          +           '-' ****** +
        5 ++                                                                  ++
          |     ************           ************           ************     |
          |  ***            ***     ***            ***     ***            ***  |
      4.5 +**                  ** **                  ** **                  **+
          **                    ***                    ***                    **
        4 *+                     *                      *                     +*
          *                ************           ************                 *
      3.5 **            ***     ***    ***     ***     ***    ***             **
          |**         **       ** **      ** **       ** **      **          **|
          |  ***     **     ***     ***    ***     ***     ***    **      ***  |
        3 ++    ************           ************           ************    ++
          |          *                      *                      *           |
      2.5 ++         **                    ***                    **          ++
          |           **                  ** **                  **            |
          |             ***            ***     ***            ***              |
        2 ++               ************           ************                ++
          +           +          +           +          +           +          +
      1.5 ++----------+----------+-----------+----------+-----------+---------++
          0           1          2           3          4           5          6
    

    andyras

    Posted 2014-01-21T06:41:35.900

    Reputation: 111

    0

    HTML + CSS ( 209 characters )

    This isn't really much better than the other HTML / CSS attempt, but I wanted to try this for myself! removing font size will again shrink down a teeny bit.

    <style>e:after{content:'o';font-size:2em}e{position:absolute;color:#00f}e>e{left:9px;color:#000}e e e{color:red}e e e e{left:-4px;top:9px;color:#0F0}e e e e e{left:-9px;top:0;color:#ff0}</style><e><e><e><e><e>
    

    fiddle: http://jsfiddle.net/rV4eQ/

    it's not really kosher code, but the e seemed fun to use.

    Jacob Raccuia

    Posted 2014-01-21T06:41:35.900

    Reputation: 101

    0

    PERL, 15 characters

    say"O O O
     O O"
    

    To be invoked with -E.

    O O O
     O O
    

    Tomas

    Posted 2014-01-21T06:41:35.900

    Reputation: 2 333

    0

    TI-Basic (15 bytes)

    This really ought to be a comment on @bb94 's answer, but I don't have the reputation for that yet.

    ClrHome
    Disp "O O O
    " O O
    

    I saved a byte by omitting a closing quote and using the fact that programs print the final line without being explicitly told to. This also avoids the "Done" that would be printed otherwise.

    ballesta25

    Posted 2014-01-21T06:41:35.900

    Reputation: 65