Buenas a todos, estoy estancado en un problema y es que no se como guardar un numero cualquiera, de una longitud cualquiera, para luego poder "jugar" con el.
Estoy tratando de hacer un juego tipo MasterMind con un keypad (4x4) y un lcd, pero como os comento me he quedado atorado.
os pego el trozo de código que me da problemas , a ver si podeis hecharme una mano, con alguna sugerencia.
//MASTERMIND
void MASTERMIND () {
//lcd.clear(); // BORRA LA PANTALLA
lcd.setCursor(0, 0); // posiciona el cursor
lcd.print("MASTERMIND"); // imprime en pantalla
lcd.setCursor(0, 1); // posiciona el cursor
lcd.print("Selec. dif:"); // imprime en pantalla
lcd.setCursor(12, 1); // posiciona el cursor
TECLADO();
if (tecla_num != 0 && tecla_num < 10)
{
muestra_texto = true;
mm_digitos = tecla_num;
lcd.clear(); // BORRA LA PANTALLA
lcd.setCursor(0, 0); // posiciona el cursor
lcd.print("JUEGO DE DIG"); // imprime en pantalla el boton pulsado
lcd.setCursor(9, 0); // posiciona el cursor
lcd.print(mm_digitos); // imprime en pantalla el boton pulsado
delay(2000);
MASTERMIND_JUEGO ();
primera_pasada = false; //para qu no repita el loop del main
return;
}
else
{
muestra_texto = false;
}
}
void MASTERMIND_JUEGO() {
lcd.clear();
lcd.setCursor(0, 1);
lcd.cursor();
//primera_pasada = false;
while ( mm_digitos > 0){
switch (mm_digitos){
case 1:
tdigito1 = TECLADO(); mm_digitos--;
lcd.print("JUEGO DE DIG");
break;
case 2:
tdigito2 = TECLADO(); mm_digitos--;
break;
case 3:
tdigito3 = TECLADO(); mm_digitos--;
break;
case 4:
tdigito4 = TECLADO(); mm_digitos--;
break;
case 5:
tdigito5 = TECLADO(); mm_digitos--;
break;
case 6:
tdigito6 = TECLADO(); mm_digitos--;
break;
case 7:
tdigito7 = TECLADO(); mm_digitos--;
break;
case 8:
tdigito8 = TECLADO(); mm_digitos--;
break;
case 9:
tdigito9 = TECLADO(); mm_digitos--;
break;
}
}
int numerito = tdigito1 +tdigito2 + tdigito3 + tdigito4;
lcd.clear();
if (numerito > 0) // prueba para saber si guarda los numeros
lcd.print("d");
}
y este es el código del teclado, que funciona, pero el do while, me para todo el programa, asi como un contador de tiempo que tengo asociado
int TECLADO ()
{
do {
char tecla = keypad.getKey(); // lee el teclado por si hay alguna tecla pulsada
if(tecla != NO_KEY)//(tecla) // same as if(key != NO_KEY)- did something change?
{
switch (tecla)
{
case '0':
tecla_num = 0;
if (muestra_texto == true)
lcd.print("0"); // imprime en pantalla el boton pulsado
return tecla_num;
break;
case '1':
tecla_num = 1;
if (muestra_texto == true)
lcd.print("1"); // imprime en pantalla el boton pulsado
return tecla_num;
break;
case '2':
tecla_num = 2;
if (muestra_texto == true)
lcd.print("2"); // imprime en pantalla el boton pulsado
return tecla_num;
break;
case '3':
tecla_num = 3;
if (muestra_texto == true)
lcd.print("3"); // imprime en pantalla el boton pulsado
return tecla_num;
break;
case '4':
tecla_num = 4;
if (muestra_texto == true)
lcd.print("4"); // imprime en pantalla el boton pulsado
return tecla_num;
break;
case '5':
tecla_num = 5;
if (muestra_texto == true)
lcd.print("5"); // imprime en pantalla el boton pulsado
return tecla_num;
break;
case '6':
tecla_num = 6;
if (muestra_texto == true)
lcd.print("6"); // imprime en pantalla el boton pulsado
return tecla_num;
break;
case '7':
tecla_num = 7;
if (muestra_texto == true)
lcd.print("7"); // imprime en pantalla el boton pulsado
return tecla_num;
break;
case '8':
tecla_num = 8;
if (muestra_texto == true)
lcd.print("8"); // imprime en pantalla el boton pulsado
return tecla_num;
break;
case '9':
tecla_num = 9;
if (muestra_texto == true)
lcd.print("9"); // imprime en pantalla el boton pulsado
return tecla_num;
break;
case '*':
tecla_num = 14;
if (muestra_texto == true)
lcd.print("*"); // imprime en pantalla el boton pulsado
return tecla_num;
break;
case '#':
tecla_num = 15;
if (muestra_texto == true)
lcd.print("#"); // imprime en pantalla el boton pulsado
return tecla_num;
break;
case 'A':
tecla_num = 10;
if (muestra_texto == true)
lcd.print("A"); // imprime en pantalla el boton pulsado
return tecla_num;
break;
case 'B':
tecla_num = 11;
if (muestra_texto == true)
lcd.print("B"); // imprime en pantalla el boton pulsado
return tecla_num;
break;
case 'C':
tecla_num = 12;
if (muestra_texto == true)
lcd.print("C"); // imprime en pantalla el boton pulsado
return tecla_num;
break;
case 'D':
tecla_num = 13;
if (muestra_texto == true)
lcd.print("D"); // imprime en pantalla el boton pulsado
return tecla_num;
break;
} // final del swich
} // end if key pressed
} while (1 > 0);
}
//--------------------------TECLADO------------------------------------
gracias y un saludo a todos.