emm, Hola, soy nueva con esto de la programación y estoy intentando hacer un juego con dos botones y tres leds.
La gracia del juego es que van a haber tres leds encendiendose al azar y cuando la verde este encedida hay que presionar un botón, el que presione primero se lleva el punto. si se aprieta el boton cuando una de las otras leds esta encendida se le da un punto al contrincante.
emmm, bueno, la verdad tengo problemas con los if, se me bugean y no sé porque.
si alguien pudiera ayudarme estaría muy agradecida.
aquí esta mi código:
int punt1=0;
int punt2=0;
int boton1=6;
int boton2=5;
int estado1=0;
int estado2=0;
int luz;
int ledsi=4;
int ledno1=3;
int ledno2=2;
int ram;
void setup() {
Serial.begin(9600);
randomSeed(analogRead(0));
pinMode (2, OUTPUT);
pinMode (3, OUTPUT);
pinMode (4, OUTPUT);
pinMode (5, INPUT);
pinMode (6, INPUT);
ran=random(2,5);
}
void loop() {
ledsi=ran;
ledno1=ran;
ledno2=ran;
luz=random(2,5);
digitalWrite(luz,HIGH);
delay(1000);
digitalWrite(luz, 0);
estado1=digitalRead(boton1);
estado2=digitalRead(boton2);
if ((luz==2) && (boton1==1)){
punt1++;
Serial.print("Has acertado :D");
}
else if (boton2==1){
punt2++;
Serial.print("Has acertado :D");
}
if ((luz==3)&&(boton2==1)){
punt1++;
Serial.print("Uy! te equivocaste, punto al contrincante");
}
else if (boton1==1){
punt1++;
Serial.print("Uy! te equivocaste, punto al contrincante");
}
if ((luz==4)&&(boton1==1)){
punt2++;
Serial.print("Uy! te equivocaste, punto al contrincante");
}
else if (boton2==1){
punt1++;
Serial.print("Uy! te equivocaste, punto al contrincante");
}
}
Hola DarkZitrone
Te recomiendo que leas las normas del foro y que además pongas el código correctamente. En breve algún moderador te dará un toque y con razón, es imposibles leer el código bien así.
Aún así te ayudo.
int punt1 = 0;
int punt2 = 0;
int boton1 = 6;
int boton2 = 5;
int estado1 = 0;
int estado2 = 0;
int luz;
int ledsi = 4;
int ledno1 = 3;
int ledno2 = 2;
int ram;
void setup() {
Serial.begin(9600);
randomSeed(analogRead(0));
pinMode (ledno2, OUTPUT); // si declaras variables con los números de los pines utilizalo, no pongas el número ahora :)
pinMode (3, OUTPUT);
pinMode (4, OUTPUT);
pinMode (5, INPUT);
pinMode (6, INPUT);
ran = random(2, 5); // Esta variable no existe, no será ram???
}
void loop() {
ledsi = ran; // Por qué lo igualas a ran?????
ledno1 = ran;
ledno2 = ran;
luz = random(2, 5); // Debes aprender a utilizar la función random
digitalWrite(luz, HIGH);
delay(1000);
digitalWrite(luz, 0);
estado1 = digitalRead(boton1);
estado2 = digitalRead(boton2);
if ((luz == 2) && (boton1 == 1)) {
punt1++;
Serial.print("Has acertado :D");
}
else if (boton2 == 1) {
punt2++;
Serial.print("Has acertado :D");
}
if ((luz == 3) && (boton2 == 1)) {
punt1++;
Serial.print("Uy! te equivocaste, punto al contrincante");
}
else if (boton1 == 1) {
punt1++;
Serial.print("Uy! te equivocaste, punto al contrincante");
}
if ((luz == 4) && (boton1 == 1)) {
punt2++;
Serial.print("Uy! te equivocaste, punto al contrincante");
}
else if (boton2 == 1) {
punt1++;
Serial.print("Uy! te equivocaste, punto al contrincante");
}
}
Te he puesto unas notas en el código pero no tiene ni pies ni cabeza. Empieza poco a poco, te recomiendo que encendiendo un LED. Haz algún proyecto pequeño y sencillo, puedes empezar por estos
5 proyectos básicos con Arduino
Aprende a utilizar la función random de Arduino aquí te dejo un enlace
Random en Arduino
En resumen, no intentes hacer grandes cosas sin antes tener claro las cosas más pequeñas.