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
항목 목록을 만들고 각각을 패턴의 한 행에 매핑 한 다음 줄 바꿈과 결합합니다.
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.
패턴 자체는 다음과 같습니다.
/\/\/\/\
\/ / / /
/ / / /
\/ / /
/ / /
\/ /
/ /
\/
여기에서 볼 수 있듯이 이제는 세 가지 간단한 패턴으로 나뉩니다. 첫 번째 코드는이 코드로 생성 된 가장 쉬운 방법입니다.
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.
제안을 환영합니다!
;
s 중 하나만 제거하면 됩니다.