#include <LiquidCrystal.h>

#define Push 13
#define Push2 19
//#define buzzer 26

//int PushStatus = 0;
//int lastPush2Status = 0;
//int Tiempo = 0;

LiquidCrystal lcd(12, 11, 10, 9, 8, 7); // RS, E, D4, D5, D6, D7

uint8_t C0[8]={0x1A,0x18,0x02,0x14,0x00,0x00,0x00,0x00};//Sol        
uint8_t C1[8]={0x07,0x15,0x17,0x16,0x1F,0x1E,0x02,0x03};//Dino1        
uint8_t C2[8]={0x07,0x15,0x17,0x16,0x1F,0x1E,0x08,0x0C};//Dino2        
uint8_t C3[8]={0x00,0x00,0x04,0x04,0x05,0x07,0x04,0x04};//Piedra        
uint8_t C4[8]={0x04,0x04,0x05,0x07,0x14,0x1C,0x04,0x04};//Cactus1        
uint8_t C5[8]={0x00,0x00,0x00,0x00,0x00,0x04,0x0E,0x1F};//Cactus2        
uint8_t C6[8]={0x00,0x06,0x0F,0x09,0x09,0x0F,0x09,0x09};//Montaña1        
uint8_t C7[8]={0x00,0x00,0x0E,0x1F,0x0E,0x00,0x00,0x00};//Nube        

void setup() {
 lcd.begin(16, 2);

 pinMode(Push, INPUT);
 pinMode(Push2, INPUT);
 //pinMode(buzzer, OUTPUT);

 lcd.createChar(0, C0);
 lcd.createChar(1, C1);
 lcd.createChar(2, C2);
 lcd.createChar(3, C3);
 lcd.createChar(4, C4);
 lcd.createChar(5, C5);
 lcd.createChar(6, C6);
 lcd.createChar(7, C7);
 lcd.home();

 pinMode(Push, INPUT_PULLUP);
  lcd.begin(16, 2);

 lcd.print("  ANDY's GAME");
 lcd.setCursor(0, 1);
 lcd.print("     GO!!");
 delay(2000);
 //lcd.clear();

}

void loop(){
  // put your main code here, to run repeatedly:
  lcd.clear();
  lcd.setCursor(2, 0);
  lcd.print("Push Button");
  while(digitalRead(Push) == 1);
  delay(100);
  lcd.clear();
  
  int cactus = 15
  int nube = 17;
  //int points = 0;


  while(1){
     lcd.clear(); //Limpio la pantalla para insertar el sol (C0= Sol)
     lcd.setCursor(0, 0);//Indico la posicion del sol
     lcd.write((byte) 0);

    if(digitalRead(Push2) == 0){
      
      if(nube == 2){//
        lcd.clear();
        lcd.setCursor(2,1);
        lcd.write((byte) 6);
        delay(500);
        lcd.clear();
        lcd.setCursor(3,0);
        lcd.print("GAME OVER");
        delay(2000);
      }//

      lcd.setCursor(2,1);
      lcd.print(" ");
      lcd.setCursor(2,0);
      lcd.write((byte) 1);
      lcd.setCursor(cactus, 1);
      lcd.write((byte) 4);
      delay(150);
      lcd.setCursor(nube, 0);
      lcd.write((byte) 7);
      delay(200);
      lcd.setCursor(2,0);//
      lcd.write((byte) 2);
      lcd.setCursor(cactus, 1);
      lcd.print(" ");
      delay(150);
      lcd.setCursor(nube, 0);
      lcd.write((byte) 7);
      delay(200);

      cactus -= 1;
      nube -= 1;

      if(cactus < 0){
        cactus = 15;
      }
      if(nube < 0){
        nube = 17;
      }
    }else{
      lcd.setCursor(2,0);
      lcd.print(" ");
      lcd.setCursor(2,1);
      lcd.write((byte) 1);
      lcd.setCursor(cactus, 1);
      lcd.write((byte) 4);
      delay(150);
      lcd.setCursor(nube, 0);
      lcd.write((byte) 7);
      delay(200);
      lcd.setCursor(2,1);
      lcd.write((byte) 2);
      lcd.setCursor(cactus, 1);
      lcd.print(" ");
      delay(150);
      lcd.setCursor(nube, 0);
      lcd.write(" ");
      delay(200);

      cactus -= 1;
      nube -= 1;

      if(cactus < 0){
        cactus = 15;
      }
      if(nube < 0){
        nube = 17;
      }
      if(cactus == 2){
        lcd.clear();
        lcd.setCursor(2,1);
        lcd.write((byte) 6);
        delay(500);
        lcd.clear();
        lcd.setCursor(3,0);
        lcd.print("GAME OVER");
        delay(200);
        break;
      }
    }
  }
}