的JavaScript(ES6)231 244
编辑错误修复,一些重新排序和不同的高度管理方式== 1
此外,由于OP允许将其更改为函数,因此没有输入的hint()
无需对通用算法进行任何更改,这可能不是此挑战的最佳选择
F=h=>{for(p=s=[i=z=b=t=''];++p<h;)i=1,z=b=' ',s[p]=t;for(p=--h,k=64;++k<91;)s[p]+=t+String.fromCharCode(k),k-74||(s=s.map((x,q)=>x+(p-q?' ':'avascript'))),p-=i,p<0|p>h?(i=-i,p-=i+i,t=z,b=t+t):t+=b;console.log(s.join('\n'))}
讲解
F=h=>{
// row in s for output must be initialized to ''. In the same step I make other initializations
for(p=s=[i=z=b=t='']; ++p < h;) // initialize for height 1, all increment and spacing can be null
i=1,z=b=' ',s[p]=t; // the for body is entered only if height > 1, initializing spacing and increment to the right values
for(p=--h,k=64;++k<91;)
s[p]+=t+String.fromCharCode(k),
k-74||(s=s.map((x,q)=>x+(p-q?' ':'avascript'))), // if 'J' modify each line of output adding the name or spacing
p-=i,p<0|p>h?(i=-i,p-=i+i,t=z,b=t+t):t+=b; // index bouncing
console.log(s.join('\n'))
}
例子
1个
ABCDEFGHIJavascriptKLMNOPQRSTUVWXYZ
3上升
C G K O S W
B D F H Javascript L N P R T V X Z
A E I M Q U Y
顶部4
D Javascript P V
C E I K O Q U W
B F H L N R T X Z
A G M S Y
7下降
G S
F H R T
E I Q U
D Javascript P V
C K O W
B L N X Z
A M Y