ピザにしてください


17

土曜日(UTC)で空腹なので、ピザを一切れ食べたいです。私はあなたに注文をします、そして私は素敵な熱いピザが欲しいです。挑戦まで?

ドライブスルー

ドライブスルーがどこであっても、STDIN、関数パラメーター、コマンドライン引数など、どこにでも注文しますが、変数に入れません。(JS関数式は変数に割り当てる必要があります。)

オーダー

私の注文には2つの部分があります。最初はから3までのゼロ以外の正の整数6です。これは私のピザのサイズです。たとえば、6トッピングのないサイズのピザは次のようになります。

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

サイズ5

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

サイズ4

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

サイズ 3

 /==\
|    |
 \==/

トッピング

私のトッピングは、大文字の文字列になります。可能な値は次のとおりです。

P-ペパロニ
S-ソーセージ
N-パイネップル
J-ハラペーニョ
B-バナナペッパー
C-baCon

あなたはどこかにピザにそれらを合わせる必要があります。サイズ4およびを注文した場合PSPCJ、これは有効な出力です。

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

これも:

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

この:

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

私はトッピングがピザのどこにあるかについてはあまり好き嫌いがありません。

ピックアップウィンドウ

STDOUT、ファイル、関数の戻り値、変数ではないなど、ピザを手に入れるために多くの場所に行きます。

余分なもの

  • 禁止されている標準的な抜け穴
  • これにはタグが付いているため、バイト単位の最短回答が勝ちです!
  • 無効な入力を心配しないでください(トッピング>ピザスペースなど)
  • 例については、以下の私の回答(JS ES6)を参照してください(より良くできることを願っています)

3
じゃあ、ドライブスルーでピザを拾うこともできますか?
マシュー盧

1
ピザの箱の右上隅と右下隅を空白で埋めるのが好きですか?;)
DLosc

1
@DLoscいいえ、任意の行の末尾の空白(出力の末尾の末尾の改行を含む)はオプションですが、必須ではありません。
プログラマ5000

1
できTHE PIZZAてきた複数の一つザトッピング̶その場合はあなたのようなパイナップル:?̶̶ ̶5̶,̶ ̶N̶N̶N̶̶でもある有効な入力̶(または必要があり、それこと̶ ̶5̶,̶ ̶N̶̶代わりに)̶̶また、キノコがどこにありますか..?? :(編集:最初の質問についてネヴァーマインド、私はあなたのテストケースを参照してくださいが2倍を持っているP
ケビンCruijssen

注文リンクを投稿できますか?xD
FantaC

回答:


1

ピップ87 81 75バイト

コードの74バイト、-lフラグの場合は+1 。

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はい-その場合、2番目のコマンドライン引数は空の文字列である必要があります(実際のコマンドラインから実行する場合は、引用符で囲む必要があります)。
DLosc

5

パイソン2202,198,190,177,162,157、 146のバイト

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]

オンラインでお試しください!


ねぇ、数バイトのゴルフに変数を'\\''|'、そして割り当てることができます'/か?これが、JSの回答を大幅に削減した方法です。
Programmer5000

私はちょうどそれに取り組んでいます!!!!
Keerthana Prabhakaran

1
また、最初に置き換えることができます(n-1)(--n)n>4とのn>3(n+1)(n+2)、最終(n-1)付きn4バイト剃り落とすには?
Programmer5000

2
Pythonは--演算子をサポートしていません!
Keerthana Prabhakaran



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
いや、他の人に答える時間を与えてください:P
パベル

1
@ГригорийПерельман例を挙げたいだけで、これが勝てないことを願っています。
Programmer5000

0

、37バイト

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

オンラインでお試しください!リンクは、コードの詳細バージョンです。説明:

Nθ

ピザのサイズを入力します。

 /==

ピザの上部の印刷を開始します。

×=⸿/›θ⁴

ピザのサイズが大きい場合は、上部と側面に追加してください。

⸿|

ピザの側面をもっと印刷します。

‖BO↓﹪θ²

重複の可能性がある反射によって、ピザの左半分を完成させます。

‖BO⊕﹪θ²

可変オーバーラップを使用した反射によりピザを完成させます。

J¹¦¹⪪S⊕θ

トッピングを入力し、ピザの中に収まるようにそれらを小片に分割します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.