#Bibliotheken laden
import RPi.GPIO as gpio
import time as zeit
import random as wuerfel

#Initialisierung
def init():
    #Nummern der GPIO-Pins
    leds = [26, 19, 13, 6, 5]
    t2 = 16
    #Pause in Sekunden festlegen
    pause = .25
    gpio.setwarnings(False)
    gpio.cleanup()
    #Modus der Pin-Bezeichner einstellen
    gpio.setmode(gpio.BCM)
    #LED-Pins als Ausgang definieren
    for led in leds:
        gpio.setup(led, gpio.OUT)
    
    gpio.setup(t2, gpio.IN)
    return (leds, t2, pause)


def main():
    (ledliste, t2, pause) = init()
    pegelliste = [0,0,0,0,1]
    zustand = 0
    count = 0
    while True:
        if zustand == 0:
            if gpio.input(t2) == 1:
                zustand = 1
                count = 0
                pegelliste[4] = 0
            zeit.sleep(0.1)
        elif zustand ==1:
            augen = wuerfel.randint(1,6)
            if augen == 1:
                pegelliste = [1,0,0,0,0]
            elif augen == 2:
                pegelliste = [0,1,0,0,0]
            elif augen == 3:
                pegelliste = [1,1,0,0,0]
            elif augen == 4:
                pegelliste = [0,1,1,0,0]
            elif augen == 5:
                pegelliste = [1,1,1,0,0]
            else:
                pegelliste = [0,1,1,1,0]
            count = count + 1
            if count == 20:
                zustand = 2
                pegelliste[4] = 1
            for i  in range(len(ledliste)):
                gpio.output(ledliste[i],pegelliste[i])
            zeit.sleep(pause)
        else:
            if gpio.input(t2) == 0:
                zustand = 0
                zeit.sleep(0.1)


main()

"""
Aufgaben:
    1. Verbinde die Basiswiderstaende mit den zugehoerigen Pins. [s. init()}
       (gruen ist Pin 5
    2. Verbinde einen GND-Pin mit der -Leiste.
    3. Schliesse die Batterie an.
    4. Teste das Programm.
    5. Modifiziere die Schaltung so, dass alle Ergebnisse zwischen 1 und 6 angezeigt werden.
    6. Begruende, dass nur 4 Steuerleitungen zum Wuerfeln ausreichen.
"""
