import time
import random
time.sleep(0.1) # Wait for USB to become ready
print("Hello, Pi Pico!")
from Displays import *
from Button import *
from LightStrip import *
class Prizes:
def __init__(self, numslots=8):
self.prizes = [None] * numslots
self.makePrizes()
def makePrizes(self):
for x in range(0, len(self.prizes)):
p = random.random()
if p < 0.2:
self.prizes[x] = -1
elif p < 0.5:
self.prizes[x] = 0
else:
self.prizes[x] = random.randint(1,11)*10
def getPrize(self, slot):
if slot < 0 or slot >= len(self.prizes):
return 0
else:
return self.prizes[slot]
class Wheel:
def __init__(self, numslots):
# stopped = 0, running = 1, prize = 2, repeat = 3
self.status = 0
self.curpos = -1
self.statusChanged = True
self.numslots = numslots
self.prizes = Prizes(numslots)
self.display = LCDDisplay(sda=0, scl=1)
self.light = LightStrip(pin=2, numleds=numslots)
self.button = Button(pin=3, name='Start', handler=self)
def spin(self):
while self.status == 1:
self.light.off()
self.curpos += 1
if self.curpos >= self.numslots:
self.curpos = 0
self.light.setPixel(self.curpos, GREEN)
def runGame(self):
while True:
if self.statusChanged:
self.statusChanged = False
if self.status == 0:
self.display.reset()
self.display.showText('Push button to')
self.display.showText('Spin the wheel', 1)
elif self.status == 1:
self.spin()
elif self.status == 2:
self.display.reset()
self.display.showText('You win!')
self.display.showText(f'${self.prizes.getPrize(self.curpos)}',1)
elif self.status == 3:
self.display.reset()
self.display.showText('One more chance!')
self.display.showText('Spin the wheel', 1)
def buttonPressed(self, name):
if self.status == 0:
self.status = 1
elif self.status == 1:
if self.prizes.getPrize(self.curpos) < 0:
self.status = 3
else:
self.status = 2
elif self.status == 2:
self.status = 0
elif self.status == 3:
self.status = 1
self.statusChanged = True
def buttonReleased(self, name):
pass
if __name__ == '__main__':
w = Wheel(8)
w.runGame()