from machine import Pin, ADC
import lcd
import random
from time import sleep
lcd_rs = Pin(12, Pin.OUT)
lcd_e = Pin(11, Pin.OUT)
lcd_d4 = Pin(10, Pin.OUT)
lcd_d5 = Pin(9, Pin.OUT)
lcd_d6 = Pin(8, Pin.OUT)
lcd_d7 = Pin(7, Pin.OUT)
lcd.init(lcd_rs, lcd_e, lcd_d4, lcd_d5, lcd_d6, lcd_d7)
lcd.load_custom_chars()
button = Pin(16, Pin.IN)
pot = ADC(0)
player_row = 1
player_col = 1
obstacle_row = random.randint(0, 1)
obstacle_col = 15
previous_button = 0
cooldown = 0
while True:
current_button = button.value()
pot_value = pot.read_u16()
cooldown_limit = 1 + (pot_value // 200)
if cooldown > 0:
cooldown -= 1
if current_button == 1 and previous_button == 0 and cooldown == 0:
player_row = 0
cooldown = cooldown_limit
if cooldown == 0:
player_row = 1
previous_button = current_button
lcd.clear()
lcd.setCursor(player_col, player_row)
lcd.print(chr(0))
lcd.setCursor(obstacle_col, obstacle_row)
lcd.print(chr(1))
if obstacle_col == player_col and obstacle_row == player_row:
lcd.clear()
lcd.setCursor(0, 0)
lcd.print("Game over")
lcd.setCursor(0, 1)
lcd.print("Restarting...")
sleep(2)
obstacle_col = 15
obstacle_row = random.randint(0, 1)
player_row = 1
cooldown = 0
obstacle_col -= 1
if obstacle_col < 0:
obstacle_col = 15
obstacle_row = random.randint(0, 1)
sleep(0.1)