ทำให้ฉันเป็นไข่อีสเตอร์!


29

ไม่ไม่ใช่^^vv<><>BAไข่อีสเตอร์ไข่อีสเตอร์ที่แท้จริงที่เราวาด

นี่คือไข่ที่วาดขึ้นอย่างน่ากลัว

  __
 /  \
/    \
|    |
\____/

ในอีสเตอร์เราวาดลวดลายด้วยลวดลาย เช่นนี้

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

ความท้าทาย

ให้ตัวละคร (พิมพ์ ASCII) เพื่อทาสีไข่พิมพ์ไข่ทาสี

ตัวอย่าง:

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

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

รายละเอียด

  • อนุญาตการขึ้นบรรทัดใหม่ / การเว้นวรรค

8
ทำไมต้องลงคะแนน หากคุณไม่ชอบคำถามนี้ให้ลงคะแนนโปรดทิ้งเหตุผลไว้
Matthew Roh

2
เหตุผลหนึ่งที่อาจเป็นไปได้ก็คือพวกเขาไม่คิดว่างานนี้ชัดเจนเพียงพอหรือชัดเจนเพียงพอ ฉันจะบอกว่ามันชัดเจนเพียงพอและก็ไม่ได้เป็นเรื่องเล็กน้อยอย่างแท้จริง ที่กล่าวว่าฉันไม่ได้ตื่นเต้นโดยเฉพาะอย่างยิ่งเช่นกัน
John Dvorak

17
ความท้าทายจะเป็นเรื่องเล็กน้อยในภาษาส่วนใหญ่ ไข่สั้นเกินไปที่จะอนุญาตให้มีความคิดริเริ่มมากในการเล่นกอล์ฟ ในความคิดของฉันมันเป็นความท้าทายที่ไม่น่าทึ่ง (ที่ไม่ได้ถูก sandboxed เพราะคุณดูเหมือนจะคว่ำบาตร sandbox สำหรับฉันไม่รู้เหตุผลอะไร) ดังนั้นฉัน downvote
Dada

25
โหวตขึ้นเพราะความท้าทายง่ายๆเช่นนี้เหมาะสำหรับผู้เริ่มต้นอย่างฉันเพื่อความสะดวกในการเล่นกอล์ฟ
ปุย

7
เกย์! คุณเป็นไข่อีสเตอร์ (ขออภัยไม่สามารถต้านทานได้)
George Cummins

คำตอบ:


16

Brain-Flak , 270 268 266 + 1 = 267 ไบต์

+1 จาก-cธง

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

ลองออนไลน์!

ฉันจะเขียนคำอธิบาย แต่ฉันงีบก่อนแล้วลืมว่าการคิดทั้งหมดนี้ใช้ได้อย่างไร การเดาของคุณดีเท่ากับของฉัน


14
นี่คือคำอธิบายที่ดีที่สุดที่ฉันเคยอ่านที่นี่ +1
David Conrad

12

Python 2, 62 ไบต์

ซูเปอร์ตรงไปข้างหน้า ลองมันออนไลน์
-1 ไบต์ขอบคุณ @ mbomb007

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


@ mbomb007 เป็นคนที่ดีขอบคุณ
Dead Possum

2
คุณสามารถบันทึกสองไบต์ได้โดยใช้ฟังก์ชั่นแลมบ์ดาเช่นนี้
Keerthana Prabhakaran

@KeerthanaPrabhakaran ฉันไม่แน่ใจว่า lambdas นั้นใช้ได้สำหรับการท้าทายแบบ ascii
Dead Possum

1
ปัญหาในการใช้แลมบ์ดาในความท้าทาย ascii คืออะไร? พวกเขาเกี่ยวข้องกันยังไงกัน!? : o
Keerthana Prabhakaran

10

ถ่าน , 30 26 16 ไบต์

บันทึกสองไบต์ด้วย @Neil โดยการกรอกหลังจากสร้างรูปร่าง

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

ลองออนไลน์!

คำอธิบาย

โปรแกรมทำงานโดยเริ่มจากการสร้างครึ่งขวาของไข่ก่อนแล้วจึงสะท้อนกลับเพื่อสร้างครึ่งซ้าย

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

←_↘อาจจะเป็นแค่↓_แต่ในความเป็นจริงคุณสามารถกรอกหลังจากที่คุณสะท้อนให้เห็นถึง 16 __↗¹←↑¹↖²↓_‖M←¤Sไบต์:
Neil

@ Neil ขอบคุณที่แนะนำฉันไป¤
Kritixi Lithos

9

เยลลี่ , 24  22 ไบต์

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

ลองออนไลน์!

อย่างไร?

Ḥ;“ ¶/\|_”“Ṁ¢Ṛ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
ฉันเสนอคำอธิบายของคุณ สำหรับคำอธิบายที่ยาวที่สุดของไบต์เดียว
Magic Octopus Urn

ดูเหมือนจะเป็นอะตอมที่ค่อนข้างมีประโยชน์ฉันคิดว่าฉันจะให้เวลากับไฟแก็ซ!
Jonathan Allan

2
ฉันเห็นว่าเดนนิสใช้มันบ่อยครั้งนี่เป็นครั้งแรกที่ฉันรู้สึกว่าฉันเข้าใจจริงๆ เวลาไม่เสียเปล่า! คุณให้ฉันเรียนรู้ 1 หน่วย
Magic Octopus Urn

1
มันเป็นหนึ่งในลูกของฉัน :)
Jonathan Allan

6

ไม่เกิน 43 ตัว

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

วิ่งตัวอย่าง:

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

นั่นคือสิ่งที่ฉันเขียนเพียงไม่กี่วินาทีเร็วขึ้น
Riley

6

JavaScript (ES6), 53 49 47 ไบต์

ฉันแน่ใจว่าฉันสามารถบีบออกจากนี้ได้อีกเล็กน้อย - การต้องหลบหนีสิ่ง\ที่น่ารำคาญคือตัวฉัน

f=

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

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

  • บันทึก 4 ไบต์โดยการย้าย s=c+c{}การกำหนดตัวแปรภายในชุดแรกของ
  • บันทึก 2 ไบต์โดยใช้c+=cแทนs=c+c& s=s+sด้วยความขอบคุณในส่วนของNeilที่เห็นการปรับปรุงนี้ในเวลาเดียวกับที่ฉันทำ

ระบายสีด้วยตัวคุณเอง!


มันจะดีขึ้นเล็กน้อยถ้าคุณใส่ข้อมูลเหล่านั้นใน<pre><code>s ทำได้ดีมาก
Matthew Roh

ขอบคุณ @SIGSEGV Consoles preรักษาพื้นที่สีขาวและตามค่าเริ่มต้นอย่างน้อยให้ใช้ตัวอักษรพิมพ์ดีดจึงไม่จำเป็นต้องส่งออกไปยัง
ขนปุย

1
ทำไมไม่c+=c?
Neil

ขอบคุณ @Neil ฉันแค่แก้ไขมันด้วยตัวเอง แต่ฉันจะอัปเดตอีกครั้งเพื่อให้พยักหน้าเช่นกัน
ปุย

@Arnauld คุณไม่จำเป็นต้องนับf=\nส่วนของจำนวนไบต์ นั่นเป็นเพียงเพื่อให้ข้อมูลโค้ดทำงาน
AdmBorkBork

5

อลิซ , 53 52 ไบต์ที่ไม่ใช่การแข่งขัน

ขอขอบคุณลีโอที่ช่วยประหยัด 1 ไบต์ทางอ้อม

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

ลองออนไลน์!

น่าเสียดายที่ฉันต้องแก้ไขข้อบกพร่องด้วย y (การทับศัพท์) เพื่อให้งานนี้ดังนั้นฉันจึงทำเครื่องหมายว่าไม่ใช่การแข่งขัน

คำอธิบาย

แนวคิดพื้นฐานคือการสร้างสตริงของไข่ แต่~เป็นตัวยึดตำแหน่งสำหรับสองสำเนาของอินพุต อย่างไรก็ตามอักขระอื่น ๆ ของอินพุตไม่เป็นมิตรกับสตริงของอลิซโดยเฉพาะเนื่องจากอักขระเหล่านั้นไม่สามารถมีฟีดฟีดได้และทุกอย่าง/\_|จะต้องหลบหนี (เพราะถือว่าเป็นกระจกและผนัง) ดังนั้นฉันสามารถบันทึกไบต์โดยใช้ตัวยึดตำแหน่งสำหรับสิ่งเหล่านี้เช่นกันจากนั้นจึงถอดเสียงพวกเขา ตัวยึดตำแหน่งสำหรับ/\_|เป็น.[^{ซึ่งเป็นเพียงตัวละครที่เหมาะสมก่อนที่พวกเขาเป็นตัวแทน สำหรับการป้อนบรรทัดที่ฉันกำลังใช้}สำหรับการเลื่อนบรรทัดฉันใช้

ตอนนี้โค้ด ... โปรแกรมทั้งหมดสามารถแก้ไขได้ในโหมด Ordinal เนื่องจากเราต้องการเพียงการประมวลผลสตริงและไม่มีการประมวลผลจำนวนเต็ม นอกจากนี้เราไม่ต้องการโฟลว์ควบคุมแบบมีเงื่อนไขใด ๆ โปรแกรมทั้งหมดสามารถแสดงเป็นเส้นตรง โครงสร้างทั่วไปของโปรแกรมคือ:

/...//
@....

ในโปรแกรมดังกล่าว IP จะกระดอนขึ้นและลงใน...ส่วนแรกดำเนินการเพียงครึ่งหนึ่งของอักขระ จากนั้นทั้งสอง/ในตอนท้ายจะย้าย IP ไปทางขวาหนึ่งเซลล์เพื่อให้ทางด้านหลังดำเนินการอีกครึ่งหนึ่ง (กระดอนขึ้นและลงอีกครั้ง) จนกระทั่งในที่สุด@โปรแกรมจะยุติการทำงาน ดังนั้นหากเราเปิดเผยโครงสร้างซิกแซกที่ตลกตรงกลางโปรแกรมที่เรากำลังดำเนินการจะมีลักษณะดังนี้:

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

ลองทำสิ่งนี้:

"  ^^} .~[}.~~[}{~~{}[^^^^."
      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 มันอยู่ที่นี่ !! ภาษานี้ดูดี
Conor O'Brien

@ ConorO'Brien ขอบคุณ ฉันได้ฉาบบางความท้าทายเก่ากว่าด้วยในกรณีที่คุณต้องการดูตัวอย่างเพิ่มเติม :)
Martin Ender

4

PowerShell , 50 49 48 ไบต์

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

ลองออนไลน์!

การแทนที่สตริงที่ตรงไปตรงมาเป็นสตริงตัวอักษร ไม่ค่อยมีพื้นที่สำหรับเล่นกอล์ฟ

-1 ไบต์ต้องขอบคุณ HyperNeutrino; -1 ไบต์ขอบคุณ wubs


4

แครอท 34 ไบต์ไม่ใช่การแข่งขัน

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

ไม่ใช่การแข่งขันเพราะฉันเพิ่งแก้ไขข้อผิดพลาดกับล่ามในช่องว่างชั้นนำที่ไม่แสดง

ลองออนไลน์ ที่นี่ที่นี่

อันดับแรกเราอยู่ในโหมดคาเร็ตซึ่งทุกตัวละครจะถูกผลักไปที่ "สแต็ค" และในที่สุด "กอง" ได้รับการพิมพ์เป็นเอาท์พุท

ในโหมดคา#เร็ตให้กดอินพุตดังนั้นอินสแตนซ์ของ#จะถูกแทนที่ด้วยอินพุต (FYI #เป็นโปรแกรมแมวไบต์เดียว)


4

SOGL V0.12 , 21 18 16 ไบต์

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

ลองที่นี่!

โปรแกรมทั้งหมดถูกบีบอัดดังต่อไปนี้:

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

ที่ไหน ŗได้รับการแทนที่ด้วยการป้อนข้อมูล

13 ไบต์ก็ใช้งานได้เช่นกัน แต่มันไม่จำเป็นกับบางอินพุต


คุณต้องทาสีไข่ (กล่าวคือเติมตัวละครในไข่ลงไป)
Matthew Roh

@SIGSEGV - มีการอธิบายว่าสามารถทำได้โดยการแทนที่ช่องว่างด้วยอินพุตและแทนที่เครื่องหมายขีดคั่นด้วยช่องว่างด้วยรหัส@,ŗ -@ŗ
Jonathan Allan

SOGOL จะอยู่ที่ TIO เร็ว ๆ นี้ไหม?
Jonathan Allan

@JanathanAllan หากใครสามารถไปถึงที่นั่นได้แล้วใช่
dzaima

พูดคุยกับเดนนิสในห้องพูดคุย tryitonline สุทธิ
Jonathan Allan

3

05AB1E , 34 33 32 ไบต์

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

ลองออนไลน์!

คำอธิบาย

„__                               # 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"_ |/\"¹«‡,สำหรับ 32 แตกต่างกันอย่างสิ้นเชิงว่า สิ่งนี้ทำให้ฉันออกไปและทำให้ฉันคิดว่าฉันสามารถใช้ palindromize ... ประณามข้อเท็จจริงที่เป็น())(และ/\\/palindromes
Magic Octopus Urn

1
@carusocomputing: คุณควรโพสต์แยกต่างหาก มันแตกต่างกันมากพอที่จะทำให้มันน่าสนใจ :)
Emigna

3

Python 3.6 , 53 ไบต์

lambda x:fr'''  __
 /{2*x}\
/{4*x}\
|{4*x}|
\____/'''
  • ฟังก์ชั่นที่ไม่มีชื่อการใช้ตัวละคร xและส่งคืนสตริง
  • ใช้สตริง F ของ Python 3.6 เป็นทางเลือกเพิ่มเติมสำหรับเวอร์ชั่นก่อนหน้า.format()-{}ชิ้นส่วนปิดล้อมของ F-สตริงจะรหัสที่จะประเมิน
  • สตริงนี้ยังเป็น r-string และสามเท่าที่บันทึกไว้หนึ่งไบต์เหนือ:

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

ฉันไม่เห็นล่ามออนไลน์สำหรับ Python 3.6
ลองที่repl.it (พูดว่า 3.5 แต่มันคือ 3.6)



3

Brainfuck - 257 ไบต์ 181 ไบต์

Golfed: รุ่นสดคลิกที่นี่

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

ฉันไม่ใช่นักกอล์ฟมืออาชีพ นี่คือความพยายามของฉันเท่าที่ฉันจำได้: D

เอาท์พุท:

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

Ungolfed (+ ความคิดเห็น):

; 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 ไบต์ (ขอบคุณ Emigna / Adnan)

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

ลองออนไลน์!

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

รุ่น 29 ไบต์ (ต้องมีการซ้ำอย่างชาญฉลาดโดยไม่ต้องมีการเข้ารหัสเนื่องจากขึ้นบรรทัดใหม่ด้วย):

05AB1E , 29 ไบต์ (Emigna)

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

ลองออนไลน์ 2!


ส่วนขยายขนาด 26 ไบต์ของคำแนะนำของ Emigna โดยใช้ S เพื่อแยก chars ออกเป็น array จากนั้น a [b] เพื่อ interpolate แต่ละตัวเลขด้วยตำแหน่งที่สอดคล้องกันใน array ก่อนหน้า นี่คือการทับศัพท์องค์ประกอบที่ชาญฉลาด (สมาร์ท)

05AB1E , 26 ไบต์ (Adnan)

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

ลองออนไลน์ 3!


1
นี่คือ 3 ไบต์ที่สั้นกว่า ขึ้นคล้ายกับคำตอบของคุณกว่าฉัน :)
Emigna

1
@Emigna การทับศัพท์โดยตรงโดยใช้การขึ้นบรรทัดใหม่เป็นแนวคิดที่แปลกใหม่ฉันชอบมัน; สิ่งนี้สามารถลด 5 ไบต์จากโซลูชันที่มีอยู่ทั้งหมดของฉันได้โดยสุจริต
Magic Octopus Urn


1
@adnan - sneaky sneaky...
Magic Octopus Urn

I feel like almost all my answers need to credit Admigna, wouldn't really know the language without both of your constant examples.
Magic Octopus Urn

2

PHP, 51 bytes

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

PHP, 58 Bytes without physical linebreaks

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

run this with -R option

61 Bytes

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

Store the value doubled; remove unnecessary space; use literal newline character: pastebin.com/EghdAYMf
manatwork

@manatwork Thank you i have not really thinking about double the input
Jörg Hülsermann

save 7 bytes with physical linebreaks and not escaping the backslashes (the last one needs no escaping anyway). Oh and btw: -R is not a parameter, it´s an option.
Titus

@Titus i hate physical linebreaks Done
Jörg Hülsermann

@Titus, right, though man php calls them parameter: “It is also possible to process the standard input line by line using either the parameter -R or -F.”
manatwork

2

BF, 142 140 bytes

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

This is split across two lines for clarity; the newline is not counted.

It's fairly easy to write this sort of thing in BF, but it's non-trivial how to optimize the order of the cells to minimize movement. I wrote a brute-forcer script to try all the combinations and find the shortest, and I golfed it a bit to account for a golfing opportunity I hadn't included in the brute-forcer.


@JoKing I suggest you post that as a separate answer, because it seems very different from mine.
Esolanging Fruit


2

C (gcc), 95 88 85 bytes

Thanks to Albert for -7 bytes

Thanks also to ceilingcat -3 bytes

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

Try it online!


Don't declare *q just nest it right into your for-loop to save 5 bytes. char*s;f(c){for(s=" __\n /11\\\n/1111\\\n|1111|\n\\____/\n";*s;putchar(*s^49?*s:c),s++);}
Albert Renshaw

You can also save 2 more bytes ontop of that by declaring *s inside the for-loop's declaration argument: f(c){for(char*s=" __\n /11\\\n/1111\\\n|1111|\n\\____/\n";*s;putchar(*s^49?*s:c),s++);}
Albert Renshaw

You can shave 1 more byte too by checking for an ASCII character that has a numeric value of one digit. 1 is 49 in ASCII but that's 2 bytes, use something with a value from 0-9, for example the tabulation character ` ` is ASCII value 9.
Albert Renshaw

Suggest *s;f(c){for(s instead of f(c){for(int*
ceilingcat

1

SpecBAS - 70 bytes

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

? is shorthand for PRINT command, and apostrophe moves cursor to next line.








1

C++ 208 bytes

In response to comments: This is a complete re-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;}

1

C#, 56 bytes


Golfed

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

Ungolfed

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

Ungolfed readable

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

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

Full code

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

Releases

  • v1.0 - 56 bytes - Initial solution.

Notes

The printed results within the link provided will not look like pretended, due to the font used not being monospace.


1

C(gcc), 87 bytes

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 without stdio.h causes warnings but no errors, allowing successful compilation.

Explanation

Printf statement that crams everything into one line, formatting the decoration character with %c.

Try it online


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.