from time import sleep
from machine import Pin, PWM
from random import randint
Levelgen = []
Levelcomp = []
Highscore = 0
Newscore = 0
buzzer = PWM(Pin(3))
buzzer.freq(500)
green = Pin(4, Pin.OUT)
red = Pin(5, Pin.OUT)
yellow = Pin(6, Pin.OUT)
blue = Pin(7, Pin.OUT)
greenbutton = Pin(16, Pin.IN, Pin.PULL_DOWN)
redbutton = Pin(17, Pin.IN, Pin.PULL_DOWN)
yellowbutton = Pin(18, Pin.IN, Pin.PULL_DOWN)
bluebutton = Pin(19, Pin.IN, Pin.PULL_DOWN)
def greenflash():
green.value(1)
sleep(0.5)
green.value(0)
sleep(0.5)
def redflash():
red.value(1)
sleep(0.5)
red.value(0)
sleep(0.5)
def yellowflash():
yellow.value(1)
sleep(0.5)
yellow.value(0)
sleep(0.5)
def blueflash():
blue.value(1)
sleep(0.5)
blue.value(0)
sleep(0.5)
def allflash():
green.value(1)
red.value(1)
yellow.value(1)
bluebutton(1)
blue.value(1)
sleep(0.5)
green.value(0)
red.value(0)
yellow.value(0)
blue.value(0)
sleep(0.5)
green.value(1)
red.value(1)
yellow.value(1)
blue.value(1)
sleep(0.5)
green.value(0)
red.value(0)
yellow.value(0)
blue.value(0)
def game():
levelcount = 0
fail = False
for count in range (0,51):
random = randint(1,4)
levelcount +=1
Levelgen.append(random)
if levelcount == 50:
break
levelcount = 0
userinput = False
while levelcount <= 50:
if userinput == False:
for seq in range(0,levelcount+1):
if Levelgen[seq] == 1:
sleep(0.1)
greenflash()
if Levelgen[seq] == 2:
sleep(0.1)
redflash()
if Levelgen[seq] == 3:
sleep(0.1)
yellowflash()
if Levelgen[seq] == 4:
sleep(0.1)
blueflash()
userinput = True
if userinput == True:
Levelcomp.clear()
for comp in range(0,levelcount+1):
while True:
if greenbutton() == 1:
greenflash()
Levelcomp.append(1)
break
if redbutton() == 1:
redflash()
Levelcomp.append(2)
break
if yellowbutton() == 1:
yellowflash()
Levelcomp.append(3)
break
if bluebutton() == 1:
blueflash()
Levelcomp.append(4)
break
if Levelcomp[comp] != Levelgen[comp]:
fail = True
break
elif Levelcomp[comp] == Levelgen[comp]:
fail = False
userinput = False
if fail == True:
print("Incorrect player sequence")
allflash()
return levelcount
levelcount += 1
while True:
if redbutton() == 1:
redflash()
print("Game stopped")
break
if greenbutton() == 1:
sleep(0.5)
if Highscore == 0:
Highscore = game()
elif Highscore != 0:
Newscore = game()
if Highscore < Newscore:
Highscore = Newscore
if yellowbutton() == 1:
show = Highscore
while show > 0:
if show >= 10:
sleep(0.5)
allflash()
show -= 10
elif show <= 9 and show >= 1:
sleep(0.5)
greenflash()
show =- 1