记i为立方体的尺寸,从上往下,每个立方体由如下七部分组成:
第一根水平线:共1行,由 空格$*i$+顶点+横线$*4i$+顶点 组成。
前两根水平线之间的部分:共i行,其中从上往下第j行(j从0开始)由 空格$*(i-j)$+斜线+空格$*4i$+斜线+空格$*(j+1)$+竖线 组成。
第二根水平线:共1行,由 顶点+横线$*4i$+顶点+空格$*i$+竖线 组成。
第二根水平线到右后顶点所在行之间的部分:共i-1行,每行都由 竖线+空格$*4i$+竖线+空格$*i$+竖线 组成。
右后顶点所在行:共1行,由 竖线+空格$*4i$+竖线+空格$*i$+顶点 组成。
右后顶点所在行到最后一根水平线之间的部分:共i行,其中从上往下第j行(j从0开始)由 竖线+空格$*4i$+竖线+空格$*(i-j)$+斜线 组成。
最后一根水平线:共1行,由 顶点+横线$*4i$+顶点 组成。
按此方式实现,并把其中多次出现的 顶点+横线$*4i$+顶点 和 竖线+空格$*4i$+竖线+空格$*i$ 再赋成变量进一步压缩长度。
最终代码只有两行。
代码长度:207字节 vs. 全站第一:143字节。
b,w,s,v=" █╱│"
for i in range(1,8):h,f=w+"─"*4*i+w,v+b*4*i+v+b*i;*map(print,[b*(i+1)+h]+[b*(i-j)+s+b*4*i+s+b*j+v for j in range(i)]+[h+b*i+v]+[f+v]*(i-1)+[f+w]+[f[:-1-j]+s for j in range(i)]+[h,""]),
|