toque y fama
Publicado por karaks (1 intervención) el 04/12/2002 13:50:18
quien sabe como puedo hacer el juego toque y fama en c con punteros o quien lo ha visto.... please
Valora esta pregunta


0
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define LONGITUD 4 // Longitud de la secuencia
void generar_secuencia(int *secuencia) {
int i, j;
for (i = 0; i < LONGITUD; i++) {
int num;
int repetido;
do {
repetido = 0;
num = rand() % 10; // Números del 0 al 9
for (j = 0; j < i; j++) {
if (secuencia[j] == num) {
repetido = 1; // Número ya existe
break;
}
}
} while (repetido);
secuencia[i] = num;
}
}
void comparar(int *secuencia, int *intento, int *toques, int *famas) {
*toques = 0;
*famas = 0;
int i, j;
int cont_secuencia[10] = {0}; // Contador para la secuencia
int cont_intento[10] = {0}; // Contador para el intento
for (i = 0; i < LONGITUD; i++) {
if (secuencia[i] == intento[i]) {
(*famas)++;
} else {
cont_secuencia[secuencia[i]]++;
cont_intento[intento[i]]++;
}
}
for (i = 0; i < 10; i++) {
*toques += (cont_secuencia[i] < cont_intento[i]) ? cont_secuencia[i] : cont_intento[i];
}
}
int main() {
srand(time(NULL));
int secuencia[LONGITUD];
generar_secuencia(secuencia);
int max_intentos = 10; // Número máximo de intentos
for (int i = 0; i < max_intentos; i++) {
int intento[LONGITUD];
printf("Intento %d: Ingresa %d números (0-9): ", i + 1, LONGITUD);
for (int j = 0; j < LONGITUD; j++) {
scanf("%d", &intento[j]);
}
int toques, famas;
comparar(secuencia, intento, &toques, &famas);
printf("Toques: %d, Famas: %d\n", toques, famas);
if (famas == LONGITUD) {
printf("¡Felicidades! Has adivinado la secuencia.\n");
break;
}
}
return 0;
}