Buenas, hace unas semanas me compré el Starter Kit con la Arduino UNO r3.
Tras hacer varios proyectos para ir aprendiendo y demás, tanto del manual como alguno que otro que veía por internet, me decidí la tarde pasada a realizar un juego clásico, que supongo que conoceréis, el supersimón.
La idea que tengo es simple, asignar a un array de 10 valores como máximo un número al azar, habiendo cuatro posibilidades, cada uno de esos valores equivale a un color, que es mostrado en 4 leds. Tras ello pulso un botón repitiendo la secuencia, si acierto, paso a la siguiente, o al siguiente nivel; si fallo, se muestra una breve secuencia de parpadeo de leds, y se reasignan los valores del array.
Sin embargo, tras pasar el código, no funciona. Y no me extraña, me hice un verdadero lio mental al escribirlo... Sin embargo, cabe decir que no da errores al compilar.
Si alguien me pudiera ayudar o aconsejar, se lo agradecería. ![]()
const int pulb = 13; //Declaración pines pulsadores
const int pulr = 12;
const int pulg = 11;
const int puly = 10;int valb = 0; //Declaración valores pulsadores
int valr = 0;
int valg = 0;
int valy = 0;const int ledb = 2; //Declaración pines led
const int ledr = 3;
const int ledg = 4;
const int ledy = 5;int val = 0; //Declaración valor insertado
int array[9]; //Otras variables
int n = 0;
int v = 0;
int x = 0;
int velocidad = 500;/////////////////SETUP
void setup(){
pinMode(ledb,OUTPUT);
pinMode(ledr,OUTPUT);
pinMode(ledg,OUTPUT);
pinMode(ledy,OUTPUT);pinMode(pulb,INPUT);
pinMode(pulr,INPUT);
pinMode(pulg,INPUT);
pinMode(puly,INPUT);
}
//////////////////LOOP
void loop(){
iniciarperder();
for(v=0; v < 10; v++){
for(n = 0; n = v; n++){
digitalWrite(n, HIGH);
delay(velocidad);
digitalWrite(ledb, LOW);
digitalWrite(ledr, LOW);
digitalWrite(ledg, LOW);
digitalWrite(ledy, LOW);
x=0;
}
for(x = 0; x = v; x++){
comprobar();
if(array[x] =! val){
iniciarperder();
}
delay(20);
n=0;
val=0;
}
velocidad -40;
}
}////////////////INICIAR O PERDER EL JUEGO
void iniciarperder(){
digitalWrite(ledb, HIGH);
delay(15);
digitalWrite(ledr, HIGH);
delay(15);
digitalWrite(ledg, HIGH);
delay(15);
digitalWrite(ledy, HIGH);
delay(15);
digitalWrite(ledb, LOW);
delay(15);
digitalWrite(ledr, LOW);
delay(15);
digitalWrite(ledg, LOW);
delay(15);
digitalWrite(ledy, LOW);
delay(15);
for(n = 0; n < 10; n++){
array[n] = random(2,5);
}
v=0;
loop();
}/////////////COMPROBAR
void comprobar(){
delay(20);
valb=digitalRead(pulb);
valr=digitalRead(pulr);
valg=digitalRead(pulg);
valy=digitalRead(puly);
if (valb==1){
val = 2;
}
if (valr==1){
val = 3;
}
if (valy==1){
val = 5;
}
if (valg==1){
val = 4;
}
if (val== 0){
comprobar();
}
}