绘制奥运会徽标[关闭]


107

挑战

绘制奥运会徽标...

奥运会徽标

...作为字符(例如ASCII)艺术!

样本输出

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

您的艺术不必看上去完全像我的,但它必须足够好地表现出奥林匹克五环,才能被人们认可。

规则

  • 该程序必须将美术作品写入控制台。
  • 最短的代码(以字节为单位,任何语言)均获胜。
  • 以各自的颜色(或紧密表示)打印戒指的解决方案将获得减二十点的奖励。

获胜者将在2月23日被选定RD在2014年冬季奥运会的结束。


优胜者


7
20个奖励积分。嗯,我为什么要得分+20?
贾斯汀

21
哼,这是商标……
moala

4
@moala我认为这属于合理使用政策。
Nzall 2014年

11
在颜色上,很明显,它们是互锁的环,而不仅仅是重叠的环。到目前为止,很少有条目说明这一点。
罗伯·肯尼迪

6
完全是IANAL:可以编写绘制O ****** ic R ** gs的软件,而不可以执行它。:-)
卡尔·威索夫特

Answers:


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。我们可以得到一个字节数吗?
亚当·玛拉斯

2
请记住,如果您想打高尔夫球,也可以在C64 BASIC上缩写命令和行号。
2014年

15
关于这个答案,唯一令我困扰的是:这种ascii艺术如何?
贾斯汀

10
这是PETSCII艺术-Gabriele
D'

7
@Quincunx:由于PETSCII也称为CBM ASCII,因此可能符合条件。如果要使用其他字符进行绘制(使其看起来更像经典的ASCII艺术),则可以在第100行中用42(星号)替换160(反空格)。
Heinzi 2014年

86

HTML小提琴 - 4835,33个字符(感谢@Dom和@cnst!)

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

输出:

在此处输入图片说明


2
您可以使用:OOO<div style="margin:-10px 5px">OO代替保存更多字符。(我认为这应该是一个块,因此<div/>
Dom Hastings

由于这不是控制台输出,因此您最好参加自由式奥运会比赛:codegolf.stackexchange.com/q/19050/15168
CousinCocaine 2014年

@DomHastings:好的电话!答案更新了:)
Briguy37 2014年

3
那么,为什么要打扰div,可以p改用!
cnst 2014年

2
@PygameNerd:这取决于您对“ ASCII艺术”的定义:是,如果您的定义是“排列成图片的ASCII字符”;如果您的定义是“在固定宽度的文本编辑器中构成图片的ASCII字符”,则为否。至于是否按照CousinCocaine所说将其输出到控制台,是否定义为“计算机的控制或监视单元,包含键盘或键,开关等”。,则Web浏览器的输出是监视器的一部分,因此也是控制台的一部分(尽管这可能不是OP的目的)。
Briguy37 2014年

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
到目前为止,没有多少答案能正确地使铃声交替出现,所以即使分数稍高,这也是值得推荐的。
彼得·泰勒

1
bash: !/\\e[3}": event not found:(
Alter Lagos 2014年

我认为您的bash版本是有效的-OP中没有指定图形大小的地方-但您需要修复“ V”形环。也许是波浪线底部的波浪号(〜)?
AmeliaBR 2014年

@AlterLagos:您可能会找到更新作品?
Runium

@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}"–尽管看起来比其他的看起来更凌乱。
Runium

76

ZX Spectrum 48K上的Sinclair BASIC(261字节)

基本清单:

基本上市

最后结果:

结果

程序运行和代码测量:

程序运行

BASIC以文本格式列出:

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文件,适用于使用DivIDE或DivMMC的仿真器或真实计算机:http ://www.zxprojects.com/images/stories/draw_the_olympics_flag.tap


17
我喜欢宣传的部分:) –ThorbjørnRavn
Andersen

1
好可爱
pcnThird 2014年

Z80精灵图形的使用简直太客气了!!PS减去20分的颜色。
托马斯2014年

生成常规美术然后从中制作ASCII美术感觉很脏。:)
Undergroundmonorail

您能以可复制的形式包含源代码吗?
圣保罗Ebermann

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
吱吱作响的ossifrage

2
由于这不是控制台输出,因此您最好参加自由式奥运会比赛:codegolf.stackexchange.com/q/19050/15168
CousinCocaine 2014年

39

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

(请注意,这^[是单个字符。)

样品运行:

奥林匹克运动会徽标


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
您可以获得最漂亮输出的分数。
迈克尔·斯特恩

辛苦了 我发布了自己的代码版本。
威兹德先生2014年

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 2014年

2
我敢肯定这不会是最后的。
别名2014年

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 2014年

21

在Perl的另一种尝试,130 120

感谢manatwork在此方面的帮助

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

输出:

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

3
您可以保留:4个字符,for而不是使用foreach;删除()round sprintf()的参数,为2个字符;删除hex的参数,最多2个字符;使用y///代替1个字符tr///;删除最后一个字符;
manatwork 2014年

@manatwork谢谢!我什至从未听说y///过。现在将去查找它。
吱吱作响的ossifrage,2014年

20

的Python: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()第二个参数。(并在此帖子的标题中插入“ t”。)
manatwork 2014年

我一直在寻找更好的解决方案,您的外观很棒!
evuez,2014年

1
有了不错的改进bin()。但是,为什么要使用str()它呢?bin()的返回值已经是str
manatwork 2014年

3
第五行不应该010000010100000101000101000001010000010吗?底部的两个戒指对我来说有点碎。
吱吱作响的ossifrage,2014年

确实@manatwork,没想到这一点!
evuez,2014年

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",原义的换行符甚至可以在几个地方为您节省更多。您还可以使用$s=$"x3而不是节省1个字符$s=" "。希望有帮助!
Dom Hastings 2014年

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艺术,因为它们全都是“。”。字符。并按要求输出到控制台。某些Tektronix模拟器支持颜色。我没有,所以我做不到。


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
通过不捕获in replaceAll()的正则表达式并放回整个匹配的部分来保留2个字符:replaceAll(".{29}","$0\n")。(文件末尾可能会有额外的换行符,因为我在发布的代码中仅计算181个字符。)
manatwork 2014年

1
还有一件事:删除import并将包名称直接放在构造函数调用中。大小减少到161个字符。
manatwork 2014年

更改class M{static{...为,另外节省了5个字节enum M{M;{...。下一步是摆脱BigInteger,这可能吗?我正在尝试用String.format做一些魔术,但还没有结果。
Yurii Shylov 2014年

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 2014年

似乎有点...肿……
SamB 2014年

戒指或密码?
Vektorweg 2014年

我的意思是指环:-)
SamB

11

露比9岁

p"\044"*5

#讽刺

规则允许艺术品看起来与示例不完全相同,但必须“足够好地表现奥林匹克五环,使其可以被识别”

您可能会认识到奥运会徽标的这种表示形式。


有趣:)作为芝加哥人,我可以告诉你,那正是市长在观看比赛时所看到的!
Dean Radcliffe 2014年

作为温哥华人(2010年奥运会),我也可以联系。:-)
Darren Stone

8
我觉得我好像不在这里开个玩笑:-P
门把手

2
@DoorknobofSnow抱歉,尽管您对字符代码感到困惑。如果您不了解奥运会和美元符号之间的联系,那我将无济于事。
AmeliaBR 2014年

8
输出为:
$
罗杰

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         

第二个Javascript-25个字符

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

输出:

O O O 
 O O 

第二个很懒


1
您可以节省;2个字符,使用“ 4”代替“。”作为分隔符,并使用数字4(不带引号)作为split()的参数;删除最后2 ;s个2个字符。
manatwork 2014年

上面的(当前)仅Firefox版本可以减少到172个字符:'kpvbkq041re099tu43ifszg1t43iwiuayp41sdk52824kpvbkq04httbls45trxmo'.split(4).map(x=>{a=parseInt(x,36).toString(2);console.log(' '.repeat(39-a.length)+a.replace(/0/g,' '))})
manatwork 2014年

谢谢,添加了您的建议,现在我将使其独立于浏览器。
Eduard Florinescu 2014年

◯不是ascii ...
njzk2 2014年

@ njzk2是的,解决它סּ_סּ
爱德华Florinescu

11

二进制!(265 CHARS)

0001111100000000111110000000011111000
0100000001000010000000100001000000010
1000000001111100000000011111000000001
0100000011000011000001100001100000010
0001111100000000111110000000011111000
0000000010000001000001000000100000000
0000000001111100000000011111000000000

它太大了,无法取胜,但至少看起来很酷!


矩阵中的奥运标志。
user13107 2014年

@ user13107什么?
Dozer789

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
代码在哪里?
2014年

14
@Undo那代码;-)
门把手

实际上,我不了解PHP。那是我知道如何编写的唯一PHP程序/样式。(当然,我已经看过一个教程,但是我忘了)。
贾斯汀

2
PHP不会以bbbb #### rrrr bb##rrb ybyy g#gg r bbyb ## g#rrrr yyg g yyyy gggg出现吗?
李斯特先生,2014年

4
您需要添加header("Content-Type: text/plain"),网络服务器的默认值为text / html
Kroltan 2014年

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以base-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($_)从以36为底的编码字符串创建一个Int $_for循环默认变量)

编辑:旧解决方案具有更好的(复制的)图形,但更长:

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

10

数学185 175

数学保存10字节。

下面的环是ASCII'O'。

在世纪哥特式中,略带半透明的字母“ O”以字体大小= 145个打印机点打印了5次。

这不是终端艺术。但是,它完全满足Wikipedia对Ascii艺术的定义: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 2014年

FontSize -> 可以删除。
Mathe

@mathe,是的。我仅使用字体大小来使输出合理。
DavidC

@DavidC我的意思是,你可以取代FontSize -> 145145
Mathe

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

c是五个(x,y)对的数组,圆的中心被展平以保存十个字符。)

输出:

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
亚当·玛拉斯

@AdamMaras:是的,并且有;),必须尝试。接下来是合并操作系统的实际负载。O`Loader II。
Runium 2014年

如果测量二进制文件(假设磁盘已具有启动扇区),那么如何评分(在结尾处可以跳过55h AAh(以及任何相关的填充)),它的得分如何?
SamB 2014年

@SamB:那将是275个字节,255 pt,其中代码部分约为91个字节,而变量+绘图数据为184个字节。
Runium

5

TI基本(16字节)

注意:TI-Basic已标记化。如果我没有记错,ClrHome并且Disp是一个字节的令牌。

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

在Turbo C ++ 3.0编译器中制成。 尝试使代码尽可能短


7
1)请使用Markdown标记代码块并保持张贴的代码可读。2)由于这是一个挑战代码的挑战,请尝试将代码的大小减小到严格必要的程度。3)请在您的答案中添加标题行(根据您的偏好(通常是标题1粗体)加一些标记),并指定使用的语言,代码的长度和得分。
manatwork 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.