elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Juego mastermind
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Juego mastermind  (Leído 1,889 veces)
Raskera

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Juego mastermind
« en: 26 Abril 2019, 19:57 pm »

El programa pide q el ordenador adivine un número q yo pienso y me he encallado en como seguir...
Ayudaaaaaa!!!

#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>
#define MAXDIGIT 6
#define XIFRES 4
#define MAXTRIES 100

void endevina (int);
void comptaEncerts (int[],int[],int*,int*);
void mostra (int[]);
void randNoRep(int[]);

int main(void){
    int num;

    printf("Pensa un nombre de %d xifres sense repetir i entre 0 i %d.\n Entra 1 per a que l'endevini altrament s'atura.\n",XIFRES,MAXDIGIT-1);
    scanf("%d",&num);

    srand((unsigned) time (NULL));

    while(num==1){
        endevina(1000* pow(XIFRES,MAXDIGIT));

        printf("Pensa un nombre de %d xifres sense repetir i entre 0 i %d.\n Entra 1 per  a que l'endevini altrament s'atura.\n", XIFRES,MAXDIGIT-1);
        scanf("%d",&num);
    }
    return 0;
}

void endevina(int MaxIter){
    int tries[MAXTRIES][XIFRES+2], nMorts, nFerits, i, j, k, mentida=0, control=0, val[XIFRES],valnou[XIFRES];

    randNoRep(val);
    mostra(val);
    printf("\n");
    printf("Entra quantes xifres tens ben situades:\n");
    scanf("%d",&nMorts);
    printf("Entra quantes xifres estan mal situades:\n");
    scanf("%d",&nFerits);
/*Si te la llet d'adivinar-lo a la primera.*/
   if(nMorts==XIFRES){
       printf("He endevinat lo numero en %d intents.\n", control+1);
       return;
   }
/*Posem lo numero generat en una matriu on les dues ultimes columnes s'omplin segons els ferits i morts.*/
    for(i=0; i<XIFRES; i++){
       tries[control]= val;
    }
    tries[control][XIFRES]=nMorts;
    tries[control][XIFRES+1]=nFerits;

    for(j=0; j<MAXTRIES; j++){
        randNoRep(valnou);

        comptaEncerts(val, valnou, &nMorts, &nFerits);

        control++;

        for(k=0; k<control; k++){
                if(tries[k][XIFRES]!=nMorts && tries[k][XIFRES+1]!=nFerits){
                randNoRep(valnou);
                mentida++;
                k=-1;
                if(mentida>=MaxIter){
                     printf("Hum... Crec que menteixes.. Em dono!\n");
                    return;
                    }
                }
               
                /*if(tries[k][XIFRES]==nMorts && tries[k][XIFRES+1]==nFerits) {
                mostra(valnou);*/
       
        }
       
    }
   
    return;
}


void comptaEncerts (int data1[], int data2[], int *nMorts, int *nFerits){
    int i,j;
    /*Comprovació de morts que hi ha.*/
    *nMorts=0;
    for(i=0; i<XIFRES; i++){
        if(data1==data2){
            nMorts++;
        }
    }
    /*Comprovació de ferits que hi ha.*/
    *nFerits=0;
    for(i=0; i<XIFRES; i++){
        for(j=0; j<i; j++){
            if(data1==data2[j]){
                nFerits++;
            }
        }
        for(j=i+1; j<XIFRES; j++){
              if(data1==data2[j]){
                nFerits++;
                }
        }
    }
return;
}

void mostra(int data[]){
    int i;
    for(i=0; i<XIFRES; i++){
        printf("%1d",data);
    }
 return;
}

void randNoRep(int val[XIFRES]) {
    int i,j;

    val[0]=rand()%MAXDIGIT;

    for(i=1; i<XIFRES; i++){

            val=rand()%MAXDIGIT;
          for(j=0; j<i; j++){
                   if( val==val[j]) {
            val=rand()%MAXDIGIT;
            j = -1; /*Pq així tenim que que j valdrà 0.*/
                    }
          }
    }

    return;
}


En línea

Tachikomaia


Desconectado Desconectado

Mensajes: 1.208


Superhacker (es broma xD )


Ver Perfil
Re: Juego mastermind
« Respuesta #1 en: 26 Abril 2019, 20:05 pm »

No sé c++ pero fijate en prog general que estoy haciendo algo similar. Quizá nos podamos ayudar.

Si quieres vichate eso y/o decime mediante pseudocódigo qué has hecho.


« Última modificación: 26 Abril 2019, 20:09 pm por Tachikomaia » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Mastermind
Programación C/C++
N0body 1 5,148 Último mensaje 1 Mayo 2010, 04:01 am
por N0body
Juego Mastermind
Programación C/C++
adeur 3 4,863 Último mensaje 5 Julio 2012, 15:08 pm
por maxim_o
Juego MasterMind Java necesito ayuda
Java
Rasgaroth 2 6,156 Último mensaje 1 Febrero 2015, 18:59 pm
por Usuario Invitado
Ayuda juego Mastermind en C++
Programación C/C++
TheXiiscoZ 4 4,949 Último mensaje 11 Diciembre 2017, 03:56 am
por Serapis
IA para Mastermind. « 1 2 »
Programación General
Tachikomaia 13 7,811 Último mensaje 2 Marzo 2021, 18:32 pm
por assw1208
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines