Skip to content
This repository has been archived by the owner on Jul 10, 2019. It is now read-only.
dledesma11 edited this page May 21, 2019 · 4 revisions

Ruleta virtual

Con este trabajo se ha recreado un ruleta como la que hay en cualquier casa de apuestas o casino. El juego consiste en adivinar un número al azar entre el 0 y el 37. El programa permite introducir varios jugadores, elegir en el menú de opciones, realizar diferentes tipos de apuestas, ver en todo momento cuanto dinero le queda a cada jugador y guardar su puntuación en un ranking.

Objetivos principales

El objetivo principal ha sido en todo momento recrear al máximo posible el funcionamiento de un juego de ruleta. Se ha conseguido programar el juego en sí: generar un número aleatorio del 0 al 37, permitir a varios jugadores hacer apuestas en una misma ronda, elegir entre cuatro tipos diferentes de apuestas y generar premios dependiendo de la apuesta. Otro de los objetivos que se puso al principio del trabajo era el que el jugador o jugadores pudiesen mirar en todo momento cuanto dinero les quedaba.

En cuanto al resultado final, se han podido cumplir todos los objetivos añadiendo además otras funciones, como la posibilidad de consultar un ranking histórico de todos los jugadores que han jugado hasta ese momento y el dinero que ganaron en la partida que jugaron.

Funciones que realiza la ruleta

  • Menú de opciones: Nada mas entrar en el programa pide al usuario introducir el número de jugadores y un apodo (se especifica que debe de tener un máximo de 30 caracteres y si no es así se vuelve a preguntar), a continuación aparece el menú de la aplicación con las tres grandes funciones a elegir: jugar, ver dinero, ver ranking.
  • Hacer apuestas y jugar: Esta es la opción principal del programa. Permite realizar apuestas de cuatro tipos diferentes explicados en el programa, apostar una cantidad decimal siempre menor o igual a la cantidad que le queda a ese jugador y aparece un mensaje con el usuario o usuarios ganadores, si se da el caso de que gana alguno.
  • Gestionar dinero de las apuestas: Permite a los jugadores ver cuanto dinero le queda a cada uno y aparece un mensaje explicando que si a un jugador no le queda dinero, el programa le impedirá seguir jugando.
  • Ver ranking histórico: En esta opción, los usuarios podrán ver las puntuaciones de los jugadores que han jugado hasta esa partida, indicando además que si es la primera partida de ese jugador no aparecerá en el ranking hasta que termine la partida. Esta opción se ha realizado con ficheros.

Ficheros

Se han utilizado ficheros para la opción del ranking. Al principio del programa se abre un fichero de lectura (ya existente) y se guardan en variables el nombre y el dinero de los jugadores que aparecen en el fichero. Al finalizar el programa se vuelve a abrir el fichero, pero esta vez en modo escritura para guardar en el los nuevos puntos de los jugadores que ya había en el ranking (solo en el caso de que ese jugador alcance una mejor puntuación que la ya existente). En el caso de que haya un nuevo jugador que no existe en el fichero, también lo incluye por primera vez.

Se ha utilizado el método burbuja, con las variables del nombre y dinero que se van a introducir en el fichero, para ordenar de forma ascendente:

        for (j=0;j<=numRanking-2;j++)
                if (fichero[j].dinero>fichero[j+1].dinero) 
                {
                    auxiliar=fichero[j].dinero; 
                    strcpy(auxiliarN, fichero[j].nombre);
                    fichero[j].dinero=fichero[j+1].dinero; 
                    strcpy(fichero[j].nombre,fichero[j+1].nombre);
                    fichero[j+1].dinero=auxiliar;
                    strcpy(fichero[j+1].nombre,auxiliarN);
                }

En la opción de ver el ranking histórico, se abre el fichero en modo escritura y se pasa por la consola el contenido del fichero hasta ese momento. Es por esto por lo que, hasta que no acabe la partida y se cierre el programa no aparecerán los nuevos jugadores, porque el bloque donde se abre el fichero para escribir el nombre y dinero de todos los jugadores de esa partida está al final de todo el programa. El bloque al que se hace referencia:

    for(i=0;i<numRanking;i++)
	{
		fprintf(RankingHistorico,"%s %g\n",fichero[i].nombre,fichero[i].dinero);
	}
	fclose(RankingHistorico);

El fichero que se crea es muy simple, una columna con los nombres o apodos de los jugadores y otra columna con su puntuación o dinero.

Clone this wiki locally