Hola,
Tengo que hacer una practica sobre el juego Mastermind en C, y pff ando perdidisimo, mas que nada porque acabo de dar los arrays, y a mi profesora no se le ocurre otra cosa que mandarnos estas practicas.
La practica en cuestión es la siguiente:
Realiza un programa en C para jugar al juego del MASTER MIND.
El programa genera una combinación de 4 caracteres aleatorios (6 letras de la A – F sin repetición) que deberá ser acertada por el jugador en un número limitado de propuestas.
Cada vez que el jugador realice una propuesta de combinación, la máquina le informará en los siguientes términos.
COLOCADAS = X DESCOLOCADAS = Y
Se consideran colocadas aquellas letras tanto en valor como en posición exacta que ocupan dentro de la secuencia.
Se consideran descolocadas aquellas letras que aparecen en la secuencia pero no en la posición que el jugador ha propuesto.
Se deben mantener en pantalla las jugadas realizadas y los resultados de las mismas mientras dure la partida, ya que, en buena lógica, cada combinación propuesta se basará en los resultados obtenidos en las combinaciones anteriores.
Finalizada la partida el programa preguntará:
OTRA PARTIDA? (S/N)
Hasta ahora lo que llevo hecho es esto:
/*MASTERMIND*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
time_t t;
int i,j,pos;
char color[6]={'A','B','C','D','E','F'};
char combi[4]={' ',' ',' ',' '};
pos=0;
srand((unsigned)time(&t));
for(i=0;i<4;i++)
{
do
{
pos=rand()%6;
}while (combi[pos]==color[i] && combi[pos]==color[i] && combi[pos]==color[i] && combi[pos]==color[i] && combi[pos]==color[i]);
combi[i]=color[pos];
}
printf("\nCombinacion: ");
for(j=0;j<4;j++) printf("%c ",combi[j]);
printf("\n\n");
system("pause");
return 0;
}
Para lo poco que llevo, me sigue generando letras repetidas, cuando me las deberia de comprobar y no las comprueba :S.