from machine import Pin
from utime import sleep_ms, time
from random import randint, seed, random, getrandbits
def start() -> None:
in_put = False
still = True
button = 0
speed_on = 800
speed_off = 500
seed(int(time()))
memory.clear()
while still:
memory.append(randint(0,4))
for value in memory:
leds[value].on()
sleep_ms(speed_on)
leds[value].off()
sleep_ms(speed_off)
for value in memory:
while not in_put:
for i in range(0,5):
if buttons[i].value():
in_put = True
button = i
leds[button].on()
while buttons[i].value():
pass
leds[button].off()
sleep_ms(5)
in_put = False
if button != value:
still = False
break
sleep_ms(750)
speed_on = (speed_on - 50) * (speed_on >= 200) + 200 * (speed_on < 200)
speed_off = (speed_off - 50) * (speed_off >= 200) + 200 * (speed_off < 200)
memory.clear()
def main():
global buttons, leds, memory
button_1 = Pin.board.GP2
button_2 = Pin.board.GP3
button_3 = Pin.board.GP4
button_4 = Pin.board.GP5
button_5 = Pin.board.GP6
led_1 = Pin.board.GP7
led_2 = Pin.board.GP8
led_3 = Pin.board.GP9
led_4 = Pin.board.GP10
led_5 = Pin.board.GP11
buttons = [
button_1,
button_2,
button_3,
button_4,
button_5
]
leds = [
led_1,
led_2,
led_3,
led_4,
led_5
]
for button in buttons:
button.init(Pin.IN,Pin.PULL_DOWN)
for led in leds:
led.init(Pin.OUT)
memory = list()
space = 0
count = 0
while True:
for button in buttons:
if button.value():
for led in leds:
led.off()
sleep_ms(1000)
start()
for _ in range(5):
for led in leds:
led.toggle()
sleep_ms(350)
for led in leds:
led.off()
else:
for i in range(0,5):
if i == space:
leds[i].on()
else:
leds[i].off()
count = (count + 1) % 50
space = (space + 1) * (count == 49) % 5 + space * (count != 49)
sleep_ms(10)
main()