C/Visual C - ayuda programa en c++

 
Vista:

ayuda programa en c++

Publicado por alex (1 intervención) el 05/02/2003 10:01:17
Necesito ayuda urgentemente.: Para este programa en C++. Por favor ayundenme que ya no se como continuar con el codigo para el sig.programa.:

Debemos realizar un juego de bingo en c++. Nos sería muy util que nos dejaras algo de código fuente (indiferentemente del tipo de bingo) , es para unas practicas muy importantes. Gracias.

ejercicio.:

El programa a desarrollar debe simular el juego del bingo con arreglo a las siguientes condiciones:

1. Se pregunta primero el número de cartones que desean generar (max 10)

2. los cartones constan de 15 numeros elegidos al azar del 1 a 90.

3. Todos los cartones deben de ser diferentes entre si, de forma que se diferencien al menos en 2 numeros.
Una vez generados los cartones, empieza el juego.:

1. Se van extrayendo bolas al azar de 1 a 90, sin repetición obviamente, es decir, la bola extraida no puede volver a salir y se va marcando o tachando en el cartón, donde dicha bola esta contenida.

2. El programa debe detectar que carton gana "linea", los cinco de una linea horizontal y, bingo, el carton completo.


Nos sería muy util por favor, te lo agradecemos. aunque sólo sea información o ayuda. Saludos. Gracias

Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Implementación de un juego de Bingo en C++

Publicado por Alejandro (980 intervenciones) el 02/05/2025 23:28:26
A continuación, te presento un ejemplo de código en C++ que simula un juego de Bingo según las especificaciones que has proporcionado. Este código incluye la generación de cartones, la extracción de bolas y la detección de ganadores.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#include <iostream>
#include <vector>
#include <set>
#include <cstdlib>
#include <ctime>
#include <algorithm>
 
using namespace std;
 
const int MAX_CARTONES = 10;
const int NUMEROS_POR_CARTON = 15;
const int MAX_NUMERO = 90;
 
struct Carton {
    vector<int> numeros;
    vector<bool> marcados;
 
    Carton() : marcados(NUMEROS_POR_CARTON, false) {}
};
 
// Función para generar un número aleatorio único
int generarNumeroUnico(set<int>& numerosGenerados) {
    int numero;
    do {
        numero = rand() % MAX_NUMERO + 1;
    } while (numerosGenerados.find(numero) != numerosGenerados.end());
    numerosGenerados.insert(numero);
    return numero;
}
 
// Función para generar un carton de bingo
Carton generarCarton(set<int>& numerosGenerados) {
    Carton carton;
    while (carton.numeros.size() < NUMEROS_POR_CARTON) {
        int numero = generarNumeroUnico(numerosGenerados);
        carton.numeros.push_back(numero);
    }
    return carton;
}
 
// Función para mostrar el carton
void mostrarCarton(const Carton& carton) {
    for (int i = 0; i < NUMEROS_POR_CARTON; ++i) {
        if (carton.marcados[i]) {
            cout << "[X] ";
        } else {
            cout << carton.numeros[i] << " ";
        }
    }
    cout << endl;
}
 
// Función para verificar si hay una línea
bool hayLinea(const Carton& carton) {
    for (int i = 0; i < NUMEROS_POR_CARTON; ++i) {
        if (!carton.marcados[i]) {
            return false;
        }
    }
    return true;
}
 
// Función principal
int main() {
    srand(static_cast<unsigned int>(time(0))); // Inicializa la semilla para números aleatorios
    int numCartones;
    cout << "Ingrese el número de cartones a generar (max 10): ";
    cin >> numCartones;
 
    if (numCartones < 1 || numCartones > MAX_CARTONES) {
        cout << "Número de cartones inválido." << endl;
        return 1;
    }
 
    set<int> numerosGenerados;
    vector<Carton> cartones;
 
    // Generar cartones
    for (int i = 0; i < numCartones; ++i) {
        Carton carton = generarCarton(numerosGenerados);
        cartones.push_back(carton);
    }
 
    // Comenzar el juego
    set<int> bolasExtraidas;
    while (true) {
        int bola = generarNumeroUnico(bolasExtraidas);
        cout << "Bola extraída: " << bola << endl;
 
        // Marcar la bola en los cartones
        for (int i = 0; i < cartones.size(); ++i) {
            for (int j = 0; j < NUMEROS_POR_CARTON; ++j) {
 if (cartones[i].numeros[j] == bola) {
                    cartones[i].marcados[j] = true;
                }
            }
        }
 
        // Mostrar cartones y verificar ganadores
        for (int i = 0; i < cartones.size(); ++i) {
            cout << "Cartón " << (i + 1) << ": ";
            mostrarCarton(cartones[i]);
            if (hayLinea(cartones[i])) {
                cout << "¡Cartón " << (i + 1) << " ha ganado una línea!" << endl;
            }
        }
 
        // Verificar si hay un bingo
        // (Puedes implementar la lógica para verificar el bingo completo aquí)
 
        // Pausa para continuar
        cout << "Presione Enter para continuar...";
        cin.ignore();
        cin.get();
    }
 
    return 0;
}

Explicación del código:



1. Estructura `Carton`: Define un cartón de bingo que contiene un vector de números y un vector de booleanos para marcar los números.

2. Funciones:
- `generarNumeroUnico`: Genera un número aleatorio único que no ha sido generado anteriormente.
- `generarCarton`: Crea un cartón de bingo con 15 números únicos.
- `mostrarCarton`: Muestra el cartón en la consola, marcando los números que han sido extraídos.
- `hayLinea`: Verifica si todos los números de un cartón han sido marcados.

3. Función `main`:
- Solicita al usuario el número de cartones a generar.
- Genera los cartones asegurando que los números sean únicos.
- Comienza el juego extrayendo bolas al azar y marcando los números en los cartones.
- Muestra los cartones y verifica si hay ganadores.

Notas:


- Este código es un punto de partida y puede ser mejorado. Por ejemplo, puedes implementar la lógica para verificar un "bingo" completo.
- Asegúrate de compilar el código en un entorno que soporte C++ y que tengas configurado el compilador correctamente.

¡Buena suerte con tu práctica, tocayo!
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