el programa es el siguiente:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 8
#define min 4
void azar(int dificultad, float solucion[MAX])
{
int i;
for(i=0;i<dificultad;i++) //generamos el numero al azar
//lo dividimos entre 9 y le sumamos 1
//de forma que nos quedan numeros
{ srand (time(NULL)); //entre el 1 y el 9
solucion[i]=(rand()%9)+1;
}
}
int seleccione_dificultad()
{
int dificultad;//funcion para pedir la dificultad al usuario
do
{
printf("Introduce la dificultad(menor que %i y mayor que %i): ", MAX,min);
scanf("%i", &dificultad);
}
while ((dificultad < min) || (dificultad > MAX));
return dificultad;
}
void pedir_solucion(float numeros[MAX], int dificil)
{//funcion para pedir al usuario su posible solucion
int i;
for (i = 0;i<dificil; i++)
{
printf("Introduce el elemento de la posicion %i: ", i);
scanf("%f", &numeros[i]);
}
}
int correcionposicion(float numeros[MAX],float solucion[MAX],int dificultad)
{ int i,j,flag;//funcion para comprobar si hay numeros bien colocados
for(i=0,flag=0;i<dificultad;i++)
{
if (numeros[i]==solucion[i])
{
flag++;
}
else
{
flag=flag;
}
}
return flag;
}
int correcionsuma(float solucion[MAX],float numeros[MAX], int dificultad)
{ int i,j,k,flag;//Funcion para comprobar si el numero esta en la solucion
flag=0;
for (i=0;i<dificultad;i++)
{
for(j=0;j<=i;j++)
{
if (numeros[i]!=numeros[j])
{
for (k=0;k<dificultad;k++)
{
if (numeros[i]==solucion[k])
{
flag++;
}
else
{
flag=flag;
}
}
}
else
{
if(i=0)
{
if (numeros[i]==solucion[k])
{
flag++;
}
else
{
flag=flag;
}
}
else
{
flag=flag;
}
}
}
}
return flag;
}
int main()
{
float numeros[MAX],solucion[MAX];
int dificultad,i,respuestaposicion,respuestasuma,inten tos;
azar(dificultad,solucion);
dificultad=seleccione_dificultad();
pedir_solucion(numeros,dificultad);
intentos=3*dificultad;
for(i=0;i<intentos;i++)
{
respuestasuma=correcionsuma(numeros,solucion,dific ultad);
respuestaposicion=correcionposicion(numeros,soluci on,dificultad);
if (respuestaposicion!=dificultad)
{
printf("Has fallado. Has acertado %d, de los cuales %d están en su sitio",respuestasuma,respuestaposicion);
}
else
{
break;
}
}
if(respuestaposicion==dificultad)
{
printf("Has ganado en %d movimientos.",i);
}
else
{
printf("HAS PERDIDO");
}
return 0;
}