#include #include #include #define MAXLINE 11 struct fyr { char * guess; int Fijos, Regulares; }; char * GenSecret(int ncifras); char * GetLine(); int IsBadNumber(char * s); int FyR(char * secret, struct fyr * result); int main() { char * secret; int i,err, ncifras=-1; struct fyr result; printf("\nBienvendio al juego de los Fijos y Regulares\n\n"); printf("Cuántas cifras querés que tenga el número secreto (>0 y <11)?"); scanf("%d",&ncifras); while (ncifras <1 || ncifras > 10) { printf("Número de cifras incorrecto\n"); printf("por favor ingrese un número entre 1 y 10\n"); scanf("%d",&ncifras); } /* Genero un número secreto de "ncifras" cifras distintas*/ if ((secret = GenSecret(ncifras))==NULL) { perror("No se pudo allocar número secreto"); exit(1); } printf("Adiviná el número secreto de %d cifras\n",ncifras); i=1; do { printf("Intento %d: ",i); result.guess = GetLine(); err = FyR(secret,&result); if (err) { printf("Número invalido\n"); printf("Intentelo nuevamente\n"); } else { printf(" %d Fijos y %d Regulares\n",result.Fijos,result.Regulares); i++; } } while (result.Fijos != ncifras); printf ("Numero %s adivinado en %d intentos!!\n",secret, i-1); return 0; }