• Viernes 8 de Noviembre de 2024, 19:00

Autor Tema:  Problemas Con El Mastermind  (Leído 1114 veces)

wiki_wiki

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Problemas Con El Mastermind
« en: Jueves 8 de Mayo de 2008, 23:57 »
0
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 el ordenador saqueun numero aleatorio sin repeirse caracteres 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º/apartado:

#include <stdio.h>
#define N 4

int error (char cadena[N]) {
int i, j;
for (i=0; i<N; i++) {

//CARACTERES ERRONEOS
if ((cadena!='1') && (cadena!='2') && (cadena!='3') &&
(cadena!='4') && (cadena!='5') && (cadena!='6') && (cadena!='7')
&& (cadena!='8') && (cadena!='9') && (cadena!='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==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==propuesta)
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;
}

Leber

  • Miembro activo
  • **
  • Mensajes: 65
    • Ver Perfil
Re: Problemas Con El Mastermind
« Respuesta #1 en: Viernes 9 de Mayo de 2008, 00:14 »
0
A mi me compila bien( uso gcc), lo unico da un warning por la funcion gets( es bastante insegura esta funcion).

Código: Text
  1. gcc foro.c -o foro
  2. /tmp/ccqKN9zq.o: In function &#96;main':
  3. foro.c:(.text+0x1d8): warning: the &#96;gets' function is dangerous and should not be used.
  4.  
  5.  

wiki_wiki

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Problemas Con El Mastermind
« Respuesta #2 en: Viernes 9 de Mayo de 2008, 00:38 »
0
pero si le metes el numero correcto te dice que esta bien?? porque a mi no me dice nunca que el numero esta bien, gracias d enuevo