#include <LiquidCrystal.h>
#define push 15
#define buzzer 16
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);

uint8_t dino[8]={0x07,0x17,0x16,0x1F,0x0E,0x02,0x03,0x00};        
uint8_t dino2[8]={0x07,0x17,0x16, 0x1F,0x0E,0x08,0x0E,0x00};
uint8_t cact[8] ={0x04,0x15,0x15,0x1F,0x04,0x04,0x04,0x04};
uint8_t cactus2[8] = {0x00,0x00,0x04,0x15,0x15,0x1F,0x04,0x04};
uint8_t ave[8]= {0x04,0x06,0x07,0x1F,0x07,0x06,0x04,0x00};   
uint8_t ave2[8] = {0x00,0x00,0x00,0x1F,0x07,0x06,0x04,0x00};   
uint8_t sol[8] = {0x1C,0x1D,0x18,0x02,0x08,0x00,0x00,0x00};
uint8_t hongo [8]= {0x00,0x04,0x0E,0x1F,0x1F,0x04,0x04,0x00};

void setup() {
  pinMode(push, INPUT_PULLUP);
  pinMode(buzzer, OUTPUT);
  lcd.begin(16,2);
  lcd.createChar(0, dino);
  lcd.createChar(1, dino2);
  lcd.createChar(2, cact);
  lcd.createChar(3, cactus2);
  lcd.createChar(4, ave);
  lcd.createChar(5, ave2);
  lcd.createChar(6, sol);
  lcd.createChar(7, hongo);
  lcd.home();

lcd.print("  Welcome :) "); 
lcd.setCursor(0,1); 
lcd.print("  Loading...");
delay(1000);


}
void loop() {
  lcd.clear();
  lcd.setCursor(3, 0);
  lcd.print("PUSH BUTTON");
  while(digitalRead(push) == 1);
  delay(100);
  lcd.clear();
  int cactus = 17; 
  int aves = 10;
  int puntos = 0; 
  int numero = 0; 
  int hongos = 19; 
while(1){
      if(digitalRead(push) == 0){
      lcd.setCursor(2,1); //limpia estado anterior
      lcd.print(" ");

      lcd.setCursor(2, 0); //imprime dino 
      lcd.write((byte) 0);
       lcd.setCursor(2,0);
      lcd.write((byte)1);

      lcd.setCursor(cactus,1);   //imprimir obstaculo 
      lcd.write((byte)2);
      delay(300);
      lcd.print("     ");
      lcd.setCursor(cactus,1);
      lcd.print(" "); 
      delay(300);

      lcd.setCursor(aves,0);
      lcd.write((byte)4); 
      lcd.print("     ");
      delay(300); 
      lcd.setCursor(aves,0);
      lcd.print(" "); 

      cactus -=1;
      aves -= 1;
      hongos -= 1; 
      if (cactus < 0) {
        cactus = 17;
      }
      if(aves < 0){
        aves = 12;
         
      }
      if (hongos < 0){
        hongos = 23;
      }
      if(cactus == 2){
        puntos += 1;
        lcd.setCursor(13,0);
        lcd.print(puntos);
      }
      if(hongos == 2){
        puntos += 1;
        lcd.setCursor(13,0);
        lcd.print(puntos);
      }
      if(aves == 2){
      lcd.clear();
      lcd.setCursor(3,0);
      lcd.print("GAME OVER");
      lcd.setCursor(3,1);
      lcd.print("Looser");
      tone(buzzer, 700,1000);
      delay(300);
      tone(buzzer,0,0);
      break;
      }
    }
      else{
      lcd.setCursor(2,0);
      lcd.print(" ");
      lcd.setCursor(2, 1);
      lcd.write((byte) 0);
      lcd.setCursor(cactus,1);   //imprimir obstaculo 
      lcd.write((byte)2);
      delay(300);
      lcd.print("     ");
      lcd.setCursor(2,1);
      lcd.write((byte)1);
      lcd.setCursor(cactus,1);
      lcd.print(" "); 
      delay(300);

      lcd.setCursor(aves,0);
      lcd.write((byte)4); 
      delay(300); 
      lcd.print("     "); 
      lcd.setCursor(aves,0);
      lcd.print(" ");

      lcd.setCursor(hongos ,1); 
      lcd.write((byte)7); 
      delay(300);
      lcd.print("     ");
      lcd.setCursor(hongos,1); 
      lcd.print(" "); 

      cactus -=1;
      aves -= 1;
      hongos -= 1;
      if (cactus < 0) {
        cactus = 17;
      }
      if(aves < 0){
        aves = 10; 
      }
      if(hongos < 0){
        hongos = 23; 
      }
      if(aves == 2){
        puntos+= 1;
        lcd.setCursor(13,0);
        lcd.print(puntos);
      
      }
      if(hongos == 2){
        puntos+= 1;
        lcd.setCursor(13,0);
        lcd.print(puntos);
      }
      if(cactus == 2){
      lcd.clear();
      lcd.setCursor(3,0);
      lcd.print("GAME OVER");
      lcd.setCursor(3,1);
      lcd.print("Looser");
      tone(buzzer, 700,1000);
      delay(300);
      tone(buzzer,0,0);
      break;
      }
      if(hongos == 2){
      lcd.clear();
      lcd.setCursor(3,0);
      lcd.print("GAME OVER");
      lcd.setCursor(3,1);
      lcd.print("Looser");
      tone(buzzer, 700,1000);
      delay(300);
      tone(buzzer,0,0);
      break;
      }
    } 
  }    
}
Loading
pi-pico-w