Làm cho tôi một quả trứng Phục sinh!


29

Không, không phải ^^vv<><>BAloại trứng Phục sinh, trứng Phục sinh thực sự mà chúng ta vẽ.

Đây là một quả trứng (được vẽ một cách khủng khiếp).

  __
 /  \
/    \
|    |
\____/

Trong Phục sinh, chúng tôi vẽ chúng với các mẫu. Giống những cái này:

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

Các thách thức

Cho một ký tự (có thể in ascii) để vẽ quả trứng, in quả trứng đã sơn.

Ví dụ:

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

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

Thông số kỹ thuật

  • Trailing newlines / space được cho phép.

8
Tại sao các downvote? Nếu bạn không thích câu hỏi này, hãy tải xuống một lý do.
Matthew Roh

2
Một lý do tiềm năng có thể là họ không nghĩ rằng nhiệm vụ này đủ rõ ràng hoặc đủ rõ ràng. Tôi muốn nói rằng nó đủ rõ ràng và nó cũng không tầm thường. Điều đó nói rằng, tôi cũng không đặc biệt hào hứng.
John Dvorak

17
Thách thức sẽ rất tầm thường trong hầu hết các ngôn ngữ. Trứng quá ngắn để cho phép nhiều độc đáo trong việc chơi golf. Theo tôi, đó là một thử thách không thú vị (chưa được sandbox, vì dường như bạn đang tẩy chay hộp cát vì tôi không biết lý do gì), vì vậy, tôi đã đánh giá thấp nó.
Dada

25
Được khuyến khích bởi vì những thử thách đơn giản như thế này rất tốt cho những người mới bắt đầu như tôi có thể chơi gôn.
Xù xì

7
KIẾM! Bạn là một quả trứng Phục sinh. (Xin lỗi, không thể cưỡng lại)
George Cummins

Câu trả lời:


16

Brain-Flak , 270 268 266 + 1 = 267 byte

+1 từ -ccờ

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

Hãy thử trực tuyến!

Tôi sẽ viết một lời giải thích, nhưng tôi đã ngủ trưa trước và quên mất toàn bộ suy nghĩ này hoạt động như thế nào. Dự đoán của bạn là tốt như của tôi.


14
Đây là lời giải thích tốt nhất mà tôi từng đọc ở đây. +1
David Conrad

12

Python 2, 62 byte

Siêu thẳng. Hãy thử trực tuyến .
-1 byte, nhờ @ mbomb007

print r'''  __
 /~\
/~~\
|~~|
\____/'''.replace('~',input()*2)


@ mbomb007 Tốt, cảm ơn
Dead Possum

2
Bạn có thể lưu hai byte bằng cách sử dụng hàm lambda như thế này
Keerthana Mitchhakaran

@KeerthanaPrabhakaran Tôi không chắc liệu lambdas có ổn cho các thử thách ascii hay không
Dead Possum

1
vấn đề trong việc sử dụng lambda trong các thử thách ascii là gì? Họ thậm chí còn liên quan như thế nào!? : o
Keerthana Mitchhakaran

10

Than , 30 26 16 byte

Hai byte được lưu nhờ @Neil bằng cách điền vào sau khi tạo hình

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

Hãy thử trực tuyến!

Giải trình

Chương trình hoạt động bằng cách đầu tiên tạo ra nửa bên phải của quả trứng, và sau đó phản chiếu nó để tạo ra nửa bên trái.

__↗¹                          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

←_↘có thể chỉ ↓_nhưng trên thực tế bạn có thể điền sau khi bạn phản ánh 16 byte : __↗¹←↑¹↖²↓_‖M←¤S.
Neil

@Neil Cảm ơn bạn đã giới thiệu cho tôi¤
Kritixi Lithos

9

Thạch , 24  22 byte

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

Hãy thử trực tuyến!

Làm sao?

Ḥ;“ ¶/\|_”“Ṁ¢Ṛ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:  __
                                         /~~\
                                        /~~~~\
                                        |~~~~|
                                        \____/

3
Tôi chỉ định lời giải thích của bạn cho lời giải thích dài nhất về một byte đơn.
Bạch tuộc ma thuật Urn

Nó dường như đã trở thành một nguyên tử tiện dụng, nghĩ rằng tôi sẽ cho nó một chút thời gian dưới ánh đèn sân khấu!
Jonathan Allan

2
Tôi thấy Dennis sử dụng nó rất nhiều, đây là lần đầu tiên tôi cảm thấy như tôi thực sự hiểu nó; thời gian không lãng phí! Bạn đã cho tôi 1 đơn vị học tập.
Bạch tuộc ma thuật Urn

1
Vâng, đó là một trong những đứa con của tôi :)
Jonathan Allan

6

Sed, 43 ký tự

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

Chạy mẫu:

bash-4.3$ sed 's:.:  __\n /&&\\\n/&&&&\\\n|&&&&|\n\\____/:' <<< '★'
  __
 /★★\
/★★★★\
|★★★★|
\____/

Đó chính xác là những gì tôi đã viết, chỉ nhanh hơn vài giây.
Riley

6

JavaScript (ES6), 53 49 47 byte

Tôi chắc chắn rằng tôi có thể vắt kiệt thêm một chút trong số này - phải thoát khỏi cái \đó làm tôi khó chịu.

f=

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

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

  • 4 byte được lưu bằng cách di chuyển s=c+cphép gán biến trong tập đầu tiên {}.
  • 2 byte được lưu bằng cách sử dụng c+=cthay vì s=c+c& s=s+s, một phần nhờ vào Neil , người đã phát hiện ra sự cải tiến này cùng lúc với tôi đang thực hiện nó.

Vẽ của riêng bạn!


Sẽ tốt hơn một chút nếu bạn đặt những đầu vào đó vào <pre><code>s. Công việc tốt mặc dù.
Matthew Roh

Cảm ơn, @SIGSEGV. Các bảng điều khiển duy trì khoảng trắng và, theo mặc định, ít nhất, sử dụng phông chữ đơn cách, do đó không cần phải xuất ra a pre.
Shaggy

1
Tại sao không c+=c?
Neil

Cảm ơn, @Neil, tôi chỉ tự mình chỉnh sửa nó, nhưng tôi sẽ cập nhật lại để cung cấp cho bạn một cái gật đầu.
Xù xì

@Arnauld Bạn không cần phải đếm f=\nphần cho số byte. Điều đó chỉ để đoạn trích chạy.
admBorkBork

5

Alice , 53 52 byte, không cạnh tranh

Cảm ơn Leo đã gián tiếp tiết kiệm 1 byte.

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

Hãy thử trực tuyến!

Thật không may, tôi đã phải sửa một lỗi với y(phiên âm) để làm cho công việc này, vì vậy tôi đã đánh dấu nó là không cạnh tranh.

Giải trình

Ý tưởng cơ bản là tạo ra một chuỗi trứng nhưng với ~vai trò giữ chỗ cho hai bản sao của đầu vào. Tuy nhiên, các ký tự khác của đầu vào không đặc biệt thân thiện với chuỗi Alice, vì các chuỗi này không chứa nguồn cấp dữ liệu và tất cả /\_|sẽ cần thoát (vì chúng được coi là gương và tường). Vì vậy, tôi có thể lưu một số byte bằng cách sử dụng trình giữ chỗ cho những thứ này, và sau đó chuyển ngữ chúng. Giữ chỗ cho /\_|.[^{, mà chỉ đơn giản là nhân vật ngay trước khi một đại diện cho họ. Đối với nguồn cấp dữ liệu tôi đang sử dụng }.

Bây giờ mã ... toàn bộ chương trình có thể được giải trong chế độ Thông thường vì chúng ta chỉ cần xử lý chuỗi và không xử lý số nguyên. Hơn nữa, chúng tôi không cần bất kỳ luồng kiểm soát có điều kiện. Toàn bộ chương trình có thể được thể hiện tuyến tính. Cấu trúc chung của chương trình là thế này:

/...//
@....

Trong một chương trình như vậy, IP nảy lên xuống thông qua ...phần này, trước tiên chỉ thực hiện một nửa số ký tự. Sau đó, hai cái /ở cuối di chuyển IP sang phải bởi một ô, để trên đường quay lại, nó thực thi nửa kia (một lần nữa nảy lên và xuống) cho đến khi cuối cùng @kết thúc chương trình. Vì vậy, nếu chúng ta mở ra cấu trúc ngoằn ngoèo ngộ nghĩnh ở giữa, chương trình chúng ta đang thực hiện thực sự trông như thế này:

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

Chúng ta hãy đi qua điều này:

"  ^^} .~[}.~~[}{~~{}[^^^^."
      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.

: D đây rồi !! Ngôn ngữ này có vẻ tiện lợi
Conor O'Brien

@ ConorO'Brien cảm ơn bạn. Tôi đã đưa ra một số thách thức cũ với nó trong trường hợp bạn muốn xem nhiều mẫu hơn. :)
Martin Ender

4

PowerShell , 50 49 48 byte

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

Hãy thử trực tuyến!

Thay thế chuỗi đơn giản thành một chuỗi chữ. Không có nhiều chỗ để chơi gôn.

-1 byte nhờ HyperNeutrino; -1 byte nhờ wub


4

Cà rốt , 34 byte, không cạnh tranh

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

Không cạnh tranh vì tôi chỉ sửa lỗi với trình thông dịch trong khoảng trắng hàng đầu không được hiển thị.

Hãy thử trực tuyến tại đây .

Đầu tiên, chúng ta ở chế độ caret, trong đó mọi nhân vật được đẩy vào "ngăn xếp". Và cuối cùng, "ngăn xếp" được in thành đầu ra.

Trong chế độ caret, #đẩy đầu vào, vì vậy các trường hợp #về cơ bản được thay thế bằng đầu vào (FYI #là chương trình con mèo một byte).


4

SOGL V0.12 , 21 18 16 byte

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

Hãy thử nó ở đây!

Toàn bộ chương trình được nén như sau:

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

nơi ŗđược thay thế bằng đầu vào.

13 byte hầu như cũng hoạt động, nhưng nó không cần thiết với một số đầu vào nhất định ..


Bạn phải sơn trứng. (tức là điền vào bên trong quả trứng bằng các ký tự)
Matthew Roh

@SIGSEGV - Điều này được giải thích là đạt được bằng cách thay thế khoảng trắng bằng đầu vào và thay thế dấu gạch ngang bằng dấu cách bằng mã@,ŗ -@ŗ
Jonathan Allan

SOGOL sẽ có mặt tại TIO bất cứ lúc nào sớm?
Jonathan Allan

@Jonathan ALLan Nếu ai đó có thể lấy nó ở đó, thì có.
dzaima

Nói chuyện với Dennis trong phòng nói chuyện-tryitonline-net .
Jonathan Allan

3

05AB1E , 34 33 32 byte

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

Hãy thử trực tuyến!

Giải trình

„__                               # 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

•jÀňiXƒÐ[Z•6B6ôvy5ÝJ"_ |/\"¹«‡,cho 32, hoàn toàn khác nhau mặc dù. Điều này làm tôi thất vọng và khiến tôi nghĩ rằng tôi có thể sử dụng palindromize ... Chết tiệt thực tế đó ())(/\\/là palindromes.
Bạch tuộc ma thuật Urn

1
@carusocomputing: Bạn nên đăng riêng. Nó đủ khác để tự thú vị :)
Emigna

3

Python 3.6 , 53 byte

lambda x:fr'''  __
 /{2*x}\
/{4*x}\
|{4*x}|
\____/'''
  • Hàm không tên lấy ký tự xvà trả về một chuỗi.
  • Sử dụng các chuỗi f của Python 3.6 như là một thay thế bổ sung cho các phiên bản trước .format()- các {}phần kèm theo của chuỗi f là mã được đánh giá.
  • Chuỗi cũng là một chuỗi r và ba trích dẫn lưu một byte qua:

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

Tôi không thể thấy trình thông dịch trực tuyến cho Python 3.6.
Hãy thử tại repl.it (nói 3.5 nhưng là 3.6)



3

Brainfuck - 257 byte 181 byte

Golfed: Phiên bản trực tiếp bấm vào đây

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

Tôi không phải là một tay golf chuyên nghiệp. Đây là nỗ lực của tôi theo như tôi có thể nhớ lại: D

Đầu ra:

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

Ungolfed (+ bình luận):

; 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
++++++++++[>+++>+<<<++++<+<+>>>-]
>++<
<<--<+
>>>,
>..<<<<..>>>>>.<.
<<<<<.
>>>>..<<.>>>>.
<<<<<<.>>>>....<<.>>>>.
<<<.>....<.
>>>.<<<<.<....<.

2

05AB1E , 32 29 26 byte (Cảm ơn Emigna / Adnan)

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

Hãy thử trực tuyến!

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

Phiên bản 29 byte (cũng cần lặp lại thông minh hơn do mã hóa dòng mới):

05AB1E , 29 byte (Emigna)

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

Dùng thử trực tuyến 2!


Phần mở rộng 26 byte của đề xuất của Emigna, sử dụng S để phân tách các ký tự thành một mảng, sau đó [b] để nội suy từng chữ số với vị trí tương ứng trong mảng trước đó. Đây thực chất là một cách chuyển ngữ phần tử (thông minh).

05AB1E , 26 byte ( Ad Nam )

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

Dùng thử trực tuyến 3!


1
Đây là 3 byte ngắn hơn. Tương tự như câu trả lời của bạn hơn của tôi :)
Emigna

1
@Emigna rằng chuyển ngữ trực tiếp bằng cách sử dụng dòng mới là một ý tưởng mới lạ, tôi thích điều đó; điều này thực sự có thể đánh bật 5 byte khỏi nhiều giải pháp hiện có của tôi.
Bạch tuộc ma thuật Urn


1
@adnan - lén lút lén lút ...
Bạch tuộc ma thuật Urn

Tôi cảm thấy gần như tất cả các câu trả lời của tôi cần phải ghi nhận Admigna, sẽ không thực sự biết ngôn ngữ mà không có cả hai ví dụ liên tục của bạn.
Bạch tuộc ma thuật Urn

2

PHP, 51 byte

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

PHP, 58 byte không có ngắt dòng vật lý

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

chạy cái này với -Rtùy chọn

61 byte

echo strtr("  __\n /88\\\n/8888\\\n|8888|\n\\____/",8,$argn);

Lưu trữ giá trị nhân đôi; loại bỏ không gian không cần thiết; sử dụng ký tự dòng mới theo nghĩa đen: pastebin.com/EghdAYMf
manatwork

@manatwork Cảm ơn bạn tôi đã không thực sự nghĩ về việc tăng gấp đôi đầu vào
Jörg Hülsermann

lưu 7 byte với ngắt dòng vật lý và không thoát khỏi dấu gạch chéo ngược (cái cuối cùng không cần thoát dù sao). Oh và btw: -Rkhông phải là một tham số, nó là một tùy chọn.
Tít

@Titus tôi ghét việc ngắt dòng vật lý Xong
Jörg Hülsermann

@Titus, phải, mặc dù man phpgọi chúng là tham số : Có thể xử lý dòng đầu vào tiêu chuẩn theo từng dòng bằng cách sử dụng tham số -R hoặc -F.
manatwork

2

BF, 142 140 byte

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

Điều này được chia thành hai dòng cho rõ ràng; dòng mới không được tính.

Thật dễ dàng để viết loại điều này trong BF, nhưng làm thế nào để làm tối ưu hóa trật tự của các tế bào để giảm thiểu chuyển động. Tôi đã viết một kịch bản brute-forcer để thử tất cả các kết hợp và tìm ra đoạn ngắn nhất, và tôi đã đánh golf nó một chút để tính đến một cơ hội chơi golf mà tôi đã không bao gồm trong brute-forcer.


@JoKing Tôi đề nghị bạn đăng nó như một câu trả lời riêng biệt, bởi vì nó có vẻ rất khác với tôi.
Trái cây Esolanging

2

Brainfuck , 114 byte

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

Hãy thử trực tuyến!

Tôi đã sử dụng BF Crunch ở đây để tìm ra cách tối ưu hơn để tạo các ký tự riêng lẻ.


2

C (gcc) , 95 88 85 byte

Cảm ơn Albert vì -7 byte

Cũng xin cảm ơn trần -3 byte

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

Hãy thử trực tuyến!


Đừng khai báo *qchỉ lồng nó vào vòng lặp for của bạn để lưu 5 byte. char*s;f(c){for(s=" __\n /11\\\n/1111\\\n|1111|\n\\____/\n";*s;putchar(*s^49?*s:c),s++);}
Albert Renshaw

Bạn cũng có thể lưu thêm 2 byte nữa bằng cách khai báo *sbên trong đối số khai báo của vòng lặp for:f(c){for(char*s=" __\n /11\\\n/1111\\\n|1111|\n\\____/\n";*s;putchar(*s^49?*s:c),s++);}
Albert Renshaw

Bạn cũng có thể cạo thêm 1 byte bằng cách kiểm tra ký tự ASCII có giá trị số là một chữ số. 149trong ASCII nhưng đó là 2 byte, sử dụng cái gì đó có giá trị từ 0-9, ví dụ ký tự lập bảng `` là giá trị ASCII 9.
Albert Renshaw

Đề xuất *s;f(c){for(sthay vìf(c){for(int*
trần

1

SpecBAS - 70 byte

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

?là tốc ký cho PRINTlệnh và dấu nháy đơn di chuyển con trỏ đến dòng tiếp theo.



1

Python, 59 byte

lambda n:r'''  __
 /a\
/aa\
|aa|
\____/'''.replace('a',n*2)

1

Lua, 66 byte

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

((([[#NailsIt]])))




1

[R], 65 byte

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

Khá lạ thường, vui lòng tìm một đoạn ngắn hơn trong R ... Đó là gsub cơ bản của bạn


1

C ++ 208 byte

Đáp lại các bình luận: Đây là một bài đăng lại hoàn chỉnh.

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

1

C # , 56 byte


Chơi gôn

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

Bị đánh cắp

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

Ungolfed có thể đọc được

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

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

Mã đầy đủ

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

Phát hành

  • v1.0 - 56 bytes- Giải pháp ban đầu.

Ghi chú

Các kết quả được in trong liên kết được cung cấp sẽ trông không giống như giả vờ, do phông chữ được sử dụng không phải là không gian đơn.


1

C (gcc) , 87 byte

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 không có stdio.h gây ra cảnh báo nhưng không có lỗi, cho phép biên dịch thành công.

Giải trình

Câu lệnh Printf nhồi nhét mọi thứ vào một dòng, định dạng ký tự trang trí bằng% c.

Dùng thử trực tuyến


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.