Zrób mi jajko wielkanocne!

29

Nie, nie ^^vv<><>BAtakie pisanki, prawdziwe pisanki, które malujemy.

Oto (strasznie narysowane) jajko.

  __
 /  \
/    \
|    |
\____/

Na Wielkanoc malujemy je wzorami. Jak te:

  __
 /--\
/----\
|----|
\____/
  __
 /%%\
/%%%%\
|%%%%|
\____/
  __
 /~~\
/~~~~\
|~~~~|
\____/

Wyzwanie

Biorąc pod uwagę znak (do wydruku ascii) do pomalowania jajka, wydrukuj malowane jajko.

Przykłady:

&:
  __
 /&&\
/&&&&\
|&&&&|
\____/

#:
  __
 /##\
/####\
|####|
\____/

Okular

  • Końcowe znaki nowej linii / spacje są dozwolone.
Matthew Roh
źródło
8
Dlaczego głosowanie negatywne? Jeśli nie podoba ci się to pytanie, oddaj głos, a następnie podaj powód.
Matthew Roh
2
Jednym z potencjalnych powodów może być to, że nie uważają, aby to zadanie było wystarczająco jasne lub wystarczająco jasne. Powiedziałbym, że jest wystarczająco jasny i nie jest dosłownie trywialny. To powiedziawszy, też nie jestem szczególnie podekscytowany.
John Dvorak
17
W większości języków wyzwanie będzie bardzo trywialne. Jajko jest za krótkie, aby pozwolić na dużą oryginalność podczas gry w golfa. Moim zdaniem jest to nieciekawe wyzwanie (nie zostało piaskownicy, bo wydaje się, że bojkotujesz piaskownicę, bo nie wiem z jakich powodów), dlatego głosuję za nią.
Dada,
25
Pozytywnie oceniany, ponieważ takie proste wyzwania są świetne dla początkujących, takich jak ja, do łatwego grania w golfa.
Kudłaty
7
POOF! Jesteś pisanką. (Przepraszam, nie mogłem się oprzeć)
George Cummins

Odpowiedzi:

16

Brain-Flak , 270 268 266 + 1 = 267 bajtów

+1 od -cflagi

(((((((((({}<(((([(()()())]((((((((((({}){}){}){}){}[()]))<>)<>{}())))))<>)<>(((()()()()()){}))({}()){})<>)<>>))))<<>({}<>)((()()()()()){})<>({}<>)>))))<<>((({})<>)({})<((()()()()()){})>[()()])>))<>((((({})<>)[(()()()()())({}){}])<((()()()()()){})<>((({}<>){}()))>))

Wypróbuj online!

Chciałem napisać wyjaśnienie, ale najpierw zdrzemnąłem się i zapomniałem, jak działa cała ta myśl. Twoje domysły są równie dobre jak moje.

Kreator pszenicy
źródło
14
To najlepsze wytłumaczenie, jakie kiedykolwiek czytałem tutaj. +1
David Conrad
12

Python 2, 62 bajty

Super prosto. Wypróbuj online .
-1 bajt, dzięki @ mbomb007

print r'''  __
 /~\
/~~\
|~~|
\____/'''.replace('~',input()*2)
Dead Possum
źródło
1
62 bajty
mbomb007
@ mbomb007 Dobry, dziękuję
Dead Possum
2
Możesz zapisać dwa bajty, używając funkcji lambda w ten sposób
Keerthana Prabhakaran
@KeerthanaPrabhakaran Nie jestem pewien, czy lambdas są w porządku na wyzwania ascii
Dead Possum
1
na czym polega problem z wykorzystaniem lambda w wyzwaniach ascii? jak oni są w ogóle spokrewnieni !? : o
Keerthana Prabhakaran
10

Węgiel drzewny , 30 26 16 bajtów

Dwa bajty zapisane dzięki @Neil dzięki wypełnieniu po wykonaniu kształtu

__↗¹←↑¹↖²↓_‖M←¤S

Wypróbuj online!

Wyjaśnienie

Program działa najpierw poprzez utworzenie prawej połowy jajka, a następnie odzwierciedlenie go w celu wygenerowania lewej połowy.

__↗¹                          Write the two bottom _s and write the /
←↑¹                           Move left and write the |
↖²                            Then write two \s
↓_                            And the top _
‖M←                          Reflect the canvas to the left
¤S                           Fill the shape with the string input
Kritixi Lithos
źródło
←_↘może być tak ↓_, ale w rzeczywistości można wypełnić po odzwierciedlać do 16 bajtów: __↗¹←↑¹↖²↓_‖M←¤S.
Neil,
@Neil Dzięki za zapoznanie mnie z¤
Kritixi Lithos
9

Galaretka , 24  22 bajtów

Ḥ;“ ¶/\|_”“Ṁ¢ṚR;ḳ}AṠ’ṃ

Wypróbuj online!

W jaki sposób?

Ḥ;“ ¶/\|_”“Ṁ¢ṚR;ḳ}AṠ’ṃ - Main link: character c  e.g. '~'
Ḥ                      - double c: ['~','~']
  “ _¶/\|”             - string literal: [' ','_',<newline>,'/','\','|']
 ;                     - concatenate c:  [['~','~'],' ','_',<newline>,'/','\','|']
          “Ṁ¢ṚR;ḳ}AṠ’  - base 250 number: 3067183430901851641706
                     ṃ - base decompression with reversed @rguments:
                       -     take the number and convert it to a base length(the list)
                       -     then index (1-based) into that same list.
                       -     i.e.: 3067183430901851641706 in base 7
                                 = 22003241534115361163500004
                                   indexed into [['~','~'],' ','_',<newline>,'/','\','|']
                                 = [' ',' ','_','_',<newline>,' ','/',['~','~'],'\',<newline>,'/',['~','~'],['~','~'],'\',<newline>,'|',['~','~'],['~','~'],'|',<newline>,'\','_','_','_','_','/']
                       - implicit print:  __
                                         /~~\
                                        /~~~~\
                                        |~~~~|
                                        \____/
Jonathan Allan
źródło
3
Nominuję twoje wyjaśnienie dla najdłuższego wyjaśnienia pojedynczego bajtu.
Magic Octopus Urn
Wydaje się, że stał się całkiem przydatnym atomem, pomyślałem, że dam mu trochę czasu w centrum uwagi!
Jonathan Allan
2
Widzę, że Dennis często go używa, ale po raz pierwszy wydaje mi się, że to zrozumiałem; czas nie został zmarnowany! Dałeś mi 1 jednostkę nauki.
Magic Octopus Urn
1
To jedno z moich dzieci :)
Jonathan Allan
6

Sed, 43 znaki

s:.:  __\n /&&\\\n/&&&&\\\n|&&&&|\n\\____/:

Przykładowy przebieg:

bash-4.3$ sed 's:.:  __\n /&&\\\n/&&&&\\\n|&&&&|\n\\____/:' <<< '★'
  __
 /★★\
/★★★★\
|★★★★|
\____/
człowiek w pracy
źródło
Właśnie to napisałem, zaledwie kilka sekund szybciej.
Riley
6

JavaScript (ES6), 53 49 47 bajtów

Jestem pewien, że uda mi się z tego trochę wyciągnąć - \denerwowanie mnie to denerwowanie.

f=

c=>`  __
 /${c+=c}\\
/${c+=c}\\
|${c}|
\\____/`

console.log(f`-`)
console.log(f`%`)
console.log(f`~`)
console.log(f`&`)
console.log(f`#`)

  • 4 bajty zapisane przez przeniesienie s=c+cprzypisania zmiennej do pierwszego zestawu {}.
  • 2 bajty zaoszczędzone przy użyciu c+=czamiast s=c+c& s=s+s, częściowo dzięki Neilowi, który zauważył to ulepszenie w tym samym czasie, w którym je robiłem.

Maluj własne!

Kudłaty
źródło
Byłoby trochę lepiej, jeśli umieścisz te dane wejściowe w <pre><code>s. Dobra robota.
Matthew Roh
Dzięki, @SIGSEGV. Konsole zachowują białe znaki i domyślnie używają przynajmniej czcionki o stałej szerokości, więc nie trzeba drukować na pre.
Kudłaty
1
Dlaczego nie c+=c?
Neil
Dzięki, @Neil, właśnie edytowałem to w sobie, ale zaktualizuję je jeszcze raz, aby skinąć głową.
Kudłaty
@Arnauld Nie musisz liczyć f=\nczęści dla liczby bajtów. Tylko tak działa fragment kodu.
AdmBorkBork
5

Alice , 53 52 bajty, niekonkurujące

Dzięki Leo za pośrednie zaoszczędzenie 1 bajtu.

/o *^i}'.*[;.h~r}}~"{.[^\\
@"S .^~ y~a}~~.["{!~"}^^^

Wypróbuj online!

Niestety musiałem naprawić błąd y(transliteracja), aby to działało, więc oznaczyłem go jako niekonkurujący.

Wyjaśnienie

Podstawową ideą jest utworzenie ciągu jajka, ale ~jako symbolu zastępczego dla dwóch kopii danych wejściowych. Jednak inne znaki wejściowe nie są szczególnie przyjazne dla ciągów Alice, ponieważ nie mogą one zawierać linii znaków i wszystkie /\_|będą wymagały ucieczki (ponieważ są traktowane jak lustra i ściany). Więc mogę zapisać niektóre bajty, używając również symboli zastępczych dla nich, a następnie transliterując je. Symbolami zastępczymi dla /\_|.[^{, które są po prostu postacią tuż przed tą, którą reprezentują. Do linii używam }.

Teraz kod ... cały program można rozwiązać w trybie porządkowym, ponieważ potrzebujemy tylko przetwarzania ciągów, a nie przetwarzania liczb całkowitych. Ponadto nie potrzebujemy żadnego warunkowego przepływu sterowania. Cały program można wyrazić liniowo. Ogólna struktura programu jest następująca:

/...//
@....

W takim programie adres IP przeskakuje w górę iw dół przez ...sekcję, najpierw wykonując tylko połowę znaków. Następnie dwa /na końcu przesuwają adres IP o jedną komórkę w prawo, aby w drodze powrotnej wykonał drugą połowę (ponownie podskakując w górę i w dół), aż w końcu @zakończy działanie programu. Jeśli więc rozwiniemy zabawną zygzakowatą strukturę pośrodku, program, który wykonujemy, wygląda tak:

"  ^^} .~[}.~~[}{~~{}[^^^^.""!}"r.h~;a*y'~i.*So

Przejdźmy przez to:

"  ^^} .~[}.~~[}{~~{}[^^^^."
      This first string is simply the egg template I've talked about.
"!}"  Push this string. It covers all the characters we need to replace
      in the template except ~.
r     Range expansion. Turns '!}' into '!"#$...z{|}'.
.     Duplicate.
h~;   Split off the first character, swap it to the top and discard it.
a*    Append a linefeed.
      We've now basically rotated the string to the left, but appended
      a linefeed instead of the exclamation mark we've shifted off.
      This maps each character in the string to the next one, except }
      which gets mapped to a linefeed.
y     Transliterate. Since the strings have the same length, this just maps
      each character in the first string to the corresponding character in
      the second string, replacing all of our placeholder characters.
'~    Push "~".
i.*   Read the input and duplicate it.
S     Substitute all "~" with the doubled input.
o     Output the result.
Martin Ender
źródło
: D jest tutaj !! Ten język wygląda fajnie
Conor O'Brien
@ ConorO'Brien dziękuję. Podjąłem już starsze wyzwania na wypadek, gdybyś chciał zobaczyć więcej próbek. :)
Martin Ender
4

PowerShell , 50 49 48 bajtów

'  __
 /11\
/1111\
|1111|
\____/'-replace1,$args

Wypróbuj online!

Prosta zamiana łańcucha na łańcuch literalny. Niewiele miejsca na grę w golfa.

-1 bajt dzięki HyperNeutrino; -1 bajt dzięki Wubs

AdmBorkBork
źródło
4

Marchewka , 34 bajty, niekonkurująca

  __
 /##\\
/####\\
|####|
\\____/

Nie konkuruje, ponieważ właśnie naprawiłem błąd interpretera w wiodących białych znakach, które nie były wyświetlane.

Wypróbuj online tutaj .

Po pierwsze, jesteśmy w trybie karetki, w którym każda postać jest wypychana na „stos”. I wreszcie „stos” zostaje wydrukowany jako wydruk.

W trybie karetki #popycha dane wejściowe, więc instancje #są w zasadzie zastępowane danymi wejściowymi (FYI #to jednobajtowy program cat).

Kritixi Lithos
źródło
4

SOGL V0.12 , 21 18 16 bajtów

0≈⁾‛≤¦¶W?5┼EB§  ‘

Wypróbuj tutaj!

Cały program jest skompresowany:

  __
 /ŗŗ\
/ŗŗŗŗ\
|ŗŗŗŗ|
\____/

gdzie ŗzostaje zastąpiony przez dane wejściowe.

13 bajtów prawie też działa, ale robi niepotrzebne rzeczy przy pewnych wejściach.

dzaima
źródło
Musisz pomalować jajko. (tj. wypełnij wnętrze jajka postaciami)
Matthew Roh
@SIGSEGV - Wyjaśniono, że osiąga się to poprzez zastąpienie spacji wejściem i zastąpienie myślników spacjami kodem@,ŗ -@ŗ
Jonathan Allan
Czy SOGOL będzie wkrótce w TIO?
Jonathan Allan
@JonathanAllan Jeśli ktoś może go tam dostać, to tak.
dzaima
Porozmawiaj z Dennis w pokoju talk-tryitonline-net .
Jonathan Allan
3

05AB1E , 34 33 32 bajty

„__I244S×'/ì'\«`©¦¨'|.ø®R¹'_‡).c

Wypróbuj online!

Wyjaśnienie

„__                               # push "__"
   I244S×                         # push a list of the input repeated 2 and 4 and 4 times
         '/ì                      # prepend "/"
            '\«                   # append "\"
               `                  # split list to separate items
                ©                 # store a copy of the last one in register
                 ¦¨               # remove first and last item of the string
                   '|.ø           # surround with pipes
                       ®R         # retrieve the string from register and reverse it
                         ¹'_‡     # replace input with "_"
                             ).c  # print each line centered
Emigna
źródło
•jÀňiXƒÐ[Z•6B6ôvy5ÝJ"_ |/\"¹«‡,dla 32, ale zupełnie inaczej. To mnie oszukało i sprawiło, że pomyślałem, że mogę użyć palindromize ... Cholera, że ())(i /\\/są palindromy.
Magic Octopus Urn
1
@carusocomputing: Powinieneś opublikować go osobno. Jest na tyle inny, że może być interesujący sam w sobie :)
Emigna 14.04.17
3

Python 3.6 , 53 bajty

lambda x:fr'''  __
 /{2*x}\
/{4*x}\
|{4*x}|
\____/'''
  • Nienazwana funkcja pobierająca znak xi zwracająca ciąg znaków.
  • Wykorzystuje ciągi f Pythona 3.6 jako dodatkową alternatywę dla wcześniejszych wersji .format()- {}załączone części tego ciągu są kodem do oceny.
  • Ciąg jest również ciągiem r i trzykrotnie cytowanym, co pozwala zaoszczędzić jeden bajt:

lambda x:f'  __\n /{2*x}\\\n/{4*x}\\\n|{4*x}|\n\____/'

Nie widzę jednak internetowego tłumacza dla Pythona 3.6.
Wypróbuj w repl.it (mówi 3.5, ale jest 3.6)

Jonathan Allan
źródło
3

Brainfuck - 257 bajtów 181 bajtów

Gra w golfa: wersja na żywo kliknij tutaj

+++++++[>++++++<-]>[>+>++>++>++<<<<-]>+++++>>>>++++++++++[>+++>+<<<++++<+<+>>>-]>++<<<--<+>>>,>..<<<<..>>>>>.<.<<<<<.>>>>..<<.>>>>.<<<<<<.>>>>....<<.>>>>.<<<.>....<.>>>.<<<<.<....<.

Nie jestem zawodowym golfistą. To jest moja próba, o ile pamiętam: D

Wydajność:

  __ 
 /XX\ 
/XXXX\ 
|XXXX| 
\____/ where X is the given char.

Niegolfowany (+ komentarze):

; chars:
; _ 95
; / 47
; \ 92
; | 142
; min val = 42 (7 times 6)

; lets do some math
+++++++[>++++++<-]> ; effectively 7 times 6

; now lets copy this to the next pointers multiplying by 2 
the subsequent ones after the 1st
[>+>++>++>++<<<<-]

>+++++
>>>

> ; empty space starting from this pointer
++++++++++[>+++>+<<<++++<+<+>>>-]
>++<
<<--<+
>>>,
>..<<<<..>>>>>.<.
<<<<<.
>>>>..<<.>>>>.
<<<<<<.>>>>....<<.>>>>.
<<<.>....<.
>>>.<<<<.<....<.
Lucca Ferri
źródło
2

05AB1E , 32 29 26 bajtów (Dzięki Emigna / Adnan)

•jÀňiXƒÐ[Z•6B6ôvy5ÝJ¹"_ |/\ÿ"‡,

Wypróbuj online!

•jÀňiXƒÐ[Z•6B6ô # Push ['110011', '135541', '355554', '255552', '400003']
vy               # For each encrypted block...
  5ÝJ            # Push 012345.
     ¹"_ |/\ÿ"   # Push "_ |/\{input_char}".
              ‡, # Swap the charsets.

Wersja 29-bajtowa (wymagana jest także inteligentniejsza wersja bez kodowania ze względu na kodowanie nowego wiersza):

05AB1E , 29 bajtów (Emigna)

•P£<r7»TwDšç6•5ÝJI"
_/ÿ\|"‡.c

Wypróbuj online 2!


26 bajtowe rozszerzenie sugestii Emigny, używając S do rozdzielenia znaków na tablicę, a następnie [b] do interpolacji każdej cyfry z odpowiednią lokalizacją w poprzedniej tablicy. Jest to zasadniczo transliteracja elementarna (inteligentna).

05AB1E , 26 bajtów (Adnan)

"
_/ÿ\|"•P£<r7»TwDšç6•Sè.c

Wypróbuj online 3!

Urna Magicznej Ośmiornicy
źródło
1
Jest to 3 bajty krótsze. Bardziej podobna do twojej odpowiedzi niż moja :)
Emigna
1
@Emigna, że ​​bezpośrednia transliteracja za pomocą nowego wiersza jest nowatorskim pomysłem, podoba mi się to; może to szczerze znokautować 5 bajtów wielu moich istniejących rozwiązań.
Magic Octopus Urn
2
Dla 26 bajtów .
Adnan
1
@adnan - sneaky sneaky ...
Magic Octopus Urn
Wydaje mi się, że prawie wszystkie moje odpowiedzi zasługują na uznanie Admigna, tak naprawdę nie poznałbym języka bez obu waszych stałych przykładów.
Magic Octopus Urn
2

PHP, 51 bajtów

$a.=$a=$argn;echo"  __
 /$a\
/$a$a\
|$a$a|
\____/";

PHP, 58 bajtów bez fizycznych podziałów liniowych

$a.=$a=$argn;echo"  __\n /$a\\\n/$a$a\\\n|$a$a|\n\\____/";

uruchom to z -Ropcją

61 bajtów

echo strtr("  __\n /88\\\n/8888\\\n|8888|\n\\____/",8,$argn);
Jörg Hülsermann
źródło
Przechowuj wartość dwukrotnie; usuń niepotrzebne miejsce; użyj dosłownego znaku nowej linii: pastebin.com/EghdAYMf
manatwork 14.04.17
@manatwork Dziękuję, że tak naprawdę nie zastanawiam się nad podwójnym wkładem
Jörg Hülsermann
zapisz 7 bajtów z fizycznymi podziałami linii i nie unikając ukośników odwrotnych (ostatni i tak nie wymaga ucieczki). Aha i btw: -Rnie jest parametrem, jest opcją.
Tytus
@Titus Nienawidzę fizycznych łamań linii Zrobione
Jörg Hülsermann
@Tytus, prawda, choć man phpnazywa je parametrem : „Można również przetwarzać standardowy wiersz po wierszu za pomocą parametru -R lub -F.”
manatwork
2

BF, 142 140 bajtów

++++[->++++<]>[->+++>++++++>+>++++++>++>++++++++<<<<<<],>->---->------>->..<..<.>>.<<<<.<..
>>.>.<<.<....>>.>.>>>----.<....>.<<<.<.>>....<<<.

Jest to podzielone na dwie linie dla jasności; nowa linia nie jest liczona.

Pisanie tego typu w BF jest dość łatwe, ale nie jest trywialne, jak zoptymalizować kolejność komórek, aby zminimalizować ruch. Napisałem scenariusz brutal-forcer, aby wypróbować wszystkie kombinacje i znaleźć najkrótszy. Grałem trochę w golfa, aby wziąć pod uwagę okazję do gry w golfa, której nie wziąłem pod uwagę.

Esolanging Fruit
źródło
@JoKing Sugeruję, abyś zamieścił to jako osobną odpowiedź, ponieważ wydaje się bardzo różne od mojej.
Esolanging Fruit
2

pieprzenie mózgu , 114 bajtów

-----[[<+>->++>++<<]->]<+++++++++++<+..<..>>.<.<<.>>,..<---.>>.<<<.>>....<.>>.<<<<---.>>>....<<<.>>>>.<<.+++....<.

Wypróbuj online!

Użyłem BF Crunch tutaj, aby znaleźć bardziej optymalny sposób na generowanie poszczególnych postaci.

Jo King
źródło
2

C (gcc) , 95 88 85 bajtów

Podziękowania dla Alberta za -7 bajtów

Dzięki także pułapowi -3 bajtów

f(c){for(int*s=L"  __\n /00\\\n/0000\\\n|0000|\n\\____/\n";*s;s+=printf(*s%6?s:&c));}

Wypróbuj online!

cleblanc
źródło
Nie deklaruj *qpo prostu zagnieżdżenia go bezpośrednio w pętli for, aby zaoszczędzić 5 bajtów. char*s;f(c){for(s=" __\n /11\\\n/1111\\\n|1111|\n\\____/\n";*s;putchar(*s^49?*s:c),s++);}
Albert Renshaw,
Możesz także zaoszczędzić 2 dodatkowe bajty, deklarując *swewnątrz argumentu deklaracji for-loop:f(c){for(char*s=" __\n /11\\\n/1111\\\n|1111|\n\\____/\n";*s;putchar(*s^49?*s:c),s++);}
Albert Renshaw
Możesz ogolić jeszcze 1 bajt, sprawdzając znak ASCII, który ma wartość liczbową wynoszącą jedną cyfrę. 1jest 49w ASCII, ale to 2 bajty, użyj czegoś o wartości od 0 do 9, na przykład znak tabulacji `` jest wartością ASCII 9.
Albert Renshaw,
Zaproponuj *s;f(c){for(szamiastf(c){for(int*
ceilingcat
1

SpecBAS - 70 bajtów

1 INPUT a$:  ?"  __"'" /";a$*2;"\"'"/";a$*4;"\"'"|";a$*4;"|"'"\____/"

?jest skrótem dla PRINTpolecenia, a apostrof przenosi kursor do następnego wiersza.

Brian
źródło
1

Python, 59 bajtów

lambda n:r'''  __
 /a\
/aa\
|aa|
\____/'''.replace('a',n*2)
Rɪᴋᴇʀ
źródło
1

Lua, 66 bajtów

print((([[  __
 /ee\
/eeee\
|eeee|
\____/]]):gsub("e",io.read())))

((([[[#NailedIt]])))

Paplać
źródło
1

Japt , 35 bajtów

"  __
 /01
/001
|00|
1____/"d0U²1'\

Wypróbuj online!

41-bajtowe rozwiązanie:

[S²'_²RS'/U²'\R'/U²²'\R'|U²²'|R'\'_²²'/]q

Wypróbuj online!

Oliver
źródło
Niezłe. Moja pierwsza próba była to dla 36 bajtów, ale wygląda na to, używając dto bajt krótszy.
ETHprodukcje
1

[R], 65 bajtów

cat(gsub('x',scan(,''),"  __\n /xx\\\n/xxxx\\\n|xxxx|\n\\____/"))

Dość mało widowiskowy, proszę znaleźć krótszy w R ... To twój podstawowy gsub

użytkownik11599
źródło
1

C ++ 208 bajtów

W odpowiedzi na komentarze: Jest to kompletny post.

#include<iostream>
using namespace std;int main(){char e;cin>>e;cout<<"  __  \n";cout<<" /"<<e<<e<<"\\ "<<endl;cout<<"/"<<e<<e<<e<<e<<"\\"<<endl;cout<<"|"<<e<<e<<e<<e<<"|"<<endl;cout<<"\\____/ \n";return 0;}
takintoolong
źródło
1

C # , 56 bajtów


Grał w golfa

i=>"  __\n /i\\\n/ii\\\n|ii|\n\\____/".Replace("i",i+i);

Nie golfił

i => 
   "  __\n /i\\\n/ii\\\n|ii|\n\\____/"
      .Replace( "i", i + i );

Nieczytelny czytelny

i => 
   "  __\n /i\\\n/ii\\\n|ii|\n\\____/"

      // Replace every instance of 'i' with the input cloned twice
      .Replace( "i", i + i );

Pełny kod

using System;
using System.Collections.Generic;

namespace Namespace {
   class Program {
      static void Main( String[] args ) {
         Func<String, String> f = i => 
            "  __\n /i\\\n/ii\\\n|ii|\n\\____/"
               .Replace( "i", i + i );

         List<String>
            testCases = new List<String>() {
               "-",
               "%",
               "~",
               "o",
               " ",
         };

         foreach( String testCase in testCases ) {
            Console.WriteLine( $" Input: {testCase}\nOutput:\n{f( testCase )}\n" );
         }

         Console.ReadLine();
      }
   }
}

Wydawnictwa

  • v1.0 - 56 bytes- Wstępne rozwiązanie.

Notatki

Wydrukowane wyniki w podanym linku nie będą wyglądały na udawane, ponieważ użyta czcionka nie jest jednolita.

auhmaan
źródło
1

C (gcc) , 87 bajtów

e(d){printf("  __\n /%c%c\\\n/%c%c%c%c\\\n|%c%c%c%c|\n\\____/\n",d,d,d,d,d,d,d,d,d,d);}

printf bez stdio.h powoduje ostrzeżenia, ale nie ma błędów, umożliwiając pomyślną kompilację.

Wyjaśnienie

Instrukcja Printf, która umieszcza wszystko w jednym wierszu, formatując znak dekoracyjny za pomocą% c.

Wypróbuj online

Jake Reynolds
źródło