Javascript 126 ไบต์
for(c=r=a='';r<16;c++>22&&(r++,c=0,a+=`
`))C=c%22>1&&r%14>1,q=[1,,C&&r&2,,,,C&&~r&2,,1],a+=q[c+5+r&7]?'/':q[r-c+20&7]?'\\':' '
เนื่องจากตอนนี้อ่านไม่ได้แล้วคำอธิบายพื้นฐาน:
- เราเรียงลำดับพื้นที่บนจากซ้ายไปขวาล่าง
- เราวาดมันเป็นพื้น 6 เส้นทแยงมุมที่ทำซ้ำทุก 8 ตัวอักษร: 2 เส้นทึบและ 4 ที่เป็น "ประ" (ตัวละครสองตัวจากนั้นสองช่องว่าง ... )
C=...
สิ่งคือการ จำกัด การวาดภาพของบางส่วนของสายไปภายในกรอบ
- เพื่อประหยัดอักขระจำนวนมากเราเพิ่มหมายเลขโดยเจตนาเพื่อสร้างนิพจน์สำหรับบรรทัดขึ้นและลงที่คล้ายกันมาก
- จากนั้นใส่นิพจน์ลงในอาร์เรย์ที่กระจัดกระจาย
[1,,C&&...]
ซึ่งเราค้นหา หากมีค่าความจริงเราจะวาดตัวละครที่เหมาะสม
-
for(c=r=a='';r<16;c++>22&&(r++,c=0,a+=`
`)) // basic grid tiling
C=c%22>1&&r%14>1, // are we not near the edges
q=[1, // a solid line that always draws
, // a line that never draws
C&&r&2, // a line that draws if not near the edge, and if on the correct "dash" (r&2)
,,,
C&&~r&2, // if not near the edge, and on the opposite "dash" (~r&2)
,1 // the opposite diagonal line that always draws
],
a+=q[c+5+r&7]?'/' // compute which upward line we're on, check whether to draw it
:q[r-c+20&7]?'\\' // do the same for the downward line
:' ' // otherwise draw a space
บางทีคำอธิบายนี้อาจช่วยไม่ได้ :)
ลองออนไลน์: https://codepen.io/stevebennett/pen/WjgMpY
หวังว่าฉันจะได้ผลลัพธ์ที่ถูกต้อง:
/\ /\ /\
/ \ / \ / \
/ /\ \ / /\ \ / /\ \
/ / \ \/ / \ \/ / \ \
\ \ / /\ \ / /\ \ / /
\ \/ / \ \/ / \ \/ /
\ / /\ \ / /\ \ /
\/ / \ \/ / \ \/
/\ \ / /\ \ / /\
/ \ \/ / \ \/ / \
/ /\ \ / /\ \ / /\ \
/ / \ \/ / \ \/ / \ \
\ \ / /\ \ / /\ \ / /
\ \/ / \ \/ / \ \/ /
\ / \ / \ /
\/ \/ \/
ประวัติศาสตร์
130
for(c=r=a='';r<16;c++>22&&(r++,c=0,a+=`
`))C=c%22>1&&r%14>1,q=[1,,C&&r&2,,,,C&&~r&2,,1],a+=q[(c+5+r)%8]?'/':q[(r-c+20)%8]?'\\':' '
133
for(c=r=a='';r<16;c++>22&&(r++,c=0,a+=`
`))C=c%22>1,q=[1,,C&&r&2&&r<14,,,,C&&~r&2&&r>1,,1],a+=q[(c+5+r)%8]?'/':q[(r-c+20)%8]?'\\':' '
137
for(c=r=a='';r<16;c++==23&&(r++,c=0,a+=`
`))C=c<22&&c>1,q=[1,,C&&r&2&&r<14,,,,C&&~r&2&&r>1,,1],a+=q[(c+5+r)%8]?'/':q[(r-c+20)%8]?'\\':' '
155
for(c=r=a='';r<16;c++==23&&(r++,c=0,a+=`
`))Z=(C=c<22&&c>1)&&~r&2&&r>1,Y=C&&r&2&&r<14,B=(c-r+12)%8,A=(c+5+r)%8,q=[1,,Y,,,,Z,,1],a+=q[A]?'/':q[8-B]?'\\':' '
ประวัติความเป็นมา: 172
for(c=r=a='';r<16;c++==23&&(r++,c=0,a+='\n'))a+=(Z=(C=c<22&&c>1)&&~r&2&&r>3,Y=C&&r&2&&r<12,B=(c-r+16)%8,A=(c+r)%8,A==3||A==5&&Y||A==1&&Z?'/':B==4||B==2&&Y||B==6&&Z?'\\':' ')