Нарисуйте бензиновый гегаксон значок HyperNeutrino в ASCII

31

На праздновании HyperNeutrino вернул свой аккаунт и репутацию вслед за мистером Xcoder .

Чувство HyperNeutrino

Извиняюсь за поворот изображения для удобства рисования.


Напечатайте или напечатайте это искусство ASCII точно. У вас могут быть пробелы и / или завершающий символ новой строки.

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

Это изображает одну из двух резонансных структур молекулы бензола введите описание изображения здесь

Связанный: Концентрические шестиугольники , заполненные звездочкой шестиугольники

Leaderboard:

XNOR
источник
8
Я вижу, что @HyperNeutrino с тех пор повернул свою иконку, чтобы соответствовать этому вопросу!
Нил
5
@Neil Да: P Меня это так беспокоило, что я просто изменил его, чтобы сделать его последовательным. Теперь нужно обновить резонансные структуры, xnor: P
HyperNeutrino
1
Черт, талант не обновится, хотя я добавил в конец случайные неиспользуемые параметры, изменил его на StackOverflow, изменил его обратно и отредактировал другой примерно 10 раз: I
HyperNeutrino,
4
Но горизонтальная версия выглядит некрасиво, по моему мнению; может быть, я к этому не привык. Итак, я изменил это обратно. : P
HyperNeutrino
:( Я хотел посмотреть!
CalculatorFeline

Ответы:

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
  • х = | м |
  • у = ⌊ р / 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  .  .  .  .  .

демонстрация

Arnauld
источник
7

05AB1E , 50 байтов

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

Попробуйте онлайн!


Сжатие:

Стратегия здесь состояла в том, чтобы построить половину объекта, а затем отразить изображение на полпути. Для этого я сначала построил левую половину с передним отступом:

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

Но правого отступа нет, это потому, что .Bфункцию в 05AB1E можно использовать, чтобы сделать каждый элемент равным по длине, используя пробелы. Это позволяет мне опускать посторонние пробелы справа и просто разграничивать их новыми строками. Затем я взял этот шаблон и удалил все символы новой строки, заменив их 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.
Урна волшебного осьминога
источник
Вы можете сэкономить 3 байта, как это
Emigna
@emigna è, конечно!
Волшебная Урна Осьминога
5

V 61 байт

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

Попробуйте онлайн!

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
DJMcMayhem
источник
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 байта

emtree
источник
1
b,f,s,u='\/ _';o,a='/ /','\ \\'экономит 11 байтов по сравнению с текущей переменной инициализации! Смотрите здесь
Value Ink
1
используя подсказку @ ValueInk и не составляя список из 4 строк, вы получите 195 байт, как это
jacoblaw
1
@jacoblaw Вам не нужны все пробелы в этом. Вот это без них.
Пшеничный волшебник
1
oи aиспользуются только один раз в коде. Вот он с ними вписан.
CalculatorFeline
1
Вы можете использовать 0,1,2,3вместо того, range(4)чтобы сохранить байт.
Esolanging Fruit
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]
J42161217
источник
4

Древесный уголь , 47 43 41 байт

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

Попробуйте онлайн!

Я ничего не знал о древесном угле до сих пор, я чувствовал, что «я понятия не имею, что я делаю», пытаясь выяснить этот ответ ... Я вполне уверен, что это может быть много в гольфе.

Обновления:

  • Мне удалось сохранить 4 байта, учась использовать направления и движения курсора!
  • Еще 2 байта, сохраненные после реализации чертежа, были не совсем такими, как было задано. ^ __ ^ U
Чарли
источник
2
Лмао, поверь мне, ты не единственный, кто находится в последнем состоянии при использовании угля. Первый раз, когда я использовал это, пытался сделать куб. Я использовал встроенный «квадрат», затем вручную нарисовал заднюю часть кубоида, оказалось, что вы можете сделать это за 20 байт по сравнению с моими 57.
Волшебная урна с осьминогом
@carusocomputing Я не могу поверить, что O5AB1E или Jelly все еще имеют более длинные ответы ... :-D
Чарли
2
Древесный уголь является чрезвычайно конкурентоспособным ASCII-ориентированным языком, оптимизированный ответ составляет около 40 байтов, что может даже уничтожить жевательную резинку.
Волшебная Осьминог Урна
5
@carusocomputing кашель ты сказал 40?
Нил
@Neil Я пытался использовать, ‖Bно я не мог понять, как ... хороший ответ!
Чарли
4

Рубин, 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}
Уровень реки St
источник
3

05AB1E , 92 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: хм, я не думал о "отражении" этого.
Нил А.
Зеркало подобно палиндромизу, за исключением того, что с палиндромизом {_становится {_{, где с зеркалом оно становится {_}. Palendromize есть û, а зеркало есть . Есть также пересеченное зеркало, которое есть .∞.
Волшебная Урна Осьминога
@ downvoter остановка. Он сказал, что все еще играет в гольф.
Волшебная Осьминог Урна
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);

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

Попробуйте онлайн!

Джеффри
источник
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

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

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

Для каждого штриха я кодировал начальную позицию, длину, используемый символ и направление в различных строках. Я сэкономил несколько байтов, сгруппировав похожие штрихи.

К сожалению, это печатает немного странно в Тио. Это потому, что я не распечатываю реальные места. Выглядит хорошо в моей консоли, хотя. Так что, вероятно, это представление не считается. Вот ссылка в любом случае.

Попробуйте онлайн! (поддельные пробелы 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

Бета-тестирование в реальном мире:

Charcoal: 1
Paintbrush: 0

Должен сделать много улучшений, да. :П

HyperNeutrino
источник
И пользователь сам отправляет решение!
Value Ink
@ValueInk Время пришло, а? : P
HyperNeutrino
1

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

Попробуйте онлайн!

gastropner
источник