Dev - C++ - problemas con el mastermind

   
Vista:

problemas con el mastermind

Publicado por wiki (2 intervenciones) el 08/05/2008 23:51:21
Hola chicos! soy nueva por aqui , venia en busca de informacion y 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 metas un numero en el ordenador y luego tu trates de adivinarlo, 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, si a alguien se le ocurre algo seria de agradecer, muchas gracias!

1º/aparatado:

#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. ");
printf("Intentalo otra vez. ");
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. ", desordenados++);
//else printf("No hay numeros desordenados en la clave. ");
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. ", aciertos);
else printf("Ningun numero introducido pertenece a la clave. ");
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. Intentalo otra vez. ");
} while (error(cl));
printf(" ");

while (aciertos!=4) {
do {
printf(" Escribe tu propuesta: ");
gets(pr);
} while (error(pr));
desordenados=desordenados_(pr, cl);
aciertos=aciertos_(pr, cl);
}

if (aciertos==4) printf(" Acertaste! ");
return 0;
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:problemas con el mastermind

Publicado por cesar  (1 intervención) el 20/05/2008 00:04:02
Dados dos enteros, m y n, un número entero d es el máximo común divisor (o el
mayor divisor común) si y sólo si:
- d divide a m y d divide a n.
- si k divide a m y k divide a n entonces k < d.
El algoritmo de Euclides es un método eficaz para calcular el máximo común divisor
(mcd) entre dos números enteros. El algoritmo consiste en varias divisiones
euclidianas sucesivas. En la primera división, se toma como dividendo el mayor de
los números y como divisor el otro (se ahorra así un paso). Luego, el divisor y el
resto sirven respectivamente de dividendo y divisor de la siguiente división. El
proceso termina cuando se obtiene un resto nulo. El mcd es entonces el penúltimo
resto del algoritmo.
Ejemplo: Se busca el máximo común divisor de a = 945 y b = 651, números
escogidos al azar:
945 = 1 x 651 + 294
651 = 2 x 294 + 63
294 = 4 x 63 + 42
63 = 1 x 42 + 21
42 = 2 x 21 + 0

Entonces mcd(945,651) = 21 (el último resto no nulo).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problemas con el mastermind

Publicado por wiki (2 intervenciones) el 20/05/2008 00:20:03
que tiene que ver esto con el mastermind? :S
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problemas con el mastermind

Publicado por oscar marin (1 intervención) el 17/05/2009 19:44:46
Hola stoy estudiando 1ero de ingenieria industrial y tengo que hacer un mastermind tmb, tengo el mismo problema que tu, y me preguntaba si me podrias mandar la solución, Graciás.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar