Enviado por wiki el día 9 de mayo de 2008
Hola ! soy nueva por aqui , y necesito ayuda ya que soy novata en el lenguaje de programacion C++ . Bueno me han mandado hacer un mastermind con 4 numeros que no pueden repetirse, y el problema es que me compila mal y no veo el error, este apartado pide que el ordenador genere un numero aleatorio y luego tu trates de adivinarlo (no se generar un numero aleatorio), despues me han mandado hacer la parte inversa , es decir yo meto un numero en el ordenador y el ordenador tiene que adivinarlo y en esta parte si que no tengo ni idea, muchas gracias!
mi correo es thesexperience@hotmail.com
esto es lo que llevo hecho( es en C++):
#include <stdio.h>
#define N 4
int error (char cadena[N]) {
int i, j;
for (i=0; i<N; i++) {
//CARACTERES ERRONEOS
if ((cadena[i]!=\\\'1\\\') && (cadena[i]!=\\\'2\\\') && (cadena[i]!=\\\'3\\\') &&
(cadena[i]!=\\\'4\\\') && (cadena[i]!=\\\'5\\\') && (cadena[i]!=\\\'6\\\') && (cadena[i]!=\\\'7\\\')
&& (cadena[i]!=\\\'8\\\') && (cadena[i]!=\\\'9\\\') && (cadena[i]!=\\\'0\\\')) {
printf(\\\"La clave es numerica.\\\\n\\\");
printf(\\\"Intentalo otra vez.\\\\n\\\");
return 1;
}
}
return 0;
}
int desordenados_ (char propuesta[N], char clave[N]) {
int i, j, desordenados=0;
for (i=0; i<N; i++)
for (j=0; j<N; j++)
if (clave[i]==propuesta[j] && i!=j)
desordenados++;
if (desordenados) printf(\\\"Hay %d numeros desordenados en la clave.\\\\n\\\", desordenados++);
//else printf(\\\"No hay numeros desordenados en la clave.\\\\n\\\");
return desordenados;
}
int aciertos_ (char propuesta[N], char clave[N]) {
int i, aciertos=0;
for (i=0; i<N; i++)
if (clave[i]==propuesta[i])
aciertos++;
if (aciertos) printf(\\\"Hay %d numeros correctos en la clave.\\\\n\\\", aciertos);
else printf(\\\"Ningun numero introducido pertenece a la clave.\\\\n\\\");
return aciertos;
}
int main() {
char cl[N], pr[N];
int i, aciertos, desordenados;
do {
printf(\\\"Escribe la clave que se ha de adivinar (4 numeros): \\\");
gets(cl);
if(cl[N]>4)
printf(\\\"La clave es de 4 digitos.\\\\nIntentalo otra vez.\\\\n\\\");
} while (error(cl));
printf(\\\"\\\\n\\\\n\\\");
while (aciertos!=4) {
do {
printf(\\\"\\\\nEscribe tu propuesta: \\\");
gets(pr);
} while (error(pr));
desordenados=desordenados_(pr, cl);
aciertos=aciertos_(pr, cl);
}
if (aciertos==4) printf(\\\"\\\\nAcertaste!\\\\n\\\");
return 0;
}