GiHOxp
Published

Raiders of the Lost Key

Take the joystick and inmerse yourself in this epic adventure. One man in his search to gather the keys.

BeginnerFull instructions provided710
Raiders of the Lost Key

Things used in this project

Hardware components

Arduino UNO
Arduino UNO
×1
Joystick, 4 Position
Joystick, 4 Position
×1
Industrial Pushbutton Switch, Push-Pull
Industrial Pushbutton Switch, Push-Pull
×1

Story

Read more

Schematics

Indie

Code

Indie

Arduino
#include <LiquidCrystal.h>
LiquidCrystal lcd(2, 3, 7, 6, 5, 4);
int start = HIGH;
int salto = 0;
int avance = 0;
int avance2 = 0;
int salto2= 0;
int x = A2;
int y = A1;
int boton = 11;
int renglon = 0;
int columna = 0;
const int duracionsalto = 200;
int starton = 13;
int start2 = HIGH;
int bandera = 0;
int llave = 0;
int prueba = 0;
int nivel = 1;
int fua = 0;


byte normal[] = {
  B01110,
  B01110,
  B01110,
  B10101,
  B11111,
  B00100,
  B01110,
  B11011
};

byte aire[] = {
  B01110,
  B01110,
  B01110,
  B00100,
  B11111,
  B10101,
  B01110,
  B01010
};

byte blanco[] = {
  B00000,
  B00000,
  B00000,
  B00000,
  B00000,
  B00000,
  B00000,
  B00000
};
byte abajo[] = {
  B00000,
  B01110,
  B01110,
  B01110,
  B00100,
  B11111,
  B00100,
  B11011
};

byte giho[] = {
  B00000,
  B01110,
  B10001,
  B10001,
  B10001,
  B01010,
  B11011,
  B00000
};

byte obstaculo[] = {
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111,
  B11111
};

byte LLAVE[] = {
  B11111,
  B10011,
  B10011,
  B11011,
  B10011,
  B11011,
  B10101,
  B10001
};




void setup() {
  Serial.begin(9600);
  lcd.begin(16, 2);
  lcd.createChar(2, normal);
    lcd.createChar(4, blanco);
lcd.createChar(5, abajo);
  lcd.createChar(3, aire);
  lcd.createChar(6, giho);
  lcd.createChar(7, obstaculo);
  lcd.createChar(8, LLAVE);
  pinMode(boton, INPUT_PULLUP);
    pinMode(start, INPUT);

//  pinMode(x, INPUT);
  //pinMode(y, INPUT);

/*
  lcd.setCursor(1, 0);
  lcd.write(6);

  
lcd.setCursor(2, 0);
  lcd.print("idiana jones");
  lcd.setCursor(14, 0);
  lcd.write(6);

delay(2000);

for(columna = 0; columna <= 16; columna++){
  lcd.setCursor(columna, 0);
   lcd.write(4);
}
 for(columna = 0; columna <= 16; columna++){
  lcd.setCursor(columna, 1);
   lcd.write(4);
}*/
}

void loop() {
  
int sensorReading = analogRead(A0);
int delayTime = map(sensorReading, 0, 1023, 200, 1000);
int salto = analogRead(x);
int avance = analogRead(y);
start = digitalRead(starton);

 /*Serial.print("x: ");
  Serial.println(salto);

  Serial.print("y; ");
  Serial.println(avance);

*/

  
  



  
if(start == HIGH){
  start2 = HIGH;
}

if(start == LOW && start2 == HIGH){
  for(columna = 0; columna <= 16; columna++){
  lcd.setCursor(columna, 0);
   lcd.write(4);
}
 for(columna = 0; columna <= 16; columna++){
  lcd.setCursor(columna, 1);
   lcd.write(4);
}

bandera = 1;
  lcd.setCursor(1, 0);
  lcd.write(6);

  
lcd.setCursor(2, 0);
  lcd.print("idiana jones");
  lcd.setCursor(14, 0);
  lcd.write(6);

delay(2000);

for(columna = 0; columna <= 16; columna++){
  lcd.setCursor(columna, 0);
   lcd.write(4);
}
 for(columna = 0; columna <= 16; columna++){
  lcd.setCursor(columna, 1);
   lcd.write(4);
}


columna = 0;
renglon = 0;
  start2 = start;
}





if(bandera == 1){
  
  if(nivel == 1){ //nivel 1

lcd.setCursor(5, 1);
  lcd.write(7);

  lcd.setCursor(11, 1);
  lcd.write(7);

   lcd.setCursor(15, 1);
  lcd.write(8);

  prueba = 0;

  
if(avance>600  &&  avance2 != avance){ 

lcd.setCursor(columna, renglon);
  lcd.write(4);

  renglon = 1;

  
  lcd.setCursor(columna, renglon);
  lcd.write(2);
  delay(duracionsalto);
  lcd.setCursor(columna, renglon);
  lcd.write(4);
delay(duracionsalto);

  renglon = renglon - 1;
  columna = columna +1;

  lcd.setCursor(columna ,renglon);
  lcd.write(3);
delay(duracionsalto);

lcd.setCursor(columna, renglon);
  lcd.write(4);

  columna = columna + 1;
  renglon = renglon + 1;
  
  
  lcd.setCursor(columna, renglon);
  lcd.write(2);
  


  avance2 = avance;

}

if(avance<300 && avance2 != avance){
  lcd.setCursor(columna, renglon);
  lcd.write(5);
  delay(duracionsalto);
  lcd.setCursor(columna, renglon);
  lcd.write(2);
  renglon = 1;

lcd.setCursor(columna, 0);
  lcd.write(4);
  lcd.setCursor(columna, renglon);
  lcd.write(2);
  
  avance2 = avance;
 
  
  
  
}


if(salto<300 && salto2 != salto){
  lcd.setCursor(columna, renglon);
  lcd.write(4);

  columna = columna + 1;
delay(duracionsalto);
lcd.setCursor(columna, renglon);
  lcd.write(2);
  
  salto2 = salto;
  
  
}

if(salto>600 && salto2 != salto){
  lcd.setCursor(columna, renglon);
  lcd.write(4);

  columna = columna - 1;
delay(duracionsalto);
lcd.setCursor(columna, renglon);
  lcd.write(2);
  
  salto2 = salto;
  
  
}

if(!digitalRead(boton)){
   lcd.setCursor(columna, renglon);
  lcd.write(4);
  renglon = 0;
  lcd.setCursor(columna ,renglon);
  lcd.write(3);
  delay(duracionsalto);
  lcd.setCursor(columna ,renglon);
  lcd.write(2);
  
}


/*Serial.println("c:");
  Serial.println(columna);

    Serial.println("r:");
  Serial.println(renglon);*/



  
if(columna == 16){
  columna = 0;
  renglon = 0;
}





if((columna == 5 && renglon == 1) || (columna == 11 && renglon == 1) && llave == 0) {
prueba = 1;}

if(prueba == 1){
for(columna = 0; columna <= 16; columna++){
  lcd.setCursor(columna, 0);
   lcd.write(4);
}
 for(columna = 0; columna <= 16; columna++){
  lcd.setCursor(columna, 1);
   lcd.write(4);
}
lcd.setCursor(1, 0);
  lcd.write(6);

  
lcd.setCursor(2, 0);
  lcd.print("YOU LOOSE");
  lcd.setCursor(14, 0);
  lcd.write(6);
}



//llave

if(columna == 15 && renglon == 1){
  llave = 1;

  lcd.setCursor(2, 0);
  lcd.print("llave");
  lcd.setCursor(14, 0);
  lcd.write(6);
}



if(columna == 11 && renglon == 1 && llave == 1 && nivel == 1){
lcd.setCursor(2, 0);
  lcd.print("LEVEL 1 PASSED");
  lcd.setCursor(14, 0);
  lcd.write(6);
  delay(2000);
  for(columna = 0; columna <= 16; columna++){
  lcd.setCursor(columna, 0);
   lcd.write(4);
}
 for(columna = 0; columna <= 16; columna++){
  lcd.setCursor(columna, 1);
   lcd.write(4);
}

  llave = 0;
  nivel = 2;
  fua = 1;
  prueba = 0;
  
}


}//nivel



//nivel 2 nivel 2 nivel 2 nivel 2 nivel 2 nivel 2 nivel 2 nivel 2 nivel 2 nivel 2 nivel 2 nivel 2 nivel 2 nivel 2 nivel 2 nivel 2



if(nivel == 2 ){

  if(fua == 1){
for(columna = 0; columna <= 16; columna++){
  lcd.setCursor(columna, 0);
   lcd.write(4);
}
 for(columna = 0; columna <= 16; columna++){
  lcd.setCursor(columna, 1);
   lcd.write(4);
}


  lcd.setCursor(1, 0);
  lcd.write(6);

  
lcd.setCursor(2, 0);
  lcd.print("NIVEL 2");
  lcd.setCursor(14, 0);
  lcd.write(6);

delay(2000);

for(columna = 0; columna <= 16; columna++){
  lcd.setCursor(columna, 0);
   lcd.write(4);
}
 for(columna = 0; columna <= 16; columna++){
  lcd.setCursor(columna, 1);
   lcd.write(4);
}

fua = 0;
columna = 0;
renglon = 0;
  }






//coniguracion de obstaculos
  lcd.setCursor(5, 1);
  lcd.write(7);

  lcd.setCursor(7, 1);
  lcd.write(7);

  lcd.setCursor(11, 1);
  lcd.write(7);
  lcd.setCursor(9, 0);
  lcd.write(7);

   lcd.setCursor(15, 1);
  lcd.write(8);
//configuracion de obstaculos fin
  prueba = 0;


  
if(avance>600  &&  avance2 != avance){ 

lcd.setCursor(columna, renglon);
  lcd.write(4);

  renglon = 1;

  
  lcd.setCursor(columna, renglon);
  lcd.write(2);
  delay(duracionsalto);
  lcd.setCursor(columna, renglon);
  lcd.write(4);
delay(duracionsalto);

  renglon = renglon - 1;
  columna = columna +1;

  lcd.setCursor(columna ,renglon);
  lcd.write(3);
delay(duracionsalto);

lcd.setCursor(columna, renglon);
  lcd.write(4);

  columna = columna + 1;
  renglon = renglon + 1;
  
  
  lcd.setCursor(columna, renglon);
  lcd.write(2);
  


  avance2 = avance;

}

if(avance<300 && avance2 != avance){
  lcd.setCursor(columna, renglon);
  lcd.write(5);
  delay(duracionsalto);
  lcd.setCursor(columna, renglon);
  lcd.write(2);
  renglon = 1;

lcd.setCursor(columna, 0);
  lcd.write(4);
  lcd.setCursor(columna, renglon);
  lcd.write(2);
  
  avance2 = avance;
 
  
  
  
}


if(salto<300 && salto2 != salto){
  lcd.setCursor(columna, renglon);
  lcd.write(4);

  columna = columna + 1;
delay(duracionsalto);
lcd.setCursor(columna, renglon);
  lcd.write(2);
  
  salto2 = salto;
  
  
}

if(salto>600 && salto2 != salto){
  lcd.setCursor(columna, renglon);
  lcd.write(4);

  columna = columna - 1;
delay(duracionsalto);
lcd.setCursor(columna, renglon);
  lcd.write(2);
  
  salto2 = salto;
  
  
}

if(!digitalRead(boton)){
   lcd.setCursor(columna, renglon);
  lcd.write(4);
  renglon = 0;
  lcd.setCursor(columna ,renglon);
  lcd.write(3);
  delay(duracionsalto);
  lcd.setCursor(columna ,renglon);
  lcd.write(2);
  
}


/*Serial.println("c:");
  Serial.println(columna);

    Serial.println("r:");
  Serial.println(renglon);*/



  
if(columna>16){
  columna = 0;
  renglon = 0;
}


if(columna == 11 && renglon == 1 && llave == 1){

lcd.setCursor(2, 0);
  lcd.print("LEVEL 2 PASSED");
  lcd.setCursor(14, 0);
  lcd.write(6);
  delay(2000);
  for(columna = 0; columna <= 16; columna++){
  lcd.setCursor(columna, 0);
   lcd.write(4);
}
 for(columna = 0; columna <= 16; columna++){
  lcd.setCursor(columna, 1);
   lcd.write(4);
}
  nivel = 3;

  
}


if(((columna == 5 && renglon == 1) || (columna == 11 && renglon == 1)|| (columna == 7 && renglon == 1) || (columna == 9 && renglon == 0))&& llave == 0) {
prueba = 1;}

if(prueba == 1){
for(columna = 0; columna <= 16; columna++){
  lcd.setCursor(columna, 0);
   lcd.write(4);
}
 for(columna = 0; columna <= 16; columna++){
  lcd.setCursor(columna, 1);
   lcd.write(4);
}
lcd.setCursor(1, 0);
  lcd.write(6);

  
lcd.setCursor(2, 0);
  lcd.print("YOU LOOSE");
  lcd.setCursor(14, 0);
  lcd.write(6);
}



//llave

if(columna == 15 && renglon == 1){
  llave = 1;

  lcd.setCursor(2, 0);
  lcd.print("llave");
  lcd.setCursor(14, 0);
  lcd.write(6);
}







  
}//nivel2



Serial.print("columna: ");
Serial.println(columna);

Serial.print("renglon: ");
Serial.println(renglon);



Serial.print("llave: ");
Serial.println(llave);








}//badera


























}

Credits

GiHOxp
4 projects • 3 followers

Comments