problemas con el mastermind

wiki
09 de Mayo del 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 [email protected]

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;
}