r=lambda a,b,d=' ':d.join((a,b,a[::-1])) def f(s,i,n):d=[r(s[:i],'.-'[(n-i)%2]*((n-i)*2-1))];return i==n and[r(s,' '*(2*(i%2)+1),'')]or d+f(s,i+1,n)+d g=lambda n:'\n'.join(f('| '*(n/2),0,n)) print g(10)
10
................... | ----------------- | | ............... | | | ------------- | | | | ........... | | | | | --------- | | | | | | ....... | | | | | | | ----- | | | | | | | | ... | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | - | | | | | | | | | ... | | | | | | | | ----- | | | | | | | ....... | | | | | | --------- | | | | | ........... | | | | ------------- | | | ............... | | ----------------- | ...................