There really is no hope of making this code even half-way decent without spending the time to rewrite them all properly. Don't want to do any of that
92 lines
2.4 KiB
Python
Executable File
92 lines
2.4 KiB
Python
Executable File
import turtle
|
|
import math
|
|
import random
|
|
|
|
turtle.title("Huhn")
|
|
sideay = int(turtle.numinput("Huhn", "Punkt A, cord y", -100))
|
|
sideax = int(turtle.numinput("Huhn", "Punkt A, cord x", 200))
|
|
sideby = int(turtle.numinput("Huhn", "Punkt B, cord y", -100))
|
|
sidebx = int(turtle.numinput("Huhn", "Punkt B, cord x", -200))
|
|
sidecy = int(turtle.numinput("Huhn", "Punkt C, cord y", 200))
|
|
sidecx = int(turtle.numinput("Huhn", "Punkt C, cord x", 0))
|
|
anzahl_durchgaenge = int(
|
|
turtle.numinput("Huhn", "Anzahl Durchgänge", 10, minval=1, maxval=100)
|
|
)
|
|
stiftdicke = int(turtle.numinput("Huhn", "Stiftdicke", 2, minval=1, maxval=50))
|
|
durchgang = 0
|
|
|
|
|
|
turtle.speed(0)
|
|
cage = turtle.Turtle()
|
|
huhn = turtle.Turtle()
|
|
|
|
cage.ht()
|
|
huhn.pu()
|
|
huhn.ht()
|
|
|
|
|
|
def motion(sideay, sideax, sideby, sidebx, sidecy, sidecx, stiftdicke):
|
|
edge = random.randint(1, 3)
|
|
if edge == 1:
|
|
x = sideax
|
|
y = sideay
|
|
else:
|
|
if edge == 2:
|
|
x = sidebx
|
|
y = sideby
|
|
else:
|
|
x = sidecx
|
|
y = sidecy
|
|
|
|
huhn.setheading(huhn.towards(x, y))
|
|
nextpos = (math.sqrt((x - huhn.xcor()) ** 2 + (y - huhn.ycor()) ** 2)) / 2
|
|
huhn.fd(nextpos)
|
|
huhn.pd()
|
|
huhn.dot(stiftdicke)
|
|
huhn.pu()
|
|
|
|
|
|
def motion_pre(sideay, sideax, sideby, sidebx, sidecy, sidecx, stiftdicke):
|
|
edge = random.randint(1, 3)
|
|
if edge == 1:
|
|
x = sideax
|
|
y = sideay
|
|
else:
|
|
if edge == 2:
|
|
x = sidebx
|
|
y = sideby
|
|
else:
|
|
x = sidecx
|
|
y = sidecy
|
|
|
|
huhn.setheading(huhn.towards(x, y))
|
|
nextpos = (math.sqrt((x - huhn.xcor()) ** 2 + (y - huhn.ycor()) ** 2)) / 2
|
|
huhn.fd(nextpos)
|
|
|
|
|
|
def cagedraw(sideax, sideay, sidebx, sideby, sidecx, sidecy):
|
|
cage.pu()
|
|
cage.setpos(sideax, sideay)
|
|
cage.pd()
|
|
cage.setpos(sidebx, sideby)
|
|
cage.setpos(sidecx, sidecy)
|
|
cage.setpos(sideax, sideay)
|
|
|
|
|
|
print("Started drawing Triangle")
|
|
cagedraw(sideax, sideay, sidebx, sideby, sidecx, sidecy)
|
|
|
|
print("Started mapping... Printing Points of Tranche:")
|
|
turtle.tracer(1000)
|
|
print("initialisation")
|
|
for i in range(50):
|
|
motion_pre(sideay, sideax, sideby, sidebx, sidecy, sidecx, stiftdicke)
|
|
|
|
for i in range(anzahl_durchgaenge):
|
|
for i in range(1000):
|
|
motion(sideay, sideax, sideby, sidebx, sidecy, sidecx, stiftdicke)
|
|
durchgang += 1
|
|
print(durchgang, "/", anzahl_durchgaenge)
|
|
print("done, click to exit")
|
|
turtle.exitonclick()
|