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,