Salve!

Ho un quesito da porre a tutti gli appassionati di programmazione della Community :yahoooooo:

Tempo fa, sviluppai in Python (3.5) la famosissima struttura H Tree.

Immagine

Per far compilare il codice è necessario aver installato Pygame :hide1:

Codice: Seleziona tutto

def htree(numl:int,a:int,b:int,c:int,d:int):
if numl > 0:
if c-a==d-b:
pygame.draw.line(screen, (255,0,0), (a+((c-a)//4),(b+d)//2), (a+((3*(c-a))//4),(b+d)//2),3)
htree(numl-1,a,b,(a+c)//2,d)
htree(numl-1,(a+c)//2,b,c,d)
else:
pygame.draw.line(screen, (255,0,0), ((a+c)//2,b+((d-b)//4)), ((a+c)//2,b+((3*(d-b))//4)),3)
htree(numl-1,a,b,c,(b+d)//2)
htree(numl-1,a,(b+d)//2,c,d)
import pygame
pygame.init()
numl=int(input("Inserisci il numero di iterazioni 'H-Tree' da eseguire: "))
ww=800;hh=800
screen=pygame.display.set_mode((ww,hh))
screen.fill((255,255,255))
htree(numl,0,0,ww,hh)
pygame.display.flip()
while pygame.event.wait().type!=pygame.QUIT:
pass
pygame.quit()
Funziona ovviamente, fa quello che deve fare (la prima H compare per numl=2).
Il codice presenta ragionamenti matematici molto particolari e potreste trovarne dei bug. :thanks:

Quindi vi lancio questa sfida! :bash:

Una vostra versione di H Tree?
Come si potrebbe migliorare?[/size]