Se me dificultó mucho el implementar todos los componentes para el pinball en este sketch. Sin embargo, se pudo lograr, y ahora tengo una mejor comprensión de distintos elementos, como los operadores de comparación y los condicionales en programación, así como de las partes que forman el juego.
Todavía me pregunto sobre la mejor manera de unir todos los componentes en el pinball, pero planeando distintas variantes podría llegar a la mejor opción.
El resultado fue éste:
#include <LiquidCrystal.h>
LiquidCrystal displei(12, 11, 5, 4, 3, 2);
int pinFotocelda=A0;
int pinTunel=A1;
int pinRampa=A2;
int vidas=3;
int puntos=0;
byte corazon_izq[8]={0b00000100,
0b00000001,
0b00000011,
0b00000011,
0b00000001,
0b00000000,
0b00000000
};
byte corazon_der[8]={0b00000000,
0b00000000,
0b00000010,
0b00010111,
0b00011111,
0b00011110,
0b00011100,
0b00001000
};
void setup() {
displei.begin(16, 2);
pinMode(pinFotocelda,INPUT);
pinMode(pinTunel, INPUT);
pinMode(pinRampa, INPUT);
displei.createChar(1,corazon_izq);
displei.createChar(2,corazon_der);
}
void loop() {
int datoTunel=analogRead (pinTunel);
int datoRampa=analogRead(pinRampa);
int dato=analogRead(pinFotocelda);
delay(1000);
if(dato<600)
{
vidas=vidas-1;
}
if(vidas==0)
{
displei.clear();
displei.setCursor(0,0);
displei.print("Como que perdiste D:");
delay(5000);
vidas=3;
}
/*void mensajePerdiste(){
displei.clear();
displei.setCursor(0,0);
displei.print("Como que perdiste D:");
delay(5000)
;vidas=3;
}*/
displei.setCursor(0,0);
printVidas();
int pinTunel=analogRead(pinTunel);
int pinRampa=analogRead(pinRampa);
delay(500);
if(datoTunel<600)
{
puntos=puntos+30;
}
if(datoRampa<600)
{
puntos=puntos+20;
}
if(puntos>=100)
{
displei.clear();
displei.setCursor(0,0);
displei.print("¡Muy bien!");
delay(5000);
puntos=0;
}
displei.setCursor(12,0);
displei.print(puntos);
}
void printVidas(){
if(vidas==3)
{
displei.clear();
displei.write(1);
displei.write(2);
displei.write(1);
displei.write(2);
}
}
No hay comentarios:
Publicar un comentario