Japt、46 44 41 40バイト
Uo-U £Y?"\\/"sYv)+" /"pU-Y/2 :"/\\"pU} ·
オンラインでお試しください!
非ゴルフと説明
Uo-U mXYZ{Y?"\\/"sYv)+" /"pU-Y/2 :"/\\"pU} qR
プログラムの中核は、U * 2
アイテムのリストを作成し、それぞれをパターンの1行にマッピングしてから、それらを改行で結合します。
Uo-U // Build an array of all integers in the range [-U, U).
mXYZ{ // Map each item X and index Y in this array with the following function.
...
} qR // Join the resulting array with newlines.
パターン自体については、次のように分割しました。
/\/\/\/\
\/ / / /
/ / / /
\/ / /
/ / /
\/ /
/ /
\/
ここでわかるように、これは3つの単純なパターンに変わります。最初のコードは最も簡単で、次のコードで生成されます:
Y? ... : // If Y, the current index, is 0,
"/\\"pU // return the pattern "/\" repeated U*2 times.
今、左半分。奇数インデックスはにマッピングする必要が\/
あり、さらににマッピングする必要があるため、/
次のコードを使用します。
"\\/"s // Otherwise, slice the pattern "\/" at
Yv) // if Y is even, 1; otherwise, 0.
これにより、右半分の方法が簡単になります。必要なことは /
、数回繰り返すだけです。
" /"p // Repeat the pattern " /"
U-Y/2 // floor(U - (Y/2)) times.
提案を歓迎します!
;
の1つだけを削除できます。