Arduino Forum

International => Español => Topic started by: MenchenFive on Jul 14, 2014, 07:06 pm

Title: [Ayuda con código]Simón dice
Post by: MenchenFive on Jul 14, 2014, 07:06 pm
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. :smiley-yell:
Quote

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
  • =! 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();
       }
    }



Title: Re: [Ayuda con código]Simón dice
Post by: Derty-2 on Jul 16, 2014, 06:54 pm
hay muchos por ahi

http://www.instructables.com/id/Arduino-Simon-Says/all/?lang=es