以ASCII格式绘制HyperNeutrino的苯六邻体图标


31

为了庆祝HyperNeutrino追随Xcoder 先生,收回他的帐户和代表。

HyperNeutrino的才能

抱歉,为了获得可旋转性而旋转图片。


确切地打印或输出此ASCII艺术作品。您可能有尾随空格和/或尾随换行符。

      _______________
     /               \
    /  /           \  \
   /  /             \  \
  /  /               \  \
 /  /                 \  \
/  /                   \  \
\                         /
 \                       /
  \                     /
   \                   /
    \  _____________  /
     \_______________/

这描绘了分子的两个共振结构之一 在此处输入图片说明

相关:同心六边形星号填充六边形

排行榜:


8
我看到@HyperNeutrino从此旋转了他的图标来匹配这个问题!
尼尔

5
@Neil是:P它使我非常困扰,以至于我只是对其进行更改以使其保持一致。现在您需要更新共振结构xnor:P
HyperNeutrino

1
天哪,即使我在末尾添加了随机未使用的参数,将其更改为StackOverflow,又将其更改回了,并进行了10次编辑,其风格也不会更新:I
HyperNeutrino

4
但是我认为,在个人资料上呈现水平版本时,看起来很难看;可能只是我不习惯。所以,我把它改回来了。:P
HyperNeutrino

:(我想看!
CalculatorFeline

Answers:


24

木炭,23字节

×_⁷↙←×_⁸↖⁶→↗⁶P×_⁸↘↓↙⁵‖B

在线尝试!说明:按以下顺序打印线条,然后水平反映所有内容:

      5_______
     /        
    /  6      
   /  ↙       
  /  /        
 ↗  /         
4  /          
\             
 \            
  \           
   \          
    ↖  1→_____
     3______←2

5
‖B代表“ Reflect Butterfly”
CalculatorFeline

8

的JavaScript(ES6), 144个  143 140 138 134字节

一个具有纯条件表达式的逐个字符绘制输出字符的递归函数。

f=(p=363)=>(m=p%28-14,x=m<0?-m:m,y=p/28|0,p--)?`\\/ _
`[m+14?x<8-y&y<2|x<8&y>11?3:x==y+8|x==19-y|x==16-y&y>5&x>5?m<0^y>5:2:4]+f(p):''

怎么样?

对于每个位置0 <p≤363,我们定义:

  • m =(p MOD 28)-14
  • x = | 米|
  • y =⌊p / 28⌋

以下是从中选择适当字符的公式的细分[ '\', '/', ' ', '_', '\n' ]

m + 14 ?                            // if this is not an end of line:
  x < 8 - y & y < 2 |               //   if this is either part D
  x < 8 & y > 11 ?                  //   or part E:
    3                               //     output '_'
  :                                 //   else:
    x == y + 8 |                    //     if this is either part A
    x == 19 - y |                   //     or part B
    x == 16 - y & y > 5 & x > 5 ?   //     or part C:
      m < 0 ^ y > 5                 //       output '/' or '\' depending on the quadrant
    :                               //     else:
      2                             //       output a space
:                                   // else:
  4                                 //   output a Line-Feed

以下是上面定义的坐标系中的不同部分:

   | 13 12 11 10 09 08 07 06 05 04 03 02 01 00 01 02 03 04 05 06 07 08 09 10 11 12 13
---+---------------------------------------------------------------------------------
12 | .  .  .  .  .  .  E  E  E  E  E  E  E  E  E  E  E  E  E  E  E  .  .  .  .  .  .
11 | .  .  .  .  .  B  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  B  .  .  .  .  .
10 | .  .  .  .  B  .  .  C  .  .  .  .  .  .  .  .  .  .  .  C  .  .  B  .  .  .  .
09 | .  .  .  B  .  .  C  .  .  .  .  .  .  .  .  .  .  .  .  .  C  .  .  B  .  .  .
08 | .  .  B  .  .  C  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C  .  .  B  .  .
07 | .  B  .  .  C  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C  .  .  B  .
06 | B  .  .  C  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  C  .  .  B
05 | A  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A
04 | .  A  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A  .
03 | .  .  A  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A  .  .
02 | .  .  .  A  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  A  .  .  .
01 | .  .  .  .  A  .  .  D  D  D  D  D  D  D  D  D  D  D  D  D  .  .  A  .  .  .  .
00 | .  .  .  .  .  A  D  D  D  D  D  D  D  D  D  D  D  D  D  D  D  A  .  .  .  .  .

演示版


7

05AB1E,50个字节

•ι¡≠ït]4uƵŽΣ”9g½ùöèri|)á,ćè’∍é•5B3ÝJ"/ _\"‡4¡.B».∞

在线尝试!


压缩:

这里的策略是建立一半的对象,然后将图像镜像到一半。为此,我首先用前填充物构建了左半部分:

11111122222222
111110
11110110
1110110
110110
10110
0110
3
13
113
1113
1111311222222
11111322222222

但是没有正确的填充,这是因为.B05AB1E中的函数可用于使用空格使每个元素的长度相等。这使我可以省略右边的多余空格,而只用换行符分隔。然后,我采用了这种模式,并删除了所有换行符,将其替换4为:

1111112222222241111104111101104111011041101104101104011043413411341113411113112222222411111322222222

用base-255压缩会导致:

•ι¡≠ït]4uƵŽΣ”9g½ùöèri|)á,ćè’∍é•5B

两者表示base-255压缩字符串,而5B将其转换为base-5。


第二部分,压缩后:

3ÝJ                # Push '0123'.
   "/ _\"          # Push '/ _\'.
         ‡         # Replace each in b with a on c.
          4¡       # Split on 4's (the newlines I replaced).
            .B     # Boxify for the mirror (adds padding to longest element).
              »    # Join by newlines. 
               .∞  # Mirror image.

您可以像这样
Emigna

@emigna è,当然!
Magic Octopus Urn

5

V,61字节

i/  /±¹ \  \
\²µ /6ñGÙlxxhPHÄãxx>ñv$r_jwr w.Gkkl13r_jviwr_jd

在线尝试!

十六进制转储:

00000000: 692f 2020 2fb1 b920 5c20 205c 0a5c b2b5  i/  /.. \  \.\..
00000010: 202f 1b36 f147 d96c 7878 6850 48c4 e378   /.6.G.lxxhPH..x
00000020: 783e f176 2472 5f6a 7772 2077 2e47 6b6b  x>.v$r_jwr w.Gkk
00000030: 6c31 3372 5f6a 7669 7772 5f6a 64         l13r_jviwr_jd

5

Python 2中226个 213字节 179个字节

我的第一个高尔夫!

b,f,s,u='\/ _'
print'\n'.join([s*6+u*15,s*5+f+s*15+b]+[s*(4-n)+'/ /'+s*(13+2*n)+'\ \\'for n in range(5)]+[s*n+b+s*(25-2*n)+f for n in 0,1,2,3]+[s*4+b+s*2+u*13+s*2+f,s*5+b+u*15+f])

在线尝试!

我尝试循环查找可以找到模式的位,并对其余部分进行硬编码。将不同的字符设置为变量有助于节省大量字节。

编辑:决定追加到同一数组,而不是多次加入。保存了13个字节。

编辑2:感谢@ ValueInk,@ jacoblaw,@ WheatWizard,@ CalculatorFeline和@ Challenger5,节省了34个字节


1
b,f,s,u='\/ _';o,a='/ /','\ \\'在您当前的变量初始化中节省11个字节!看到这里
价值墨水

1
使用@ValueInk的技巧而不在4行上列出,您将有195个字节,例如
jacoblaw

1
@jacoblaw您不需要其中的所有空格。这里没有他们。
小麦巫师

1
o并且a仅在代码中使用一次。这是与他们内联的。
CalculatorFeline

1
您可以使用0,1,2,3而不是range(4)保存一个字节。
硕果累累

4

J,155个字节

('_ /\',LF){~5#.inv 95x#.32-~3 u:'0_C5NcBe''e2kA/jhk>5y~l<Z:AN<QG)V7m>l"x!@A-jp8E%XEh&"$''j(sP8Z!b#e7})]_,L"LCUu)kqsBQ5_5bt}`bq ":1cv(gU;|{I~n5q@(ISCK `'[<

在线尝试!

此功能不希望输入。例如,f =: <code>然后f ''

说明

我使用以下步骤对此进行了编码。假设所需的压缩字符串包含在变量中h

   k=:'_ /\',LF                    NB. the dictionary used to encode the string
   k i. h                          NB. numbers corresponding to indices in `k`
1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 4 1 1 1 1 2 1 1 2 1 1 1 1 1 1 1 1 1 1 1 3 1 1 3 4 1 1 1 2 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 1 3 4 1 1 2 1 1 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 3 1 1 3 4 1 2 1 1 2 1 1 1 ...
   5x#.k i. h                      NB. base 5 to decimal
4571656960356964266407389291886526966074643634545109498506871241033015964671946641835339522170115810676380078148856766959449166714046433431522704650346045752930168245684048485736756807881102718244115576453623363843561553955078139
   95#.inv 5x#.k i. h              NB. decimal to base 95
16 63 35 21 46 67 34 69 7 69 18 75 33 15 74 72 75 30 21 89 94 76 28 58 26 33 46 28 49 39 9 54 23 77 30 76 2 88 1 32 33 13 74 80 24 37 5 56 37 72 6 2 4 7 74 8 83 48 24 58 1 66 3 69 23 93 9 61 63 12 44 2 44 35 53 85 9 75 81 83 34 49 21 63 21 66 84 93 64 66 8...
   quote u:32+95#.inv 5x#.k i. h   NB. base 95 to ASCII repr of string
'0_C5NcBe''e2kA/jhk>5y~ll"x!@A-jp8E%XEh&"$''j(sP8Z!b#e7})]_,L"LCUu)kqsBQ5_5bt}`bq ":1cv(gU;|{I~n5q@(ISCK `'

然后,我们只需要对此解码即可。5#.inv 95x#.32-~3 u:执行与我刚才描述的相反的操作,从而为我们提供了索引列表。然后,('_ /\',LF){~将适当的字符应用于每个索引。


4

Mathematica,227个字节

t=Table;T[x_,y_,z_,v_]:=""<>{x,y~t~v,z};Column[Join[b={""<>"_"~t~15},{T["/"," ","\\",15]},t[T["/  /"," ","\\  \\",i],{i,11,19,2}],t[T["\\"," ","/",i],{i,25,19,-2}],{T["\\  ","_","  /",13]},{""<>{"\\",b,"/"}}],Alignment->Center]

4

木炭47 43 41字节

↗⁶F¹⁵_↓↘⁶←↙⁶↷⁴↑F¹⁵_↖⁶M⁴→↗⁵M¹¹→↓↘⁵M⁵↙↑F¹³_

在线尝试!

直到现在我对木炭一无所知,在试图找出答案时感觉就像“我不知道我在做什么”。我很确定这可以打很多。

更新:

  • 我设法节省了4个字节来学习如何使用光标方向和移动!
  • 实现图形后又节省了2个字节,与要求的不完全相同。^ __ ^ U

2
ma,请相信我,使用木炭时,您不是唯一处于后一种状态的人。我第一次使用它是试图制作一个立方体。我用了“广场”内置然后手工画立方体的背面,真可谓你能做到在20个字节相比,我的57
魔术八达通瓮城

@carusocomputing我不敢相信O5AB1E或Jelly仍然有更长的答案...:
Charlie

2
木炭是一种极富竞争性的面向ASCII的语言,优化后的答案可能约为40个字节,甚至可以消除泡泡糖。
Magic Octopus Urn

5
@carusocomputing 咳嗽你说40吗?
尼尔

@Neil我确实尝试过使用,‖B但是我不知道怎么做。。。不错的答案!
查理

4

Ruby,117个字节

13.times{|i|s=[?_*(15--i%12*1.3),"/%#{i*2+8}s"%?\\,''][(i%12%11+3)/5].center(27)
i>0&&(s[i-=7]=?\\)&&s[~i]=?/
puts s}


3

05AB1E92 86 80字节

'_15×6ú'/5úð8׫.∞5F'/4N-ú'/2ú«ð6N+׫.∞}4F'\Núð13N-׫.∞}'\4ú'_7×2ú«.∞'\5ú'_8׫.∞»

在线尝试!


部分说明

顶部的栏

'_      # underscore
  15×   # repeated 15 times
     6ú # with 6 spaces in front

条形下方的线

'/         # forward slash
  5ú       # with 5 spaces in front
    ð      # space
     8×    # repeated 8 times
       «   # concatenated with the earlier string
        .∞ # intersected mirror (i.e middle space not affected)
           # mirroring: "  /  " => "  /    \  "

六角形上部的其余部分

5F                     # for N in 0..4
  '/                   # forward slash
    4N-                # 4 - N
       ú               # spaces in front of the slash
        '/             # another forward slash
          2ú           # with 2 spaces in front
            «          # concatenated with the other string
             ð         # a space character
              6N+      # N + 6
                 ×     # times
                  «    # concatenated with the other string
                   .∞  # intersected mirror
                     } # end for

最后两行除外

4F               # for N in 0 .. 3
  '\             # backslash
    Nú           # with N spaces in front 
      ð          # a space
       13N-      # 13 - N
           ×     # repeated
            «    # concatenated with other string
             .∞  # intersected mirror
               } # end for

倒数第二行

'\ # backslash
  4ú # with 4 spaces in front
    '_ # underscore
      7× # repeated 7 times
        2ú # with 2 spaces in front
          « # concatenated with earlier string
           .∞ # intersected mirror

最后一行

'\ # backslash
  5ú # with 5 spaces in front
    '_ # underscore
      8× # repeated 8 times
        « # concatenated with other string
         .∞ # intersected mirror

»在年底加入的新行的一切。


@carusocomputing:嗯,我没想到要“镜像”它。
尼尔·A,

镜子就像palindromize,除了随着palindromize {_变成{_{,随着镜子变成{_}。Palendromize是û,镜子是。还有一个相交的镜像,即.∞
Magic Octopus Urn

@downvoter停机位。他说他还在打高尔夫球。
Magic Octopus Urn

3

C#,210个 199字节

编码运行空间和下划线的长度:

var h=@"5KL4/>\L3/1/:\1\L2/1/<\1\L1/1/>\1\L0/1/@\1\L/1/B\1\L\H/L0\F/L1\D/L2\B/L3\1I1/L4\K/L";for(var i='M';--i>'/';)h=h.Replace(""+i,i>75?"\n":"".PadLeft(i>72?i-60:i-47," _"[i/73]));Console.Write(h);

取消高尔夫:

var h = @"5KL4/>\L3/1/:\1\L2/1/<\1\L1/1/>\1\L0/1/@\1\L/1/B\1\L\H/L0\F/L1\D/L2\B/L3\1I1/L4\K/L";
for (var i = 'M'; --i > '/'; )
    h = h.Replace("" + i, i > 75 ? "\n" : "".PadLeft(i > 72 ? i - 60 : i - 47, " _"[i / 73]));
Console.Write(h);

在线尝试!


2

视网膜,129字节


5$* ¶    
\G (?=( *))
¶$1/  /$`11$* $`\  \
r`(?<=( *)) \G
$1\$'19$* $'/¶
^
6$* 15$*_¶5$* /15$* \
¶$
¶    \  13$*_  /¶5$* \15$*_/

在线尝试!完全不同的方法,但巧合的是相同的长度!




1

Pyth,111个字节

J\/K\\+*6d*15\_+++*5dJ*15dKV5+++*-5hNd"/  /"*+yN11d+++KddK)V4+++*NdK*-25yNdJ)+++++*4dK*2d*13\_*2dJ+++*5dK*15\_J

这段代码基本上逐行打印行(以幼稚的方式)。是的,这很糟糕,但是现在我还没有更好的状态,我也仍然想向HyperNeutrino致敬。

在线尝试!


1

PHP,122字节

<?=gzinflate(base64_decode("ddDBDQAgCEPRO1N0AxYicf8tFK2JIPT4HycA34iTHRVxJqwvGLvme8LXrxRAKoVmBZypoMNFjbmUtMEl/OV2WHqYTg"));

在线尝试!

PHP,158字节

for(;~$c='f000
e/o1d/b/k\b1c/b/m\b1b/b/o\b1a/b/q\b1/b/s\b1\y/
a\w/
b\u/
c\s/
d\b00___b/
e\000/'[$i++];)echo$c>_?str_pad("",ord($c)^96):strtr($c,[_____,"\
"]);

在线尝试!

PHP,165字节

<?=strtr("5566666
57/3334
5 13552513352713332 13355 213335 2433335 0 433355 0743333054333505 476666_ 057466666/",[" /
","/  /","\  \
","     ","\\","   ",___,"  "]);

在线尝试!



1

Python 2,187字节

a=`int("7YSUQZDJS0I3J2QJ40G9WNPIRBTBC1KF0F3X5WDMBW8CG5BVDHBJQ71V3UHCSY3TR8LC4IIEE5SZ",36)`[:-1]
for i in"0666666_!6__!5/!3\\!9\n!844!422!211!1 ".split("!"):a=a.replace(i[0],i[1:])
print a

在线尝试!


1

C#(.NET Core),169字节

var d=new char[364];for(int i=10;i-->0;)for(int j="ppnggffggn"[i]-97;j-->0;)d[28*"amlhbccbha"[i]+"ggh{fguva|"[i]-2813+j*("b|~}"[i/3]-97)]="_/\\\n"[i/3];Console.Write(d);

取消高尔夫:

var d = new char[364];
for (int i = 10; i-- > 0; )
    for (int j = "ppnggffggn"[i] - 97; j-- > 0; )
        d[28 * "amlhbccbha"[i] + "ggh{fguva|"[i] - 2813 + j * ("b|~}"[i / 3] - 97)] = "_/\\\n"[i / 3];
Console.Write(d);

对于每个笔画,我在各种字符串中编码了起始位置,长度,使用的字符和方向。我通过将类似的笔划分组来节省了一些字节。

可悲的是,这在tio中有点奇怪。这是因为我没有打印出实际空间。不过,在我的控制台中看起来还不错。因此,此提交可能不算在内。无论如何,这是链接。

在线尝试!(假空间169字节)

在线尝试!(实际空间为191个字节)



1

画笔,43字节,无竞争

13→'_8×←↓s/5{↙s/3→s/3←}↓'\6×↘↑'_8×→↖'_7×←▕┣

说明

13→'_8×←↓s/5{↙s/3→s/3←}↓'\6×↘↑'_8×→↖'_7×←▕┣  Program
13→                                          Move the pointer 13 spaces right
   '_                                        Push '_' onto the stack
     8×                                      Multiply it 8 times
       ←                                     Draw out '________' moving to the left
        ↓                                    Move down
         s/                                  Set that cell to a slash
           5{         }                      Execute function 5 times
             ↙                               Move the pointer one spot down and one spot to the left
              s/                             Set that cell to a slash
                3→                           Move 3 spaces right
                  s/                         Set that cell to a slash
                    3←                       Move 3 spaces left
                      ↓                      Move down
                       '\                    Push r'\'
                         6×                  Multiply it 6 times
                           ↘                 Draw out r'\\\\\\' moving down-right
                            ↑                Move up
                             '_              Push '_'
                               8×            Multiply it 8 times
                                 →           Draw out '________' moving to the right
                                   ↖         Move the pointer one spot up and one spot to the right
                                    '_       Push '_'
                                      7×     Multiply it 7 times
                                        ←▕┣  Draw out '_______' moving to the left
                                         ▕   Remove the rightmost column
                                          ┣  Mirror the entire grid to the right, overlapping the inner column, flipping some characters that have backwards variants

现实世界中的Beta测试:

Charcoal: 1
Paintbrush: 0

必须做很多改进,呵呵。:P


和用户自己发布解决方案!
价值墨水

@ValueInk时间到了,是吗?:P
HyperNeutrino

1

泡泡糖67 54字节

00000000: 55c9 310d 0040 0804 c1fe 55e0 0043 24f8  U.1..@....U..C$.
00000010: 77f1 c955 cc96 3b95 d65e 6697 4d76 0b93  w..U..;..^f.Mv..
00000020: cf06 f847 0448 d1e6 0ceb 5722 8421 1010  ...G.H....W".!..
00000030: d95b 7e60 ad3f                           .[~`.?

在线尝试!


0

C(gcc),200字节

char o[28];i,j,k,p;f(){for(k=0;k<39;puts(o))for(memset(o,k&&k<32?32:95,27),i=3;i--;k++)for(j=3;j--;o[24-i*3+j]=" _\\/"[p])o[i*3+2-j]=" _/\\"[p="U@@@B@HH@``@@BB@HH@``@@p@@L@@C@p@EL@UC@"[k]-64>>j*2&3];}

在线尝试!

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.