diff --git a/de Buffon.py b/de Buffon.py index 60897e9..639db39 100644 --- a/de Buffon.py +++ b/de Buffon.py @@ -1,4 +1,7 @@ -import turtle,random,math +import math, random +import turtle + +#Parametri X = 100 Y = 100 @@ -9,31 +12,39 @@ N = 213 assi = () def impostazioni(): + """Impostazioni per inizializzare turtle""" turtle.title("Ago di Buffon") turtle.setworldcoordinates(-(X+2), -(Y), X+2, Y) turtle.hideturtle() turtle.speed(0) def vai(x, y): + """Sposta il cursore al punto (x, y) senza tracciare una linea.""" turtle.pu() - turtle.goto(x,y) + turtle.goto(x, y) turtle.pd() def parquet(t): - global X,assi - vai(-X,-Y) - for x in range(-X,X+1,t): + """Disegna le assi del parquet.""" + global X, assi + vai(-X, -Y) + for x in range(-X, X+1, t): assi += x, turtle.lt(90) - turtle.goto(x,Y) - vai(x,-Y) + turtle.goto(x, Y) + vai(x, -Y) turtle.rt(90) - vai(x+t,-Y) + vai(x+t, -Y) def ago(l): - vai(random.uniform(-X,X), random.uniform(-Y,Y)) + """ + Lancia un'ago. + Se incrocia le assi lo colora di rosso e restituisce 1, + altrimenti restituisce 0. + """ + vai(random.uniform(-X, X), random.uniform(-Y, Y)) x1 = turtle.xcor() - turtle.lt(random.uniform(0,360)) + turtle.lt(random.uniform(0, 360)) turtle.fd(l) x2 = turtle.xcor() for x in assi: @@ -42,7 +53,8 @@ def ago(l): turtle.bk(l) turtle.pencolor("black") return 1 - return 0 + else: + return 0 impostazioni() parquet(T) @@ -54,5 +66,6 @@ for i in range(N): except ZeroDivisionError: π = 0 print(π) -print("Scarto:",abs(100-(π/math.pi*100)),"%") + +print("Scarto:", abs(100-(π/math.pi*100)), "%") turtle.mainloop()