import LCD import time from machine import Pin, ADC import random Buzzer = Pin(13, Pin.OUT) B0 = Pin(15,Pin.IN,Pin.PULL_UP) B1 = Pin(14,Pin.IN,Pin.PULL_UP) a2d0 = ADC(0) a2d1 = ADC(1) k = 319 / 65520 def Paddle(x, y): x = int(x) y = int(y) if(y < 11): y = 11 if(y > 309): y = 309 LCD.Address_Set(x, 0, x, 319) X = bytearray([]) for i in range(0,638): X.append(0) for i in range(2*y-20,2*y+20): X[i] = 0xFF; LCD.StartWrite() LCD.Write16xN(X) LCD.EndWrite() def Beep(): Buzzer.value(1) time.sleep_ms(20) Buzzer.value(0) Navy = LCD.RGB(0,0,5) White = LCD.RGB(250,250,250) Pink = LCD.RGB(250,150,150) Yellow = LCD.RGB(250,250,0) Cyan = LCD.RGB(0,250,250) Magenta = LCD.RGB(250,0,250) Red = LCD.RGB(250,0,0) LCD.Init() LCD.Clear(Navy) Px = 50 Py = 160 Vx = 200 Vy = 100 dt = 0.01 LCD.Text2('Pong',320,5,White,Navy) LCD.Line(202,0,202,319,White) Score = 0 HighScore = 0 while(1): a1 = a2d1.read_u16() y = 320-k*a1 Paddle(3,y) LCD.Pixel2(Px, Py, Navy) Px += Vx*dt Py += Vy*dt if(Px > 200): Vx = -abs(Vx) Beep() if(Py < 0): Vy = abs(Vy) Beep() if(Py > 319): Vy = -abs(Vy) Beep() if(Px < 3): if(abs(y - Py) < 10): Vx = abs(Vx) Vy += y - Py Score += 1 LCD.Number2(Score, 4, 0, 300, 100, White, Navy) Beep() if(Px < 0): Beep() Beep() HighScore = max(Score, HighScore) LCD.Number2(HighScore, 4, 0, 300, 150, White, Navy) Score = 0 LCD.Number2(HighScore, 4, 0, 300, 100, White, Navy) Px = 200 Py = random.randrange(0,319,1) Vx = random.randrange(-200,-50,1) Vy = random.randrange(-200,200,1) LCD.Pixel2(Px, Py, White) time.sleep(dt)