Funcionamiento - aigora/twE105_1920-doncomedia GitHub Wiki
Hemos tratado de implementar gran parte de los procedimientos aprendidos en clase.
Funciones
Encontramos la implementación de funciones
principalmente para desarrollar los juegos: Tragaperras, ruleta, blackjack y atrapa un millón. Cada juego mantiene una función donde se basa en el argumento del dinero, su función es desarrollar la aplicación de cada juego mantiendo el dinero que se va decretando según se avanza el juego.
long long int tragaperras(long long int dinero);
long long int ruleta(long long int dinero);
long long int blackjack(long long int dinero);
long long int atrapa(long long int dinero);
Un ejemplo de una de estas funciones es está, la del tragaperras. Como es el caso son funciones bastante extensas que desarrollan el juego en si.
long long int tragaperras(long long int dinero)
{
system("cls");
int a,s,d,q,w,e,z,x,c,i,avances=5;
char p='1';
srand (time(NULL));
a = rand() % 10;
s = rand() % 10;
d = rand() % 10;
printf("Bienvenido a la tragaperras, para ganar dinero los 3 numeros centrales deben coincidir,\n");
printf("el premio sera proporcional a los numeros.\n");
printf("Para hacer avanzar las ruedas hay que pulsar 'a','s' y 'd'\n");
printf("Empezaras jugando con 5 avances\nPara comprar mas pulsa 1\n");
printf("Para jugar pulsa 0\n");
scanf("%s",&p);
switch (p)
{
case'1':
system("cls");
do
{
printf("Tienes %lli$\n",dinero);
printf("Cada avance cuesta 50$\n");
printf("Cuantos quieres?");
scanf("%d",&i);
if (dinero<(50*i))
{
printf("No tienes suficiente dinero\n");
}
else if (dinero>=(50*i))
{
dinero-=(50*i);
avances+=i;
i=0;
}
}while(i!=0);
case '0':
do
{
system("cls");
if (a==-1)
{a=9;}
if (s==-1)
{s=9;}
if (d==-1)
{d=9;}
if (a==10)
{a=0;}
if (s==10)
{s=0;}
if (d==10)
{d=0;}
q=a-1;w=s-1;e=d-1;z=a+1;x=s+1;c=d+1;
if (q==-1)
{q=9;}
if (w==-1)
{w=9;}
if (e==-1)
{e=9;}
if (z==10)
{z=0;}
if (x==10)
{x=0;}
if (c==10)
{c=0;}
printf("|%d | %d | %d|\n\n",q,w,e);
printf("|%d | %d | %d|\n\n",a,s,d);
printf("|%d | %d | %d|\n",z,x,c);
if (a==s && s==d)
{
if (a==0)
{
printf("PREMIO GORDO!!!\nHas ganado 100000$\n");
dinero+=100000;
}
else
{
printf("PREMIO!!!\nHas ganado %d$\n",a*s*d*10);
dinero+=(a*s*d*10);
}
avances=0;
}
if (avances!=0)
{
scanf("%s",&p);
switch (p)
{
case 'a':
a--;
break;
case 's':
s--;
break;
case 'd':
d--;
break;
}
}
avances--;
}
while(p!='1' && avances>=0);
break;
}
Son funciones muy largas así que no adjuntare todas,si quiere comprobar el resto lo podrá hacer mediante este enlace al propio Código. (Pinchando en la palabra "codigo")
Otra función muy importante y en la que encontramos un fichero es esta:
char chiste(int v,char b)
{
srand(time(NULL));
int i;
chistes x[11];
char n;
FILE *pf;
pf = fopen("chistes.txt","r");
if (pf == NULL)
{
printf("Parece que don Comedia no quiere salir a contar uno de sus chistes, lo sentimos.\n");
return -1;
}
else
{
for(i=1;i<11;i++)
{
fscanf(pf, "%d.%[^;];\n",&x[i].num,x[i].chiste);
}
fclose(pf);
}
n= rand() % 11+1;
return printf("%s\n\n\n",x[n]);
}
Se empléa para la asignación aleatoria de un chiste que se encuentra almacenado en el fichero Chistes y es muy util ya que reduce el espacio tanto en las demas funciones como en el código principal
Estructuras
Hemos tratado de utilizar estructuras con typedef struct
,con fin de emplearlas para acortar el código principal y para almacenar diferentes tipos de datos en un identificador.
Este caso es el ejemplo de una estructura con fin de recopilar el registro personal del jugador.
typedef struct
{
int dia,mes,year,edad;
char nombre[30];
long long int dinero;
cartas j[48];
int puntos;
int carta1,carta2;
}jugador;
Ficheros
En cuanto a la implementación de ficheros
:
El primero de ellos se basa en las cartas del blackjack.
En este fichero comprobamos el valor de cada carta y lo aplicamos al juego con fin de llevar acabo y ejecutar la aplicación de forma correcta.
FILE *pf;
pf = fopen("cartas.txt","r");
for(i=0;i<48;i++)
{
fscanf(pf,"%d,%[^\n]\n",&j1.j[i].valor,j1.j[i].carta);
}
fseek(pf, 0, SEEK_SET);
for(i=0;i<48;i++)
{
fscanf(pf,"%d,%[^\n]\n",&j2.j[i].valor,j2.j[i].carta);
}
fclose(pf);
El siguiente fichero implementado es en el juego de atrapa un millón. En este se recopilan todas las preguntas de la aplicación con sus correspondientes apartados. Se presenta una pregunta con sus cuatro posibles respuestas, si se acierta la pregunta, el participante accede a la siguiente
FILE *pf;
pf = fopen("preguntas.txt", "r");
for(i=0;i<10;i++)
fscanf(pf, " %[^\n]\n%[^;];\n%d",p[i].pregunta,p[i].respuesta,&p[i].correcta);
El último fichero es este:
FILE *pf;
pf = fopen("chistes.txt","r");
if (pf == NULL)
{
printf("Parece que don Comedia no quiere salir a contar uno de sus chistes, lo sentimos.\n");
return -1;
}
else
{
for(i=1;i<11;i++)
{
fscanf(pf, "%d.%[^;];\n",&x[i].num,x[i].chiste);
}
fclose(pf);
}
Es el mencionado en el apartado de funciones y en este se recopilan datos acerca de los chistes que van desarrollandose y apareciendo según se progresa en la aplicación. El fichero es este: Chistes.