オリンピックのロゴを描く[閉じた]


107

チャレンジ

オリンピックのロゴを描く...

オリンピックのロゴ

...キャラクター(ASCIIなど)アートとして!

サンプル出力

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

あなたのアートは私のものとまったく同じように見える必要はありませんが、認識できるほど十分にオリンピックのリングを表現する必要があります。

ルール

  • プログラムはコンソールにアートを書き込む必要があります。
  • 最短のコード(バイト単位、任意の言語)が優先されます。
  • リングをそれぞれの色(または厳密な表現)で印刷するソリューションには、マイナス20ポイントのボーナスが付与されます。

当選者は2月23日に選択されますRD 2014年冬季オリンピックの終わりに。


勝者


7
20ボーナスポイント。ええと、なぜ私のスコアに+20が必要なのでしょうか?
ジャスティン14年

21
ええと

4
@moalaこれはフェアユースポリシーに該当すると思います。
Nzall

11
色は、単に重なり合っているだけでなく、連動するリングであることは明らかです。これまでのところ、これを説明したエントリはほとんどありません。
ロブ・ケネディ

6
完全にIANAL:O ****** ic R ** gsを描画するソフトウェアを作成しても問題ありません。実行するのは問題ありません。:
カールウィトフト14年

回答:


23

APL(82)(-20 = 62)

編集:変更のために、このプログラムはTryAPLがそれに触れるほど単純なので、そこで実行できます(行を貼り付けてください)。

「色」ビットを主張できるかどうかはわかりませんが、私はそれらをすべて異なって表しています。

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]

APLコンソールは色をサポートしていないため、影付きのブロック文字を使用しました(他のASCIIアートの割り当ては、文字列の先頭の文字を置き換えるのと同じくらい簡単です)。

切れ目のない円のように見えるはずです(フォントによって異なります)。

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

または:

      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                

165

Commodore 64 BASIC

画面とカラーメモリに直接書き込みます。

プログラム

出力:

出力


スプライトを使用してこれを行う方法は次のとおりです。


1
それは素晴らしいです。+1。バイトカウントを取得できますか?
アダムマラス14年

2
ゴルフをしたい場合は、C64 BASICでもコマンドと行番号を短縮できます。
ガブリエーレダントーナ14年

15
この答えについて私を悩ませている唯一のことは、このアスキーアートはどうですか?
ジャスティン14年

10
これはPETSCII-art
Gabriele D'Antona 14年

7
@Quincunx:PETSCIIはCBM ASCIIとしても知られているため、これが該当する可能性があります。別の文字を描画に使用したい場合(従来のASCIIアートのように見せるため)、行100で160(反転スペース)を42(アスタリスク)に置き換えるとうまくいきます。
ハインジ14年

86

HTMLフィドル - 4835、33文字(感謝@Domと@cnst!)

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

出力:

ここに画像の説明を入力してください


2
OOO<div style="margin:-10px 5px">OO代わりに... を使用してより多くの文字を保存できます(ただし、ブロックにする必要があると思うので、<div/>
Dom Hastings 14年

これはコンソール出力ではないため、フリースタイルのオリンピックコンテストの方が優れています:codegolf.stackexchange.com/q/19050/15168
CousinCocaine

@DomHastings:いいね!回答の更新:)
Briguy37

3
それなら、なぜわざわざ、代わりにdiv使うことができますp
cnst 14年

2
@PygameNerd:「ASCIIアート」の定義に依存します。定義が「画像を形成するように配置されたASCII文字」の場合は、はい。定義が「画像を形成するための固定幅テキストエディターのASCII文字」である場合は、いいえ。CousinCocaineが言ったように、コンソールに出力されるかどうかについては、定義が「キーボードまたはキー、スイッチなどを含むコンピューターの制御または監視ユニット」である場合 、Webブラウザーの出力はモニターの一部であり、コンソールの一部です(ただし、これはおそらくOPが意図したものではありません)。
Briguy37 14年

76

色のBASH-271-20 = 251 –もつれたリング付き; 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}"

結果:

ここに画像の説明を入力してください


そして、その楽しみのために:61-20 = 41。

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

ここに画像の説明を入力してください


LZ77バージョン:

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

13
これまでのところ、リングの交互の重なりを正しく取得する回答は多くないため、スコアが少し高くても、これは賛成票に値します。
ピーターテイラー14年

1
bash: !/\\e[3}": event not found:(
ラゴスの変更14年

あなたのbashバージョンは有効だと思います-OPのどこにもグラフィックのサイズを指定していません-しかし、「V」形のリングを修正する必要があります。リングの底にチルダ(〜)があるのでしょうか?
AmeliaBR 14年

@AlterLagos:更新が見つかるかもしれませんか?
ルニウム14年

@AmeliaBR:はい、それはそれを楽しむためのものであり、それは真剣に意味するものではありませんでした。いろいろ試してみました。おそらくこれは好みに合っていますか?x='54mO53m_50m052m_51mO\n53m U 52mU\n';printf "${x//5/\\e[3}"–(私はここの5では少し悪です。)または、オーバーラップを念頭に置いて、これでも良いx='54mO53mA50m052mA51mO\n53m U 52mU\n';printf "${x//5/\\e[3}"かもしれません。
ルニウム14年

76

ZX Spectrum 48K上のSinclair BASIC(261バイト)

基本リスト:

基本リスト

最終結果:

結果

プログラム実行とコード測定:

プログラム実行中

テキスト形式の基本リスト:

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

DivIDEまたはDivMMCを使用するエミュレーターまたは実マシンに適したプログラムを含むTAPファイル:http ://www.zxprojects.com/images/stories/draw_the_olympics_flag.tap


17
私は、アスキー化の部分が好きです:)
アンデルセン14年

1
これは素敵です!
pcnThird 14年

Z80スプライトグラフィックの使用は単純です!PSは色の20ポイントを引きます。
トマス14年

通常のアートを生成し、それからASCIIアートを作成するのはとても汚い感じがします。:)
地下

ソースコードをコピー可能な形式で含めることができますか?
パエロエベルマン

44

だから、私は実際には正しく読みませんでした、それはASCIIアートなので、これは無効だと思います。おっと!


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

Chromeの場合:

これは何ですか! アリのオリンピック旗?

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";

2
ペナルティなしで色をもう少し近づけることができます:青:#06f、黄:#fa0、緑:#193
squeamish ossifrage

2
これはコンソール出力ではないので、フリースタイルオリンピックコンテストの方が優れています:codegolf.stackexchange.com/q/19050/15168-CousinCocaine 14
1

39

ルビー:198文字-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*''}*$/

^[1文字であることに注意してください。)

サンプル実行:

オリンピックゲームのロゴ


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

ここに出力があります

ここに画像の説明を入力してください

ベクターグラフィックスのラスタライズに基づく別のバージョン

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

ここに画像の説明を入力してください


2
最もきれいな出力のポイントを取得します。
マイケルスターン14年

よくやった。自分のバージョンのコードを投稿しました。
ミスターウィザード

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

コンソールには書き込まれませんが、これは「ASCIIアート」としてカウントされます。出力:

オリンピックリング

これはもう少しゴルフすることができます。


19
これがASCIIアートである場合、回転アスタリスクを使用して見た最初のものです。
TheBlastOne 14年

2
私はそれが最後ではないと確信しています。
仮名14年

25

Windowsコマンドスクリプト-112 バイト

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

100%オリンピックリング

そしてもちろん、必須のチート版-4バイト

%~n0

として保存:

@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

10
BATとCMDでさらに回答が必要です:)
Einacio 14年

21

Perlでの別の試み、130 120

これを手伝ってくれたマナトワークに感謝

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

出力:

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

3
for代わりに使用できます:foreach; ()round sprintf()の引数を削除して2文字。hexのパラメーターを削除して2文字。;のy///代わりに使用して1文字 tr///最終文字を削除して1文字;
マナトワーク14年

@manatworkありがとう!聞いたこともないy///。今すぐ調べてみます。
squeamish ossifrage 14年

20

パイソン:157の 140 138 133 122 107文字

107

manatworkに感謝)

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

サンプル出力:

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

(これを始めたばかりで、改善しようとします)

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

より良い出力:120文字

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

サンプル出力:

   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         

1
ベース36はどうですか?これは140文字ですprint'\n'.join(['{0:b}'.format(int(o,36)).rjust(39,'0')for o in"kpvbkq0 1re099tu 3ifszg1t 3iwiuayp 1re099tu kpvbkq0 httbls 5trxmo".split()])。「より良い出力」バージョンに関しては、rjust()の2番目のパラメーターをスペアできます。(そして、この投稿の見出しに「t」を挿入します。)
マナトワーク14年

私はより良い解決策を探していました、あなたの見栄えは素晴らしいです!
evuez 14年

1
との素晴らしい改善bin()。しかし、なぜあなたstr()はそれの周りで使用していますか?bin()の戻り値はすでにstrです。
マナトワーク14年

3
5行目はすべきではありません010000010100000101000101000001010000010か?下の2つのリングは少し壊れています。
きしむオッシファージュ14

@manatworkは確かに、それについて考えませんでした!
エヴエス14年

17

Perl、177 163

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;

出力:

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

2
Perlの完全版!いくつかの追加の節約:"\n"as を使用する代わりに、デフォルトのを$r使用$/して"\n"、リテラル改行を使用すると、さらに多くの場所で節約できます。また、使用して1より多くの文字を保存することができます$s=$"x3のではなく$s=" "。お役に立てば幸いです!
ドムヘイスティングス14年

15

C、257バイト

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

これはもう少しゴルフした可能性があります。

これは、Tektronix 4010(またはxterm -tなどのエミュレータ)で実行する必要があります。出力:

出力

これらはすべて「。」であるため、これは実際にASCIIアートです。文字。また、要求に応じてコンソールに出力します。一部のテクトロニクスエミュレータは色をサポートしています。私はそうしなかったので、それはできませんでした。


12

Java(登録商標)、181の 179 161 156バイト

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

(jdk 1.7ではコンパイルできません。1.6以下が必要です)

出力:

11100011111110001111111000111
10111110111011111011101111101
01111111000111111100011111110
10111100111001110011100111101
11100011111110001111111000111
11111101111101110111110111111
11111111000111111100011111111

間違いなく勝者ではありませんが、次はjavaです。


2
replaceAll()の正規表現をキャプチャせず、一致した部分全体を戻すことにより、2文字をスペアしますreplaceAll(".{29}","$0\n")。(投稿されたコードでは181文字しかカウントしないため、ファイルの最後に余分な改行がある場合があります。)
manatwork 14年

1
もう1つ:を削除importし、コンストラクター呼び出しにパッケージ名を直接入力します。これにより、サイズが161文字に縮小されます。
マナトワーク14年

に変更class M{static{...して、さらに5バイトを節約しましたenum M{M;{...。次の大きなステップはBigIntegerを取り除くことです、それは可能ですか?String.formatを使用していくつかの魔法を実行しようとしていますが、まだ結果がありません。
ユーリーシャイロフ14年

12

ハスケル、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]

出力:

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

ゴルフアウト:

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

2
map.map面白いと思うので、私はまだ笑っています。:D
Vektorweg 14年

それは一種の肥大化のようです...
SamB 14年

リングまたはコード?
Vektorweg 14年

私はリングを意味します:-)
SamB 14年

11

ルビー、9

p"\044"*5

#風刺

ルールは、例とまったく同じように見えないアートを許可しますが、「認識できるほど十分にオリンピックリングを表す」必要があります。

オリンピック競技大会のロゴのこの表現を認識するかもしれません。


おかしい:)シカゴ人として、私は市長が彼がゲームを求愛していたときに見たものをまさに伝えることができます!
ディーンラドクリフ14年

Vancouverite(2010 Games)として、私も関わりを持つことができます。:-)
ダレンストーン14年

8
私はここで内部のジョークを見逃しているように感じます:-P
ドアノブ

2
@DoorknobofSnow申し訳ありませんが、文字コードについて混乱しています。オリンピックとドル記号の関係がわからない場合、私はそこであなたを助けることができません。
アメリアBR 14年

8
出力は次のとおりです。
$
ロジャー14年

11

Javascriptを- 170行の185 189文字数

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

出力:

   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文字

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

出力:

O O O 
 O O 

2番目は怠け者です


1
余裕があります。「。」の代わりに「4」を区切り文字としてsplit()使用し、パラメータとして数字4(引用符なし)を使用する2文字。最後の2 ;秒を削除して2文字。
マナトワーク14年

上記の(現在の)Firefox専用バージョンは、さらに172文字に減らすことができます'kpvbkq041re099tu43ifszg1t43iwiuayp41sdk52824kpvbkq04httbls45trxmo'.split(4).map(x=>{a=parseInt(x,36).toString(2);console.log(' '.repeat(39-a.length)+a.replace(/0/g,' '))})
マナトワーク14年

ありがとう、あなたの提案を追加しました、私は今のところブラウザに依存しないままにします。
エデュアルドフロリネスク14年

◯ASCIIではない...
njzk2

@ njzk2はうん、סּ_סּそれを解決
エドゥアルトFlorinescu

11

バイナリ!(265文字)

0001111100000000111110000000011111000
0100000001000010000000100001000000010
1000000001111100000000011111000000001
0100000011000011000001100001100000010
0001111100000000111110000000011111000
0000000010000001000001000000100000000
0000000001111100000000011111000000000

大きすぎて勝てませんが、少なくともクールに見えます!


マトリックスのオリンピックロゴ。
user13107 14年

@ user13107何?
Dozer789 14年

10

PHP-99(-20?)

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

それは間違いなく認識できます。私の「色」は重要だと言います。それは近い表現です。

気に入らなければ、ここにあります

GolfScript-101(-20?)

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

16
コードはどこにありますか?
元に戻す

14
@元に戻すそれコードです;-)
ドアノブ

実のところ、私はPHPを知りません。これが、私が書く方法を知っている唯一のPHPプログラム/スタイルです。(確かにチュートリアルは完了しましたが、忘れていました)。
ジャスティン14年

2
PHPの1つはbbbb #### rrrr bb##rrb ybyy g#gg r bbyb ## g#rrrr y yg g yyyy ggggとして画面に表示されませんか?
ミスターリスター14年

4
追加する必要がありheader("Content-Type: text/plain")ます。Webサーバーのデフォルトはtext / html
Kroltan 14年

10

Bash + ImageMagick:163文字

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

サンプル出力:

.

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

10

Perl 6: 112 77 56文字、75バイト

say flip .ord.base(2).trans("01"=>" @")for"𜜜𢢢񃣡𦶲𜜜䔐㣠".comb
  • Unicde文字列!(上記の文字列は「\ x1C71C \ x228A2 \ x438E1 \ x26DB2 \ x1C71C \ x4510 \ x38E0」です)
  • .comb 文字列内の個別の文字のリストを返します(とにかく引数なし)
  • .ord 文字から文字コード番号を与える
  • .base(2) そのIntのベース2エンコーディングの文字列を返します
  • .trans 数字をスペースと@で置き換えて見やすくします
  • flip 文字列の文字を反転し、先行する0が欠落しても図面が混乱しないようにします。
  @@@ @@@ @@@
 @ @ @ @ @ @
@ @@@ @@@ @
 @ @@ @@ @@ @@ @
  @@@ @@@ @@@
    @ @ @ @
     @@@ @@@

edit2:qwoteワードとエンコードされたbase-36を使用した新しいソリューション

say flip :36($_).base(2).trans("01"=>" @")for<2HWC 315U 5XI9 3ESY 2HWC DN4 B8G>
  • <ABC DEF GHI> perl6の引用語構文なので、文字列のリストを取得します
  • :36($_)でbase-36エンコードされた文字列からIntを作成します$_forループのデフォルト変数)

編集:古いソリューションは、より良い(コピーされた)描画がありますが、より長いです:

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

10

Mathematica 185 175

matheによって10バイトが節約されました。

以下のリングはASCII「O」です。

センチュリーゴシックのわずかに半透明な文字「O」は、フォントサイズ145プリンターポイントで5回印刷されました。

これは端末アートではありません。ただし、Wikipediaのアスキーアートの定義(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"}]

オリンピックリング


2
これはコンソール出力ではないので、フリースタイルオリンピックコンテストの方が優れています:codegolf.stackexchange.com/q/19050/15168
CousinCocaine

FontSize -> 削除できます。
mathe

@ mathe、True。フォントサイズは、出力を適切なサイズにするためだけに使用しました。
DavidC

@DavidC私はあなたが代わる可能性が意味FontSize -> 145することによって145
数学

@mathe。はい!ありがとう。
DavidC

8

JavaScript:153文字

私は代数を使って実際に円をグラフ化するのがもっと速くできるかどうかを見たかった:

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

c5つの(x、y)ペア、円の中心の配列で、10個の文字を保存するために平坦化されています。)

出力:

1110000000111111111000000011111111100000001111
1000111110001111100011111000111110001111100011
0011111111100111001111111110011100111111111001
0011111111100000001111111110000000111111111001
0011111110000111000011111000011100001111111001
1000111100001111100001110000111110000111100011
1110000000111111111000000011111111100000001111
1111111100111111111001110011111111100111111111
1111111110001111100011111000111110001111111111
1111111111100000001111111110000000111111111111

159文字はもう少し読みやすいです:

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

出力:

   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            

167の文字、私たちは「色」を持っています:

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

出力:

   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            

そして189文字で、半径もr調整可能にできます:

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/


7

APL、8文字/バイト*

最小の文字数を求める回答を次に示します(これは結局コードゴルフです)。

2 5⍴'○ '

出力:

○ ○ ○
 ○ ○ 

記号は○、APL円演算子です。厳密なASCII出力が必要な場合は、代わりに「O」を入力できます。APLシンボルを使用するのに適していると思いました。


キックのために、ここにカラーバージョンがあります(37文字-20 = 17スコア)

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

出力: カラーリング端末出力
*:APLは、APLシンボルを上位128バイト値にマッピングする独自の(レガシー)シングルバイト文字セットで記述できます。したがって、スコアリングの目的で、ASCII文字とAPLシンボルのみを使用する N文字のプログラムは、Nバイト長と見なすことができます。


7

CSS、 1176 922 855 771バイト、-20カラーボーナス= 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のみ。マークアップは不要です。ここでマークアップなしのフィドルを参照してください:http ://jsfiddle.net/XcBMV/12/

指輪

カラーで、正しいオーバーラップがあります。


6

Perl-12文字

say"OOO\nOO"

わかりましたので、特に芸術的なレンダリングではありません。;-)

ややキュート:

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

6

GASアセンブリ16ビットBIOS OLローダー– 617-20 = 597

ここで長さに夢中になって、それの楽しみのために単なる。


あまりロードしませんが、オリンピックのロゴを色付きのASCIIとしてロードします;)

コード:

.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イメージのビルドと抽出

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

エミュレーターで実行する

(まだ自宅のコンピューターでテストしていない...)

qemu-system-i386 olymp.img

結果

ここに画像の説明を入力してください


4
外部リソースを極端に使用しないという考えを理解してください。+1
アダムマラス14年

@AdamMaras:はい、それがあります;)、試さなければなりませんでした。次に、OSの実際の負荷を組み込みます。O`Loader II。
ルニウム14年

ディスクにすでにブートセクターがあり、最後に55h AAhをスキップできると仮定すると、バイナリを測定する場合、どのようにスコア付けされますか(関連するパディングとともに)。
SamB 14年

@SamB:コード部分が約91バイトで変数+プロットデータが184バイトである場合、275バイト、255ポイントになります。
ルニウム14年

5

TI-Basic(16バイト)

注:TI-Basicはトークン化されています。私が正しく覚えて、場合ClrHomeDisp1バイトのトークンです。

ClrHome
Disp "O O O"," O O

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

ターボc ++ 3.0コンパイラで作成。 コードをできるだけ短くすることを試みました


7
1)Markdownを使用してコードブロックをマークし、投稿されたコードを読み取り可能にしてください。2)これはコードとゴルフの課題なので、コードのサイズを厳密に必要なサイズに減らしてください。3)使用する言語、コードの長さ、獲得したスコアを指定して、回答に見出しを追加します(好みに応じてマークアップを強調します(通常はヘッダー1または太字))。
マナトワーク14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.