from machine import Pin
import neopixel
from time import time_ns
import random

# Nastavitev NeoPixel LED traku
leds = neopixel.NeoPixel(Pin(4), 16)

# Nastavitev gumba z uporabo notranjega pull-up upora
but = Pin(25, Pin.IN, Pin.PULL_UP)

# Začetna nastavitev LED-ov (v tem primeru zelena barva)
leds.fill([0,255,0])
leds.write()

# Funkcija za pridobivanje trenutnega časa v milisekundah
def time_ms():
    return time_ns() // 1000000

# Začetek merjenja časa in nastavitev naključne zamude
zacetek = time_ms()
rndDelay = random.randrange(3000,4000)

# Glavna zanka igre
while True:
    # Preverjanje stanja gumba
    val = not bool(but.value())

    # Vklop LED-ov po naključni zamudi
    if time_ms() - zacetek > rndDelay:
        leds.fill([255,0,0])  # Rdeča barva
        leds.write()

    # Obravnavanje pritiska na gumb
    if val:
        # Preverjanje, če je bil gumb pritisnjen prezgodaj
        if time_ms() - zacetek - rndDelay < 0:
            print("Ne goljufaj!")
            break
        else:
            # Izpis časa reakcije
            print("Tvoj refleks je: ", time_ms() - zacetek - rndDelay, " ms")
            break