#include <LiquidCrystal_I2C.h>
#define push 6
LiquidCrystal_I2C lcd(0x27, 16, 2);
uint8_t dino[8] = {0b00000, 0b00111, 0b00101, 0b00111, 0b01110, 0b01110, 0b11110, 0b01010};
uint8_t dino2[8] = {0b00000, 0b00111, 0b00101, 0b00111, 0b01110, 0b01110, 0b11110, 0b10100};
uint8_t cactu[8] = {B00000,B00100,B00100,B10100,B10110,B11110,B00100,B00100};
uint8_t ave[8] = {B00000,B0100,B11111,B00100,B00000,B00000,B00000,B00000};
void setup() {
// put your setup code here, to run once:
lcd.init();
lcd.backlight();
lcd.createChar(3, dino);
lcd.setCursor(0, 1);
lcd.createChar(2, dino2);
lcd.setCursor(0, 1);
pinMode(push, INPUT_PULLUP);
delay(500);
}
void loop() {
lcd.clear();
lcd.print(" Push button");
while(digitalRead(push) == 1);
delay(100);
lcd.clear();
int CACTUS = 15;
int TERODAC = 23;
int tiempo = 1;
while(1){
if (digitalRead(push) == 0){
lcd.setCursor(2, 1);
lcd.print(" ");
lcd.setCursor(2, 0);
lcd.write((byte) 2);
lcd.setCursor(CACTUS, 1); //cactus
lcd.write(5); //cactus
lcd.createChar(5, cactu); // cactus
lcd.setCursor(TERODAC, 0); //terodac
lcd.write(6); //terodac
lcd.createChar(6, ave); //terodac
delay(100);
lcd.setCursor(2, 0); //dino
lcd.write((byte) 3); //dino
lcd.setCursor(CACTUS, 1); //cactus
lcd.print(" "); //cactus
lcd.setCursor(TERODAC, 0); //tero
lcd.print(" "); //tero
delay(100);
CACTUS -= 1;
if (CACTUS < 0){
CACTUS = 12;
}
TERODAC -= 1;
if (TERODAC < 0){
TERODAC = 12;
}
if(digitalRead(push) == 1 && CACTUS == 2){
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Game Over");
delay(2500);
lcd.clear();
return;
}
if(digitalRead(push) == 0 && TERODAC == 2){
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Game Over");
delay(2500);
lcd.clear();
return;
}
if(CACTUS == 2){
lcd.setCursor(14,0);
lcd.print(tiempo);
tiempo++;
}
}
else{
lcd.setCursor(2, 0);
lcd.print(" ");
lcd.setCursor(2, 1); //dino
lcd.write((byte) 2); //dino
lcd.setCursor(CACTUS, 1); //cactus
lcd.write(5); //cactus
lcd.createChar(5, cactu); //cactus
lcd.setCursor(TERODAC, 0); //terodac
lcd.write(6); //terodac
lcd.createChar(6, ave); //terodac
delay(100);
lcd.setCursor(2, 1); //dino
lcd.write((byte) 3); //dino
lcd.setCursor(CACTUS, 1); //cactus
lcd.print(" "); //cactus
lcd.setCursor(TERODAC, 0); //tero
lcd.print(" "); //tero
delay(100);
CACTUS -= 1;
if (CACTUS < 0){
CACTUS = 12;
}
TERODAC -= 1;
if (TERODAC < 0){
TERODAC = 12;
}
if(digitalRead(push) == 1 && CACTUS == 2){
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Game Over");
delay(2500);
lcd.clear();
return;
}
if(digitalRead(push) == 0 && TERODAC == 2){
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Game Over");
delay(2500);
lcd.clear();
return;
}
if(TERODAC == 2){
lcd.setCursor(14,0);
lcd.print(tiempo);
tiempo++;
}
}
}
delay(1);
}