Dessinez l'icône de l'hégaxone benzénique d'HyperNeutrino en ASCII


31

Pour célébrer HyperNeutrino récupérer son compte et son représentant, à la suite de M. Xcoder .

Le flair d'HyperNeutrino

Toutes mes excuses pour la rotation de l'image pour la facilité de dessin.


Imprimez ou imprimez cet art ASCII exactement. Vous pouvez avoir des espaces de fin et / ou une nouvelle ligne de fin.

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

Cela représente l'une des deux structures de résonance de la molécule de benzène entrez la description de l'image ici

Connexes: hexagones Concentric , hexagones rempli Asterisk

Classement:


8
Je vois que @HyperNeutrino a depuis tourné son icône pour correspondre à cette question!
Neil

5
@Neil Oui: P Cela m'a tellement dérangé que je l'ai juste changé pour le rendre cohérent. Vous devez maintenant mettre à jour les structures de résonance, xnor: P
HyperNeutrino

1
Darn, le flair ne sera pas mis à jour même si j'ai ajouté des paramètres inutilisés aléatoires à la fin, l'ai changé en StackOverflow, l'ai changé en arrière et en ai édité une autre comme 10 fois: I
HyperNeutrino

4
Mais la version horizontale semble moche lorsqu'elle est rendue sur mon profil à mon avis; pourrait simplement être que je ne suis pas habitué. Donc, je l'ai changé en arrière. : P
HyperNeutrino

:( Je voulais voir!
CalculatorFeline

Réponses:


24

Fusain , 23 octets

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

Essayez-le en ligne! Explication: imprime les lignes dans l'ordre suivant, puis reflète tout horizontalement:

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

5
‖Bsignifie "Reflect Butterfly"
CalculatorFeline

8

JavaScript (ES6),  144  143 140 138 134 octets

Une fonction récursive dessinant le caractère de sortie par caractère avec une expression purement conditionnelle.

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

Comment?

Pour chaque position 0 <p ≤ 363 , nous définissons:

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

Vous trouverez ci-dessous une ventilation de la formule qui choisit le caractère approprié [ '\', '/', ' ', '_', '\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

Et ci-dessous sont les différentes parties du système de coordonnées défini ci-dessus:

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

Démo


7

05AB1E , 50 octets

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

Essayez-le en ligne!


La compression:

La stratégie ici était de construire la moitié de l'objet, puis de refléter l'image à mi-chemin. Pour ce faire, j'ai d'abord construit la moitié gauche, avec un rembourrage avant:

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

Mais pas de remplissage à droite, car la .Bfonction dans 05AB1E peut être utilisée pour rendre chaque élément de longueur égale en utilisant des espaces. Cela me permet d'omettre les espaces superflus à droite et de les délimiter simplement par des retours à la ligne. J'ai ensuite pris ce modèle et supprimé tous les sauts de ligne en les remplaçant par 4pour obtenir:

1111112222222241111104111101104111011041101104101104011043413411341113411113112222222411111322222222

Compresser cela avec la base-255 entraîne:

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

Où les deux désignent une chaîne compressée en base 255 et 5B la convertit en base 5.


La deuxième partie, après la compression:

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.

Vous pourriez économiser 3 octets comme celui-ci
Emigna

@emigna è, bien sûr!
Magic Octopus Urn

5

V , 61 octets

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

Essayez-le en ligne!

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

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

Essayez-le en ligne!

J'ai essayé de boucler les bits sur lesquels je pouvais trouver un motif et j'ai codé en dur le reste. Définir les différents caractères sur une variable a permis d'économiser beaucoup d'octets.

Modifier: a décidé d'ajouter au même tableau au lieu de rejoindre plusieurs fois. Enregistré 13 octets.

Edit 2: Merci à @ValueInk, @jacoblaw, @WheatWizard, @CalculatorFeline et @ Challenger5, économisé 34 octets


1
b,f,s,u='\/ _';o,a='/ /','\ \\'économise 11 octets sur votre initialisation de variable actuelle! Voir ici
Value Ink

1
en utilisant le conseil de @ ValueInk et sans faire une liste sur 4 lignes, vous avez 195 octets comme celui-ci
jacoblaw

1
@jacoblaw Vous n'avez pas besoin de tous les espaces là-dedans. Ici, c'est sans eux.
Wheat Wizard

1
oet ane sont utilisés qu'une seule fois dans le code. Le voici avec eux en ligne.
CalculatorFeline

1
Vous pouvez utiliser 0,1,2,3au lieu de range(4)pour enregistrer un octet.
Esolanging Fruit

4

J , 155 octets

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

Essayez-le en ligne!

Il s'agit d'une fonction qui n'attend aucune entrée. Par exemple, f =: <code>alors f ''.

Explication

J'ai codé cela en utilisant les étapes suivantes. Supposons que la chaîne de compression souhaitée soit contenue dans 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 `'

Ensuite, nous avons juste besoin de décoder cela. 5#.inv 95x#.32-~3 u:effectue l'inverse de ce que je viens de décrire, nous donnant la liste des indices. Ensuite, ('_ /\',LF){~applique les caractères appropriés à chaque index.


4

Mathematica, 227 octets

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

Fusain , 47 43 41 octets

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

Essayez-le en ligne!

Je ne savais rien du charbon de bois jusqu'à présent, je me sentais comme "je n'ai aucune idée de ce que je fais" en essayant de trouver cette réponse ... Je suis sûr que cela peut être joué beaucoup.

Mises à jour:

  • J'ai réussi à économiser 4 octets en apprenant à utiliser les directions et les mouvements du curseur!
  • 2 octets supplémentaires enregistrés après avoir réalisé que le dessin n'était pas exactement comme demandé. ^ __ ^ U

2
Lmao, croyez-moi, vous n'êtes pas le seul à être dans ce dernier état lorsque vous utilisez du charbon de bois. La première fois que je l'ai utilisé, j'essayais de créer un cube. J'ai utilisé le "carré" intégré puis dessiné manuellement l'arrière du cuboïde, il s'avère que vous pouvez le faire en 20 octets par rapport à mon 57.
Urne Magic Octopus

@carusocomputing Je ne peux pas croire que O5AB1E ou Jelly aient encore des réponses plus longues ... :-D
Charlie

2
Le charbon de bois est un langage orienté ASCII extrêmement compétitif, la réponse optimisée est probablement d'environ 40 octets, ce qui peut même effacer le chewing-gum.
Magic Octopus Urn

5
@carusocomputing toux avez-vous dit 40?
Neil

@Neil J'ai essayé d'utiliser ‖Bmais je n'ai pas pu comprendre comment ... belle réponse!
Charlie

4

Rubis, 117 octets

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 octets

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

Essayez-le en ligne!


Explication en parties

Le bar en haut

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

La ligne juste en dessous de la barre

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

Le reste de la partie supérieure de l'hexagone

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

Le reste sauf les 2 dernières lignes

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

L'avant-dernière ligne

'\ # 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 dernière ligne

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

À »la fin, tout rejoint sur les nouvelles lignes.


@carusocomputing: hmm, je n'ai pas pensé à le "mettre en miroir".
Neil A.

Le miroir est comme palindromiser, sauf avec le palindromiser {_devient {_{, où avec le miroir il devient {_}. Palendromize l'est û, tandis que le miroir l'est . Il y a aussi un miroir intersecté, qui l'est .∞.
Magic Octopus Urn

@downvoter stoppit. Il a dit qu'il jouait encore au golf.
Magic Octopus Urn

3

C #, 210 199 octets

Encode la longueur des exécutions d'espace et des soulignements:

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

Ungolfed:

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

Essayez-le en ligne!


2

Rétine , 129 octets


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

Essayez-le en ligne! Approche complètement différente, mais par coïncidence la même longueur!




1

Pyth , 111 octets

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

Ce code imprime essentiellement les lignes les unes après les autres (de la manière naïve de le faire). Oui, ça craint, mais pour l'instant je ne suis pas en train de faire mieux, et moi aussi je voulais encore rendre hommage à HyperNeutrino .

Essayez-le en ligne!


1

PHP , 122 octets

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

Essayez-le en ligne!

PHP , 158 octets

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

Essayez-le en ligne!

PHP , 165 octets

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

Essayez-le en ligne!



1

Python 2 , 187 octets

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

Essayez-le en ligne!


1

C # (.NET Core) , 169 octets

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

Ungolfed:

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

Pour chaque trait, j'ai codé la position de départ, la longueur, le caractère utilisé et la direction dans diverses chaînes. J'ai économisé quelques octets en regroupant des traits similaires.

Malheureusement, cela imprime un peu bizarre in tio. C'est parce que je n'imprime pas de vrais espaces. Ça a l'air bien dans ma console, cependant. Donc, cette soumission ne compte probablement pas. Voici le lien de toute façon.

Essayez-le en ligne! (faux espaces 169 octets)

Essayez-le en ligne! (espaces réels 191 octets)



1

Pinceau , 43 octets, non concurrent

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

Explication

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

Tests bêta dans le monde réel:

Charcoal: 1
Paintbrush: 0

Je dois faire beaucoup d'améliorations, hein. : P


Et l'utilisateur lui-même publie une solution!
Value Ink

@ValueInk Il est temps, hein? : P
HyperNeutrino

1

Bubblegum , 67 54 octets

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

Essayez-le en ligne!


0

C (gcc) , 200 octets

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

Essayez-le en ligne!

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.