#include <LiquidCrystal.h>
#define button 2
#define buzzer 0
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
uint8_t cactus[8] = {0x04,0x05,0x15,0x15,0x1F,0x04,0x04,0x04};
uint8_t cactus2[8] = {0x04,0x04,0x14,0x14,0x1C,0x04,0x04,0x04};
uint8_t dino[8] = {0x07,0x17,0x16,0x1F,0x0E,0x0A,0x1B,0x00};
uint8_t asteroide[8] = {0x04,0x09,0x12,0x04,0x09,0x1E,0x1C,0x1C};
uint8_t asteroide2[8] = {0x04,0x09,0x12,0x04,0x09,0x1E,0x1C,0x1C};
void setup() {
pinMode(button, INPUT_PULLUP);
pinMode(buzzer, OUTPUT);
lcd.begin(16, 2);
lcd.createChar(0, dino);
lcd.begin(16, 2);
lcd.createChar(1, cactus);
lcd.begin(16, 2);
lcd.createChar(2, cactus2);
lcd.begin(16, 2);
lcd.createChar(3, asteroide);
lcd.begin(16, 2);
lcd.createChar(4, asteroide2);
while(digitalRead(button)){
lcd.setCursor(0, 0);
lcd.print("Bienvenido! :)");
delay(10);
lcd.setCursor(0, 1);
lcd.print("Presione boton");
delay(10);
}
lcd.clear();
}
bool estado;
void loop() {
// cactus 1
for(int i = 15; i >= 0; i--){
lcd.setCursor(i,1);
lcd.write((byte)1);//cactus1
delay(100);
lcd.clear();
estado = digitalRead(button);
if (estado){
lcd.setCursor(0, 1);
lcd.write((byte)0);
if (i == 1)
lcd.setCursor(1, 0);
tone(buzzer,500);
delay(10);
tone(buzzer,0);
lcd.clear();
lcd.print("Game Over");
delay(2000);
lcd.clear();
break;
}
}
else{
lcd.setCursor(1, 0);
lcd.write((byte)0);
}
}
//asteroide1
for(int a = 15; a >= 0; a--){
lcd.setCursor(a,0);
lcd.write((byte)3);
delay(100);
lcd.clear();
estado = digitalRead(button);
if (estado){
lcd.setCursor(0, 1);
lcd.write((byte)0);
}
else{
lcd.setCursor(1, 0);
lcd.write((byte)0);
if (a == 2) {
lcd.setCursor(1, 0);
lcd.write((byte)0);
lcd.setCursor(1, 0);
tone(buzzer,500);
delay(10);
tone(buzzer,0);
lcd.clear();
lcd.print("Game Over");
delay(2000); // Espera 2 segundos antes de reiniciar
lcd.clear();
break; // Sale del bucle cuando ocurre una colisión
}
}
}
// cactus 2
for(int j = 15; j >= 0; j--){
lcd.setCursor(j,1);
lcd.write((byte)2); //cactus2
delay(100);
lcd.clear();
estado = digitalRead(button);
if (estado){
lcd.setCursor(0, 1);
lcd.write((byte)0);
if (j == 1) {
lcd.setCursor(1, 0);
tone(buzzer,500);
delay(10);
tone(buzzer,0);
lcd.clear();
lcd.print("Game Over");
delay(2000); // Espera 2 segundos antes de reiniciar
lcd.clear();
break; // Sale del bucle cuando ocurre una colisión
}
}
else{
lcd.setCursor(1, 0);
lcd.write((byte)0);
}
}
//asteroide2
for(int b = 15; b >= 0; b--){
lcd.setCursor(b,0);
lcd.write((byte)4);
delay(100);
lcd.clear();
estado = digitalRead(button);
if (estado){
lcd.setCursor(0, 1);
lcd.write((byte)0);
}
else{
lcd.setCursor(1, 0);
lcd.write((byte)0);
if (b == 2) {
lcd.setCursor(1, 0);
lcd.write((byte)0);
lcd.setCursor(1, 0);
tone(buzzer,500);
delay(10);
tone(buzzer,0);
lcd.clear();
lcd.print("Game Over");
delay(2000);
lcd.clear();
break;
}
}
}
}