ทำให้ฉันเป็นพิซซ่า


17

เพราะเป็นวันเสาร์ (UTC) และฉันหิวฉันจึงอยากพิซซ่า ฉันจะให้คำสั่งซื้อและฉันต้องการพิซซ่าสนใจ ขึ้นอยู่กับความท้าทาย?

The Drive-Thru

ฉันจะสั่งซื้อของฉันทุกที่ที่ไดรฟ์ของคุณถึงไม่ว่าจะเป็น STDIN, พารามิเตอร์ฟังก์ชั่น, อาร์กิวเมนต์บรรทัดคำสั่ง แต่ฉันจะไม่ใส่ลงในตัวแปรสำหรับคุณ (นิพจน์ฟังก์ชัน JS ต้องกำหนดให้กับตัวแปร)

การสั่งซื้อสินค้า

คำสั่งของฉันจะมี 2 ส่วน เป็นครั้งแรกที่จะมีการบวกจำนวนเต็มไม่ใช่ศูนย์จากไป3 6นี่คือขนาดของพิซซ่าของฉัน ตัวอย่างเช่น6พิซซ่าขนาดที่ไม่มีรสชาติจะมีลักษณะดังนี้:

 /=====\
/       \
|       |
|       |
\       /
 \=====/

ขนาด5:

 /====\
/      \
|      |
\      /
 \====/

ขนาด4:

 /===\
|     |
|     |
 \===/

ขนาด 3

 /==\
|    |
 \==/

ท็อปปิ้ง

ท็อปปิ้งของฉันจะเป็นตัวอักษร UPPERCASE นี่คือค่าที่เป็นไปได้:

P - Pepperoni
S - ไส้กรอก
N - piNeapple
J - Jalapenos
B - กล้วยพริกไทย
C - baCon

คุณต้องทำพิซซ่าให้พอดี ถ้าฉันสั่งขนาด 4 และPSPCJนี่คือผลลัพธ์ที่ถูกต้อง:

 /===\
|PSPCJ|
|     |
 \===/

ดังนั้นนี่คือ:

 /===\
|P P J|
| S C |
 \===/

และนี่:

 /===\
|     |
|PSPCJ|
 \===/

ฉันไม่ได้จู้จี้จุกจิกเกี่ยวกับรสชาติของพิซซ่าอยู่ที่ไหนตราบใดที่พวกเขาไม่ได้อยู่บนเปลือกโลกหรือบนยอดของกันและกัน

หน้าต่างรับส่ง

ฉันจะไปที่หลายแห่งเพื่อรับพิซซ่าของฉันรวมถึง STDOUT, ไฟล์, ค่าส่งคืนของฟังก์ชั่น แต่ไม่ใช่ตัวแปร

สิ่งพิเศษ

  • ช่องโหว่มาตรฐานต้องห้าม
  • นี่คือการติดแท็กดังนั้นคำตอบที่สั้นที่สุดในไบต์ชนะ!
  • ไม่ต้องกังวลเกี่ยวกับอินพุตที่ไม่ถูกต้อง (รสชาติ> พื้นที่พิซซ่า ฯลฯ )
  • ดูคำตอบของฉัน (JS ES6) ด้านล่างสำหรับตัวอย่าง (ฉันหวังว่าคุณจะทำได้ดีกว่า)

3
อืมคุณสามารถเลือกพิซซ่าของคุณใน Drive-thru ได้หรือไม่?
Matthew Roh

1
คุณจู้จี้จุกจิกกับฉันที่เติมมุมขวาและมุมขวาล่างของกล่องพิซซ่าด้วยช่องว่างหรือไม่? ;)
DLosc

1
@DLosc no ช่องว่างใด ๆ ต่อท้ายที่ส่วนท้ายของบรรทัดใด ๆ (รวมถึงการขึ้นบรรทัดใหม่ที่ส่วนท้ายของเอาต์พุต) เป็นทางเลือก แต่ไม่จำเป็น
programmer5000

1
สามารถพิซซ่าที่มีมากกว่าหนึ่งสำหรับหนึ่งในรสชาติ̶ดังนั้นถ้าคุณชอบสับปะรด: ̶̶ ̶5̶,̶ ̶N̶N̶N̶̶นี้ยังมีการป้อนข้อมูลที่ถูกต้อง̶ (หรือควรจะเป็น̶ ̶5̶,̶ ̶N̶̶แทน) ̶̶นอกจากนี้ที่มีเห็ด .. ? :( แก้ไข: ไม่เป็นไรเกี่ยวกับคำถามแรกที่ผมเห็นกรณีการทดสอบของคุณได้ 2x P.
เควิน Cruijssen

ฉันสามารถโพสต์orderup link? xD
FantaC

คำตอบ:


1

Pip , 87 81 75 ไบต์

รหัส 74 ไบต์ +1 สำหรับการ-lตั้งค่าสถานะ

e:'/.'=Xa-1.'\Y['/'\]Xa//5J'|X2-a%2^xPs.ePy.(b.sXa*a-a-2-#b<>a+1).RVys.RVe

รับอินพุตเป็นอาร์กิวเมนต์บรรทัดรับคำสั่ง ลองออนไลน์!

เข้าใกล้

e/=====\เป็นแถวบนสุดเช่น หากคุณย้อนกลับเป็นแถวด้านล่าง

yเป็นเส้นขอบด้านซ้ายเช่น["/" "|" "|" "\"]. หากคุณย้อนกลับไปมันก็เป็นขอบด้านขวาด้วย

จากนั้นเราจะสร้างตรงกลางโดยการเอาbท็อปปิงเติมด้วยช่องว่างให้ยาว(a+1)*(a-2)( aขนาดไหน) และจัดกลุ่มลงในรายการของแถว

ในที่สุดเราพิมพ์แถวบนสุดด้วยพื้นที่ชั้นนำ ต่อตรงกลางระหว่างyด้านซ้ายและRVyด้านขวาแล้วพิมพ์ที่; และพิมพ์แถวด้านล่างด้วยช่องว่างนำหน้า


มันใช้กับชีส (ไม่มีท็อปปิ้ง) หรือไม่?
programmer5000

@ programmer5000 ใช่ - ในกรณีนี้ cmdline arg ที่สองควรเป็นสตริงว่าง (ถ้าคุณเรียกใช้จากบรรทัดคำสั่งจริงคุณต้องอ้างอิง)
DLosc

5

Python 2 , 202,198,190,177,162,157, 146 bytes

n,t=input()
y=n+1
s=' '
l=' /'+'='*(n-1)+'\\ '+('','\n/'+s*y+'\\')[n>4]+'\n|'
print l+t[:y].center(y,s)+('','|\n|'+t[y:].center(y,s))[y%2]+l[::-1]

ลองออนไลน์!


Hey, คุณสามารถกำหนด'\\', '|' และ'/ตัวแปรการกอล์ฟออกไม่กี่ไบต์หรือไม่? นั่นเป็นวิธีที่ฉันโกนคำตอบ JS ของฉันออกเยอะมาก
programmer5000

ฉันแค่ทำอย่างนั้น !!!!
กีรนาปราการะรัน

1
คุณสามารถแทนที่อันแรก(n-1)ด้วย(--n), n>4s with n>3, (n+1)with (n+2), และ final (n-1)ด้วยnการโกน 4 ไบต์ได้หรือไม่?
programmer5000

2
หลามไม่รองรับ--ผู้ให้บริการ!
กีรนาปราการะรัน



1

JavaScript (ES6), 170 161 ไบต์

(n,t,a=[1,,n%2||2,,1])=>` /=\\
/___\\
|___|
\\___/
 \\=/`[r=`replace`](/.+/g,s=>s.repeat(a.pop()||n>4))[r](/=|_\b/g,`$&`.repeat(n-1))[r](/_/g,_=>t[i++]||` `,i=0)

เริ่มต้นด้วยการทำพิซซ่าผิดรูปที่มีความกว้าง 2 และความสูง 5 แล้วยืดออกในแนวนอนและปรับในแนวตั้งตามความเหมาะสมจากนั้นจะแทนที่การตกแต่งภายในด้วยท็อปปิ้งหรือช่องว่างเมื่อหมด


0

JS (ES6), 257 255 249 248 246 244 ไบต์

m=s=>t=>(r="/",k="\\",p=" ",f="\n",x="|",c=f+x,q="",t=p+t,z=(s>2?p:q)+r+"=".repeat(s-1)+k+(s>4?f+r+p.repeat(++s)+k:q)+c+p.repeat(s)+x+(!s?c+p.repeat(s)+x:q)+p+(s>5?f+k+p.repeat(s)+r:q)+f+p+k+"=".repeat(s-2)+r,i=-1,z.replace(/ /g, x=>t[++i]||p))

เรียกมันว่าเหมือนกันm(4)("PS")สำหรับ 1 เป็ปเปอร์โรนีและ 1 ไส้กรอก อาจจะสามารถเล่นกอล์ฟได้มากขึ้น


1
Jeez ให้เวลากับคนอื่นในการตอบ: P
Pavel

1
@ ГригорийПерельманฉันแค่ต้องการให้ตัวอย่างฉันหวังว่านี่จะไม่ชนะ
programmer5000

0

ถ่าน , 37 ไบต์

Nθ /==×=⸿/›θ⁴⸿|‖BO↓﹪θ²‖BO⊕﹪θ²J¹¦¹⪪S⊕θ

ลองออนไลน์! การเชื่อมโยงคือการใช้รหัสเวอร์ชันอย่างละเอียด คำอธิบาย:

Nθ

ป้อนขนาดของพิซซ่า

 /==

เริ่มพิมพ์ด้านบนของพิซซ่า

×=⸿/›θ⁴

หากพิซซ่าเป็นขนาดที่ใหญ่กว่าให้เพิ่มพิเศษไปที่ด้านบนและด้านข้าง

⸿|

พิมพ์อีกด้านของพิซซ่า

‖BO↓﹪θ²

ทำครึ่งทางซ้ายของพิซซ่าโดยการไตร่ตรองด้วยการเหลื่อมกัน

‖BO⊕﹪θ²

ทำพิซซ่าให้สมบูรณ์โดยการไตร่ตรองด้วยตัวแปรที่ทับซ้อนกัน

J¹¦¹⪪S⊕θ

ใส่รสชาติและแบ่งออกเป็นชิ้น ๆ เพื่อให้พอดีกับพิซซ่า

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