# Import der Module
import turtle
import time
import datetime

# Setup der einzelnen Turtle instanzen.
turtle.tracer(0)
sekundenzeiger = turtle.Turtle()
minutenzeiger = turtle.Turtle()
stundenzeiger = turtle.Turtle()
uhr = turtle.Turtle()
sekundenzeiger.color("red")
minutenzeiger.color("blue")
stundenzeiger.width(2)


# Definition des Ziffernblattes
def clock_bg():
    uhr.pd()
    uhr.dot(10)
    uhr.pu()
    uhr.lt(90)
    uhr.fd(230)
    uhr.rt(90)
    uhr.pd()
    for i in range(12):
        uhr.rt(90)
        uhr.fd(20)
        uhr.bk(20)
        uhr.lt(90)
        for i in range(60):
            uhr.fd(2)
            uhr.rt(0.5)
    uhr.pu()


# Funktion des Sekundenzeigers
def sekzeiger():
    sekundenzeiger.pu()
    sekundenzeiger.home()
    sekundenzeiger.pd()
    sekunden = datetime.datetime.now().second
    sekundenzeiger.setheading((sekunden * 6) * (-1))
    sekundenzeiger.lt(90)
    sekundenzeiger.bk(40)
    sekundenzeiger.fd(220)


# Funktion des Minutenzeigers
def minzeiger():
    minutenzeiger.pu()
    minutenzeiger.home()
    minutenzeiger.pd()
    minuten = datetime.datetime.now().minute
    minutenzeiger.lt((minuten * 6) * (-1))
    minutenzeiger.lt(90)
    minutenzeiger.bk(30)
    minutenzeiger.fd(215)


# Funktion des Stundenzeigers
def stzeiger():
    stundenzeiger.pu()
    stundenzeiger.home()
    stundenzeiger.pd()
    mins = datetime.datetime.now().minute
    stunden = datetime.datetime.now().hour
    if stunden >= 12:
        stunden -= 12
        stundenzeiger.lt((stunden * 30) * (-1))
        stundenzeiger.rt(mins * 0.5)
        stundenzeiger.lt(90)
        stundenzeiger.bk(15)
        stundenzeiger.fd(135)
    else:
        stundenzeiger.lt((stunden * 30) * (-1))
        stundenzeiger.rt(mins * 0.5)
        stundenzeiger.lt(90)
        stundenzeiger.bk(15)
        stundenzeiger.fd(135)


# Ganze Uhr
def clock():
    sekundenzeiger.clear()
    minutenzeiger.clear()
    stundenzeiger.clear()
    sekundenzeiger.ht()
    minutenzeiger.ht()
    stundenzeiger.ht()
    uhr.ht()
    uhr.home()
    clock_bg()
    sekzeiger()
    minzeiger()
    stzeiger()
    turtle.update()


# Stoppen der Uhr
def stop():
    global run
    run = 0


# Hauptschleife
def settings():
    print("Welcome!")
    global run
    time.sleep(2)
    run = 0
    turtle.onkeypress(stop, "Escape")
    turtle.listen()
    run = 1
    while run == 1:
        clock()
        turtle.title("Clock")
    else:
        print("stopped, click to exit")
        turtle.exitonclick()
        print("process ended")


# Startzeit einblenden
print(time.strftime("%H:%M:%S"))

# Ausführen des Programms
settings()
