ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

JUEGO MASTERMIND EN C++

gaby92Tarea16 de Octubre de 2015

3.372 Palabras (14 Páginas)687 Visitas

Página 1 de 14

/*

********  Mastermind en C  *********

Autor   : Andrés Oller Serrano

Twitter : aos_26

Web     : andresoller.es

licencia: Cualquier uso sin plagio.

*/

#include 

#include 

#include 

#include 

#include 

#define N 4 //Numero de valores que tendrá el numero

//CABECERAS de funciones

void llenarVectorNumAleatorios(int adivinar[], int n);

void impresionPantalla(int opcion);

int comprobarDigitosNum(int numero, int n);

void comprobarNumeroMastermind(int adivinar[], char resultadoComprobacion[], int numero, int n);

int todosIguales(int adivinar[], char resultadoComprobacion[], int n);

void imprimirCaracteres(char resultadoComprobacion[], int n);

int main(){

        int adivinar[N], numero, salida = 0, digitos;

        char resultadoComprobacion[N];

        llenarVectorNumAleatorios(adivinar, N);

        impresionPantalla(1);

        getchar();

        do{

                impresionPantalla(2);

                scanf_s("%d", &numero);

                digitos = comprobarDigitosNum(numero, N);

                if (digitos != 0) impresionPantalla(3);

                else {

                        comprobarNumeroMastermind(adivinar, resultadoComprobacion, numero, N);

                        salida = todosIguales(adivinar, resultadoComprobacion, N);

                        impresionPantalla(4);

                        imprimirCaracteres(resultadoComprobacion, N);

                }

        } while (salida == 0);

        return 0;

}

void llenarVectorNumAleatorios(int adivinar[], int n){

        int cont;

        srand((unsigned)time(NULL));

        for (cont = 0; cont<n; cont++) adivinar[cont] = (rand() % 9) + 1; //del 1 al 9

}

void impresionPantalla(int opcion){

        switch (opcion){

        case 1: printf("\t\t\t MASTERMIND");

                printf("\n\t\t\t------------\n\n\tINSTRUCCIONES:");

                printf("\n\t\tSe genererará un numero de 4 digitos y se tendrá que adivinar.");

                printf("\n\t\t*=Adivinado en el sitio correcto");

                printf("\n\t\t?=Existe el numero pero no esta en la posición");

                printf("\n\t\t0=No esta");

                printf("\n\n\tPRESIONA [ENTER] PARA CONTINUAR CON EL JUEGO");

                break;

        case 2: printf("\n\n\t -Inserta numero: ");

                break;

        case 3: printf("\n\t Error al introducir el numero");

                break;

        case 4: printf("\n\t ");

                break;

        }

}

int comprobarDigitosNum(int numero, int n){

        if (numero / (int)powl(10, n) != 0) return 1;

        else if (numero / (int)powl(10, n - 1) == 0) return 1;

        else{

                return 0;

        }

}

//Mira si coincide y pone los simbolos correspondientes al vector

void comprobarNumeroMastermind(int adivinar[], char resultadoComprobacion[], int numero, int n){

        int cont, cont2, esta;

        for (cont = 0; cont<n; cont++){

                if ((int)(numero / powl(10, n - 1 - cont)) % 10 == adivinar[cont]) resultadoComprobacion[cont] = '*';

                else{

                        esta = 0;

                        for (cont2 = 0; cont2<n; cont2++){

                                if ((int)(numero / powl(10, n - 1 - cont)) % 10 == adivinar[cont2])

                                {

                                        resultadoComprobacion[cont] = '?';

                                        cont2 = n;

                                        esta = 1;

                                }

                                if (cont2 == n - 1 && esta == 0){

                                        resultadoComprobacion[cont] = 'O';

                                }

                        }

                }

        }

}

//Retorna 1 si todos són iguales, y 0 si hay alguno que no lo és.

int todosIguales(int adivinar[], char resultadoComprobacion[], int n){

...

Descargar como (para miembros actualizados) txt (9 Kb) pdf (57 Kb) docx (17 Kb)
Leer 13 páginas más »
Disponible sólo en Clubensayos.com