Arvorezinha de Letras
Olá a todos,
Todos os que visitam o blol conhecem de certeza o sucesso da árvorezinha, publicada imensas vezes de inúmeras formas sempre com o mesmo grau de inutilidade.
Quando passava os olhos no blol deparei-me com um post do spico que fazia uma arvorezinha com letras de forma manual. Ora não seria isto engraçado ser feito com o mesmo entusiasmo que a v1.0 da arvorezinha nas mais inúmeras formas cada uma mais inútil que a anterior?
Decidi assim ser o primeiro a fazê-lo em python, pois é simples de entender para todos os que quiserem pegar nisto.
As regras do RFC são simples:
\* Toda a árvorezinha é desenhada com base numa palavra
\* A árvorezinha tem uma dimensão de copa, ou seja é o número de linhas representado pela copa
\* A base da árvorezinha de letras deve ter a palavra repetida o número de vezes o número de letras que contem.
\* A base da árvorezinha deve ter um espaço em após cada letra (opcional)
Assim convido-vos a todos a escrever as vossas versões da árvorezinha de letras.
Aqui está um exemplo em python:
import sys
# Funcao que desenha a copa da arvore
def copaArvorezinha(a,n):
i=0
ic=0
x=''
while (i<=n):
x=x+a[i]
i+=1
ic+=1
print x #imprime as letras concactenadas
if (len(a) == i):
if (ic < n):
i=0
else:
break
def baseArvorezinha(a):
# desenhar a base
for char in a:
s = ' '.join(a)
print s
## MAIN ##
if len(sys.argv) <= 2 or len(sys.argv) >=4:
print '''Uso: python arvorezinha_de_letras.py
<palavra> <tamanho_copa>
Opcoes:
<palavra> : Palavra com que a arvore de letras sera desenhada [string]
<tamanho_copa> : Numero de linhas da copa [int]'''
else:
try:
#dividir letra a letra
letters = [k for k in sys.argv[1]]
# desenhar agora ;)
copaArvorezinha(letters,int(sys.argv[2]))
baseArvorezinha(letters)
except:
print '''Uso: arvorezinha_de_letras.py
<palavra> <tamanho_copa>
Opcoes:
<palavra> : Palavra com que a arvore de letras sera desenhada [string]
<tamanho_copa> : Numero de linhas da copa [int]'''
Download
O resultado é algo do género:
Um abraço,
Sem comentários a “Arvorezinha de Letras”