You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
1.1 KiB
Python
72 lines
1.1 KiB
Python
#!/usr/bin/env python
|
|
|
|
import sys
|
|
import numpy as np
|
|
|
|
|
|
base = [['*'],['***'],['*****'],['*******']]
|
|
|
|
|
|
def addStars(s):
|
|
c= s
|
|
c += [['*'+c[-1][0]+'*']]
|
|
return c
|
|
|
|
def addStarPos(s,pos,n):
|
|
s[pos] = ['*'*n+s[pos][0]+'*'*n]
|
|
return s
|
|
|
|
def feuille(taille,k):
|
|
if taille > 1:
|
|
b = feuille(taille-1,k)
|
|
if np.mod(taille,2) == 1:
|
|
k+=taille/2
|
|
if np.mod(taille,2) == 0 and taille != 2:
|
|
k+=taille/2-1
|
|
b += []
|
|
for i in range(taille):
|
|
tmp1 =[b[-taille]]
|
|
b += tmp1
|
|
b=addStarPos(b,-1,k)
|
|
for i in range(3):
|
|
b=addStars(b)
|
|
return b
|
|
return base
|
|
|
|
|
|
def tronc(taille):
|
|
p = []
|
|
for i in range(taille):
|
|
if np.mod(taille,2) == 0:
|
|
x = '|'*(taille+1)
|
|
else:
|
|
x = '|'*(taille)
|
|
p += [x]
|
|
return p
|
|
if __name__ == "__main__":
|
|
|
|
|
|
if len(sys.argv) != 2:
|
|
print "error input"
|
|
exit(1)
|
|
else:
|
|
ordre = int(sys.argv[1])
|
|
if ordre == 0:
|
|
print
|
|
exit(1)
|
|
f= feuille(ordre,0)
|
|
t = tronc(ordre)
|
|
a =0
|
|
k=0
|
|
c = ''
|
|
for i in range(len(f)):
|
|
c =''
|
|
for j in range(len(f[-1][0])/2-len(f[i][0])/2):
|
|
c+= ' '
|
|
print c+ f[i][0]
|
|
for i in range(len(t)):
|
|
c =''
|
|
for j in range(len(f[-1][0])/2-len(t[i][0])/2-ordre/2):
|
|
c+= ' '
|
|
print c+t[i]
|