Dev - C++ - Ayuda juego del BINGO en C++

 
Vista:

Ayuda juego del BINGO en C++

Publicado por Adrian (1 intervención) el 07/08/2020 08:38:24
Estoy tratando de hacer el programa pero se me dificulta el uso de funciones, se lo agradecería mucho quien me ayudara.
Escribir un programa de juego de azar (juego de apuesta) que simule el "juego del BINGO", el cual requiere de números aleatorios. Escribir cada combinación de letranúmero según sea sacada (generada). Asegurarse que una combinación no se saca más de una vez, y que cada una de las letras de BINGO corresponde a un cierto
rango de números, como se indica a continuación:
B: 1-15
I: 16-30
N: 31-45
G: 46-60
O: 61-75
Cada jugador tendrá una carta con cinco columnas, etiquetadas B-I-N-G-O. Cada columna contendrá cinco números, dentro de los rangos indicados arriba. Dos jugadores no pueden tener cartas iguales. El primer jugador que tenga una línea de números sacados (en vertical, horizontal o en diagonal) gana.
NOTA: A veces la posición central de cada carta se cubre antes de comenzar el juego (una jugada "gratis"), y también se juega a que deben salir todos los números de la carta para ganar.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-2
Responder

Ayuda juego del BINGO en C++

Publicado por Hector (1 intervención) el 06/01/2024 01:44:16
Hola. Espero te sirva. El código en C++ es el siguiente:
______________________________________________________


#include <iostream>
#include <cstdlib>
#include <ctime>

const int FILAS = 5;
const int COLUMNAS = 5;
const int MAX_CARTONES = 100;

// Función para imprimir un cartón de Bingo
void ImprimirCarton(int carton[FILAS][COLUMNAS]) {
std::cout << "-------------------" << std::endl;
for (int i = 0; i < FILAS; ++i) {
for (int j = 0; j < COLUMNAS; ++j) {
if (j == 2 && i == 2) {
std::cout << " __ ";
} else {
std::cout << " " << carton[i][j] << " ";
}
}
std::cout << std::endl;
}
std::cout << " " << std::endl;
}

// Función para generar un número aleatorio en un rango sin repetir
int generarNumeroSinRepetir(int numeros[], int limite) {
int numero;
bool repetido;
do {
numero = rand() % limite + 1; // Generar número aleatorio en el rango
repetido = false;
for (int i = 0; i < limite; ++i) {
if (numeros[i] == numero) {
repetido = true;
break;
}
}
} while (repetido);
return numero;
}

// Función para llenar un cartón de Bingo con números aleatorios
void llenarCarton(int carton[FILAS][COLUMNAS]) {
int numeros[FILAS * COLUMNAS] = {0}; // Arreglo para verificar números repetidos

// Llenar el cartón con números aleatorios por cada columna
for (int j = 0; j < COLUMNAS; ++j) {
int limiteSuperior = (j + 1) * 15;
for (int i = 0; i < FILAS; ++i) {
carton[i][j] = generarNumeroSinRepetir(numeros, limiteSuperior);
numeros[i * COLUMNAS + j] = carton[i][j];
}
}
}

int main() {
int cantidadCartones;

// Semilla para números aleatorios basada en el tiempo actual
srand(time(0));

// Ingreso de la cantidad de cartones a imprimir
std::cout << "Ingrese la cantidad de cartones de Bingo a imprimir (maximo 100): ";
std::cin >> cantidadCartones;

// Verificar límite de cartones a imprimir
if (cantidadCartones <= 0 || cantidadCartones > MAX_CARTONES) {
std::cout << "Cantidad de cartones no valida. Debe ser entre 1 y 100." << std::endl;
return 1;
}

// Imprimir los cartones de Bingo
for (int k = 0; k < cantidadCartones; ++k) {
int carton[FILAS][COLUMNAS] = {{0}}; // Inicializar el cartón con ceros
llenarCarton(carton);
std::cout << "Carton " << k + 1 << ":" << std::endl;
ImprimirCarton(carton);
}

return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar