Implementación de un Simulador de Juego de Dados en Java
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 3,95 KB
A continuación, se presenta el código fuente corregido y estructurado para un sistema de simulación de juegos de azar basado en el lanzamiento de dados, utilizando la lógica de probabilidades y apuestas.
Lógica del Juego: Función gano_la_apuesta
Esta sección del código se encarga de evaluar la suma de los dados y determinar si el resultado es una victoria o una derrota según las reglas establecidas.
public class Juego {
/**
* Función que determina si el jugador gana o pierde la apuesta.
* @param a Valor del primer dado.
* @param b Valor del segundo dado.
* @return 1 si gana, 0 si pierde.
*/
int gano_la_apuesta(int a, int b) {
int val = 0, val2, falso = 0, verdadero = 1, validador = 0;
val = a + b;
// Primero, se comprueba si la suma de los dados corresponde a uno de los dos primeros casos.
if (val == 7 || val == 11 || val == 2 || val == 12 || val == 3) {
if (val == 7 || val == 11) {
// Si se cumple, el jugador gana y se retorna verdadero (1).
return (verdadero);
}
if (val == 2 || val == 12 || val == 3) {
// Si se cumple, el jugador pierde y se retorna falso (0).
return (falso);
}
} else {
// Si no se cumple ninguno de los dos primeros casos, entonces se cumple el tercero.
do {
// Se genera un nuevo número mediante lanzamientos aleatorios.
a = new Random().nextInt(6) + 1;
b = new Random().nextInt(6) + 1;
val2 = a + b;
// Se comprueba cualquiera de los dos casos: ganar o perder.
if (val2 == val || val2 == 7) {
validador = 1;
}
} while (validador == 0); // El validador cambiará a 1 si se cumple una de las dos condiciones.
if (val2 == val) {
// Aquí el jugador gana según la condición del enunciado.
return (verdadero);
}
if (val2 == 7) {
// Aquí el jugador pierde según el enunciado.
return (falso);
}
}
return falso;
}Gestión de Partidas: Función crear_juego
Esta función permite ejecutar múltiples iteraciones del juego para obtener estadísticas sobre las victorias obtenidas.
int crear_juego(int c) {
int numero, numero2, i, cont = 0, gano;
// Bucle que depende de las veces que se quiera jugar.
for (i = 1; i < c; i++) {
// Se genera el primer y segundo número aleatorio.
// (Nota: se pueden utilizar otras funciones para el random).
numero = new Random().nextInt(6) + 1;
numero2 = new Random().nextInt(6) + 1;
// Se llama a la función que determinará si se gana o no.
// Retorna 0 si se perdió y 1 si se ganó.
gano = gano_la_apuesta(numero, numero2);
if (gano == 1) {
// Si retorna 1 (ganaste), se suma 1 al contador.
cont++;
}
}
return (cont);
}Punto de Entrada: Método main
El inicio del programa gestiona la interacción con el usuario, solicitando la cantidad de juegos y mostrando los resultados finales.
/* INICIO DEL PROGRAMA */
public static void main(String args[]) {
int cant;
StdOut.println("Ingrese la cantidad de juegos a realizar: ");
cant = StdIn.readInt();
// Imprime la cantidad de juegos ganados y llama a la función que los genera.
StdOut.println("La cantidad de juegos ganados es: " + new Juego().crear_juego(cant));
int tecla = 0;
StdOut.println("Pulse una tecla para continuar: " + tecla);
tecla = StdIn.readInt();
}
}