from machine import Pin, ADC, PWM #type:ignore
import time
import random
joystickVert = ADC(Pin(26))
joystickHor = ADC(Pin(28))
buzzer= Pin(16,Pin.OUT)
buzzerpwm= PWM(buzzer)
pinesleds= [6, 7, 2, 8]
leds= [Pin(pin, Pin.OUT) for pin in pinesleds]
posicionJoystick=5
posicion=random.randint(0,3)
leds[posicion].on()
def millis():
return int(round(time.time() * 1000))
def map(valor, valor_min_entrada, valor_max_entrada, valor_min_salida, valor_max_salida):
return (int)((valor - valor_min_entrada) * (valor_max_salida - valor_min_salida) / (valor_max_entrada - valor_min_entrada) + valor_min_salida)
juego = True
inicio = 0
final = 0
while True:
inicio= millis()
while juego==True:
final = millis()
valorHorizontal = joystickHor.read_u16()
valorVertical = joystickVert.read_u16()
horizontalmap = map(valorHorizontal, 500, 60000, -1, 1)
verticalmap = map(valorVertical, 500, 60000, -1, 1)
if verticalmap == 0 and horizontalmap == 1 :
posicionJoystick=0
elif verticalmap== 1 and horizontalmap == 0 :
posicionJoystick=1
elif verticalmap == 0 and horizontalmap== -1 :
posicionJoystick=2
elif verticalmap == -1 and horizontalmap== 0:
posicionJoystick=3
elif verticalmap== 0 and horizontalmap== 0:
posicionJoystick= 4
else:
posicionJoystick= 5
if(posicionJoystick!=4):
if(posicionJoystick==posicion):
leds[posicion].off()
time.sleep(.25)
posicion=random.randint(0,3)
leds[posicion].on()
print(posicion)
buzzerpwm.duty_u16(0)
print("gano")
inicio = millis()
print(final-inicio)
time.sleep(.5)
else:
leds[posicion].off()
buzzerpwm.duty_u16(4000)
buzzerpwm.freq(800)
juego = False
print("perdio")
time.sleep(0.5)
if (final-inicio == 2000):
leds[posicion].off()
buzzerpwm.duty_u16(4000)
buzzerpwm.freq(800)
juego = False
print("perdio")
time.sleep(0.5)
buzzerpwm.duty_u16(0)