Dibuje el icono de hegaxón de benceno de HyperNeutrino en ASCII


31

En celebración de HyperNeutrino recuperando su cuenta y representante, siguiendo al Sr. Xcoder .

El estilo de HyperNeutrino

Disculpas por rotar la imagen para dibujar.


Imprime o imprime este arte ASCII exactamente. Es posible que tenga espacios finales y / o una nueva línea final.

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

Esto representa una de las dos estructuras de resonancia de la molécula benceno ingrese la descripción de la imagen aquí

Relacionado: hexágonos concéntricos , hexágonos llenos de asterisco

Tabla de clasificación:


8
¡Veo que @HyperNeutrino ha girado su icono para que coincida con esta pregunta!
Neil

55
@Neil Sí: P Me molestó tanto que simplemente lo cambié para que sea consistente. Ahora necesita actualizar las estructuras de resonancia, xnor: P
HyperNeutrino

1
Maldición, el estilo no se actualizará aunque agregué parámetros aleatorios no utilizados al final, lo cambié a StackOverflow, lo cambié de nuevo y
edité

44
Pero la versión horizontal se ve fea cuando se representa en mi perfil en mi opinión; podría ser que no estoy acostumbrado. Entonces, lo cambié de nuevo. : P
HyperNeutrino

:( quería ver!
CalculatorFeline

Respuestas:


24

Carbón , 23 bytes

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

Pruébalo en línea! Explicación: Imprime las líneas en el siguiente orden, luego refleja todo horizontalmente:

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

55
‖Bsignifica "Reflect Butterfly"
CalculatorFeline

8

JavaScript (ES6),  144  143 140 138 134 bytes

Una función recursiva que dibuja el carácter de salida por carácter con una expresión puramente condicional.

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):''

¿Cómo?

Para cada posición 0 <p ≤ 363 , definimos:

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

A continuación se muestra un desglose de la fórmula que selecciona el personaje apropiado [ '\', '/', ' ', '_', '\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

Y debajo están las diferentes partes en el sistema de coordenadas definido anteriormente:

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

Manifestación


7

05AB1E , 50 bytes

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

Pruébalo en línea!


La compresión:

La estrategia aquí era construir la mitad del objeto, luego reflejar la imagen en la mitad de la marca. Para hacer esto, primero construí la mitad izquierda, con acolchado frontal:

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

Pero no hay relleno correcto, esto se debe a que la .Bfunción en 05AB1E se puede usar para hacer que cada elemento tenga la misma longitud usando espacios. Esto me permite omitir los espacios extraños a la derecha y simplemente delimitarlos con nuevas líneas. Luego, tomé este patrón y eliminé todas las líneas nuevas reemplazándolas por 4para obtener:

1111112222222241111104111101104111011041101104101104011043413411341113411113112222222411111322222222

Comprimir esto con base-255 da como resultado:

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

Donde los dos denotan una cadena comprimida base-255 y 5B la convierte en base-5.


La segunda parte, después de la compresión:

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.

Podría guardar 3 bytes como este
Emigna

@emigna è, por supuesto!
Magic Octopus Urn

5

V , 61 bytes

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

Pruébalo en línea!

Hexdump:

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 bytes 179 bytes

Mi primer golf!

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

Pruébalo en línea!

Intenté hacer un bucle de los bits en los que pude encontrar un patrón y codifiqué el resto. Establecer los diferentes caracteres en una variable ayudó a ahorrar una gran cantidad de bytes.

Editar: decidió agregar a la misma matriz en lugar de unirse varias veces. Guardado 13 bytes.

Edición 2: Gracias a @ValueInk, @jacoblaw, @WheatWizard, @CalculatorFeline y @ Challenger5, guardaron 34 bytes


1
b,f,s,u='\/ _';o,a='/ /','\ \\'ahorra 11 bytes sobre su inicialización de variable actual! Ver aquí
Value Ink el

1
usando la sugerencia de @ ValueInk y no haciendo una lista de más de 4 líneas, tiene 195 bytes como este
jacoblaw

1
@jacoblaw No necesitas todos los espacios en eso. Aquí está sin ellos.
Wheat Wizard

1
oy asolo se usan una vez en el código. Aquí está con ellos en línea.
CalculatorFeline

1
Puede usar en 0,1,2,3lugar de range(4)guardar un byte.
Esolanging Fruit

4

J , 155 bytes

('_ /\',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 `'[<

Pruébalo en línea!

Esta es una función que no espera entrada. Por ejemplo, f =: <code>entonces f ''.

Explicación

Codifiqué esto usando los siguientes pasos. Suponga que la cadena de compresión deseada está contenida en la variable 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 `'

Entonces, solo necesitamos decodificar esto. 5#.inv 95x#.32-~3 u:realiza el inverso de lo que acabo de describir, dándonos la lista de índices. Luego, ('_ /\',LF){~aplica los caracteres apropiados a cada índice.


4

Mathematica, 227 bytes

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

Carbón , 47 43 41 bytes

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

Pruébalo en línea!

No sabía nada sobre el carbón hasta ahora, me sentí como "No tengo idea de lo que estoy haciendo" mientras trataba de encontrar esta respuesta ... Estoy bastante seguro de que esto se puede jugar mucho.

Actualizaciones:

  • ¡Logré ahorrar 4 bytes aprendiendo a usar las direcciones y movimientos del cursor!
  • Se guardaron 2 bytes más después de realizar el dibujo que no fue exactamente como se le pidió. ^ __ ^ U

2
Lmao, confía en mí, no eres el único en estar en el último estado cuando usas carbón. La primera vez que lo usé estaba tratando de hacer un cubo. Usé el "cuadrado" incorporado y luego dibujé manualmente la parte posterior del cuboide, resulta que puedes hacerlo en 20 bytes en comparación con mi 57.
Urna de pulpo mágico

@carusocomputing No puedo creer que O5AB1E o Jelly aún tengan respuestas más largas ... :-D
Charlie

2
El carbón es un lenguaje extremadamente competitivo orientado a ASCII, la respuesta optimizada probablemente sea de alrededor de 40 bytes, lo que incluso puede eliminar la goma de mascar.
Magic Octopus Urn

55
@carusocomputing tos dijo 40?
Neil

@Neil Intenté usar, ‖Bpero no pude entender cómo ... ¡buena respuesta!
Charlie

4

Ruby, 117 bytes

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

05AB1E , 92 86 80 bytes

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

Pruébalo en línea!


Explicación en partes

El bar en la cima

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

La línea inmediatamente debajo de la barra.

'/         # 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: "  /  " => "  /    \  "

El resto de la parte superior del hexágono.

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

El resto, excepto las 2 últimas líneas.

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

La penúltima línea

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

La ultima linea

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

Al »final se une todo en las nuevas líneas.


@carusocomputing: hmm, no pensé en "reflejarlo".
Neil A.

El espejo es como palindromizar, excepto que con palindromizar se {_convierte {_{, donde con espejo se convierte {_}. Palendromize es û, mientras que el espejo es . También hay un espejo intersectado, que es .∞.
Magic Octopus Urn

@downvoter stoppit. Dijo que todavía está jugando al golf.
Magic Octopus Urn

3

C #, 210 199 bytes

Codifica la longitud de las ejecuciones de espacio y subrayado:

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

Sin golf:

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

¡Pruébelo en línea!


2

Retina , 129 bytes


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

Pruébalo en línea! Enfoque completamente diferente, pero casualmente, ¡la misma longitud!




1

Pyth , 111 bytes

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

Este código básicamente imprime las líneas una tras otra (en la forma ingenua de hacerlo). Sí, apesta, pero en este momento no estoy en mejor estado, y yo también quería rendir homenaje a HyperNeutrino .

Pruébalo en línea!


1

PHP , 122 bytes

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

Pruébalo en línea!

PHP , 158 bytes

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,[_____,"\
"]);

Pruébalo en línea!

PHP , 165 bytes

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

Pruébalo en línea!



1

Python 2 , 187 bytes

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

Pruébalo en línea!


1

C # (.NET Core) , 169 bytes

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

Sin golf:

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

Para cada golpe codifiqué la posición de inicio, la longitud, el carácter utilizado y la dirección dentro de varias cadenas. Ahorré algunos bytes al agrupar trazos similares.

Lamentablemente, esto imprime un poco raro en tio. Esto se debe a que no estoy imprimiendo espacios reales. Sin embargo, se ve bien en mi consola. Entonces, probablemente, esta presentación no cuenta. Aquí está el enlace de todos modos.

Pruébalo en línea! (espacios falsos 169 bytes)

Pruébalo en línea! (espacios reales 191 bytes)



1

Pincel , 43 bytes, no competidor

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

Explicación

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

Pruebas beta en el mundo real:

Charcoal: 1
Paintbrush: 0

Tengo que hacer muchas mejoras, ¿eh? :PAGS


¡Y el usuario mismo publica una solución!
Value Ink

@ValueInk Ya es hora, ¿eh? : P
HyperNeutrino

1

Chicle , 67 54 bytes

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                           .[~`.?

Pruébalo en línea!


0

C (gcc) , 200 bytes

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

Pruébalo en línea!

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.