Algunos abran jugado al "Código Oculto", y si no lo jugaron es un juego de mesa que consiste en adivinar un código secreto (u oculto) que el jugador contrario arme con clavos de colores. Tenes una cantidad determinada de oportunidades, una vez pasadas dichas oportunidades sin haber acertado el código, perdiste. Obviamente hay que buscar acertar el código en la menor cantidad de oportunidades posibles.
Acá les pongo una foto del juego de mesa
En fin, yo lo que quise hacer fue hacer un programa en C para recrear este juego, en vez de utilizar clavos, utilizo números de cuatro cifras.
Para programar use el compilador QTcreator.
A continuación les dejo el código:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
void verificar(int secreto, int *buenos, int *regulares);
int generadorSecreto();
int ingresoNumero();
int main(void)
{
int nBuenos=0;
int nRegulares=0;
//srand(time(NULL));
int numeroSecreto=generadorSecreto();
verificar(numeroSecreto,&nBuenos,&nRegulares);
printf("/n/n" );
return 0;
}
int generadorSecreto()
{
int nro;
nro=rand()%1000;
if(nro<1000)
nro=nro+1000;
return nro;
}
int ingresoNumero()
{
int numeroIngresado;
printf("Ingrese un N entre 1000 y 9999 " );
scanf("%d",&numeroIngresado);
return numeroIngresado;
}
void verificar( int secreto,int *buenos, int *regulares)
{
int uniMilSec,centenaSec,decenaSec,unidadSec,restoSec;
int uniMilIng,centenaIng,decenaIng,unidadIng,restoIng;
int i=0;
int intento;
while((intento=ingresoNumero())!=secreto && i<19)
{
restoIng=intento%1000;
uniMilIng=intento/1000;
centenaIng=restoIng/100;
decenaIng=(restoIng/10)%10;
unidadIng=restoIng%10;
restoSec=secreto%1000;
uniMilSec=secreto/1000;
centenaSec=restoSec/100;
decenaSec=(restoSec/10)%10;
unidadSec=restoSec%10;
if(uniMilIng==uniMilSec)
*buenos=*buenos+1;
if(uniMilIng==centenaSec)
*regulares=*regulares+1;
if(uniMilIng==decenaSec)
*regulares=*regulares+1;
if(uniMilIng==unidadSec)
*regulares=*regulares+1;
if(centenaIng==uniMilSec)
*regulares=*regulares+1;
if(centenaIng==centenaSec)
*buenos=*buenos+1;
if(centenaIng==decenaSec)
*regulares=*regulares+1;
if(centenaIng==unidadSec)
*regulares=*regulares+1;
if(decenaIng==uniMilSec)
*regulares=*regulares+1;
if(decenaIng==centenaSec)
*regulares=*regulares+1;
if(decenaIng==decenaSec)
*buenos=*buenos+1;
if(decenaIng==unidadSec)
*regulares=*regulares+1;
if(unidadIng==uniMilSec)
*regulares=*regulares+1;
if(unidadIng==centenaSec)
*regulares=*regulares+1;
if(unidadIng==decenaSec)
*regulares=*regulares+1;
if(unidadIng==unidadSec)
*buenos=*buenos+1;
printf("/n/tBuenos: %d/n",*buenos);
printf("/n/tRegulares: %d/n",*regulares);
*buenos=0;
*regulares=0;
printf("/n" );
printf("/n/t INTENTO %d/n",i+2);
i++;
}
if(intento==secreto)
{
printf("/n/t++++++++++++++++++++++++++++++/n" );
printf("/n/t FELICITACIONES!!/n" );
if(i==0)
{
printf("/t acertase en el %d intento/n/n",i+1);
printf("/n/t++++++++++++++++++++++++++++++/n" );
}
else
{
printf("/t acertase en %d intentos/n/n",i+1);
printf("/t++++++++++++++++++++++++++++++/n" );
}
}
else
{
printf("/n/t---------------------------/n" );
printf("/n/t PERDISTE!!/n " );
printf("/t intenta de nuevo!!/n " );
printf("/n/t---------------------------/n/n" );
}
}
Bueno, nada más que eso, un pequeño aporte para aquel que le guste o quiera aprender a programar, usar C es un buen comienzo.
El que quiera le paso el archivo en .pro y también la página donde pueden descargar el QTcreator sin inconvenientes.
Saludos!!
Acá les pongo una foto del juego de mesa
En fin, yo lo que quise hacer fue hacer un programa en C para recrear este juego, en vez de utilizar clavos, utilizo números de cuatro cifras.
Para programar use el compilador QTcreator.
A continuación les dejo el código:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
void verificar(int secreto, int *buenos, int *regulares);
int generadorSecreto();
int ingresoNumero();
int main(void)
{
int nBuenos=0;
int nRegulares=0;
//srand(time(NULL));
int numeroSecreto=generadorSecreto();
verificar(numeroSecreto,&nBuenos,&nRegulares);
printf("/n/n" );
return 0;
}
int generadorSecreto()
{
int nro;
nro=rand()%1000;
if(nro<1000)
nro=nro+1000;
return nro;
}
int ingresoNumero()
{
int numeroIngresado;
printf("Ingrese un N entre 1000 y 9999 " );
scanf("%d",&numeroIngresado);
return numeroIngresado;
}
void verificar( int secreto,int *buenos, int *regulares)
{
int uniMilSec,centenaSec,decenaSec,unidadSec,restoSec;
int uniMilIng,centenaIng,decenaIng,unidadIng,restoIng;
int i=0;
int intento;
while((intento=ingresoNumero())!=secreto && i<19)
{
restoIng=intento%1000;
uniMilIng=intento/1000;
centenaIng=restoIng/100;
decenaIng=(restoIng/10)%10;
unidadIng=restoIng%10;
restoSec=secreto%1000;
uniMilSec=secreto/1000;
centenaSec=restoSec/100;
decenaSec=(restoSec/10)%10;
unidadSec=restoSec%10;
if(uniMilIng==uniMilSec)
*buenos=*buenos+1;
if(uniMilIng==centenaSec)
*regulares=*regulares+1;
if(uniMilIng==decenaSec)
*regulares=*regulares+1;
if(uniMilIng==unidadSec)
*regulares=*regulares+1;
if(centenaIng==uniMilSec)
*regulares=*regulares+1;
if(centenaIng==centenaSec)
*buenos=*buenos+1;
if(centenaIng==decenaSec)
*regulares=*regulares+1;
if(centenaIng==unidadSec)
*regulares=*regulares+1;
if(decenaIng==uniMilSec)
*regulares=*regulares+1;
if(decenaIng==centenaSec)
*regulares=*regulares+1;
if(decenaIng==decenaSec)
*buenos=*buenos+1;
if(decenaIng==unidadSec)
*regulares=*regulares+1;
if(unidadIng==uniMilSec)
*regulares=*regulares+1;
if(unidadIng==centenaSec)
*regulares=*regulares+1;
if(unidadIng==decenaSec)
*regulares=*regulares+1;
if(unidadIng==unidadSec)
*buenos=*buenos+1;
printf("/n/tBuenos: %d/n",*buenos);
printf("/n/tRegulares: %d/n",*regulares);
*buenos=0;
*regulares=0;
printf("/n" );
printf("/n/t INTENTO %d/n",i+2);
i++;
}
if(intento==secreto)
{
printf("/n/t++++++++++++++++++++++++++++++/n" );
printf("/n/t FELICITACIONES!!/n" );
if(i==0)
{
printf("/t acertase en el %d intento/n/n",i+1);
printf("/n/t++++++++++++++++++++++++++++++/n" );
}
else
{
printf("/t acertase en %d intentos/n/n",i+1);
printf("/t++++++++++++++++++++++++++++++/n" );
}
}
else
{
printf("/n/t---------------------------/n" );
printf("/n/t PERDISTE!!/n " );
printf("/t intenta de nuevo!!/n " );
printf("/n/t---------------------------/n/n" );
}
}
Bueno, nada más que eso, un pequeño aporte para aquel que le guste o quiera aprender a programar, usar C es un buen comienzo.
El que quiera le paso el archivo en .pro y también la página donde pueden descargar el QTcreator sin inconvenientes.
Saludos!!