C/Visual C - Necesito Ayuda con un programa en C++

 
Vista:

Necesito Ayuda con un programa en C++

Publicado por Nathalia Morales (1 intervención) el 28/02/2003 00:48:13
Porfavor!! necesito ayuda urgente con un programa en C++, porfavor lo necesito Urgente....Gracias por su ayuda!!!
El programa se los describo a continuaciòn...
Juego de Memoria
Consiste en una matriz que contiene parejas de números, imágenes o dibujos. Las parejas están ocultas de tal forma que el usuario selecciona una celda de la matriz y se descubre su contenido. El juego consiste en descubrir las parejas de celdas . Si el usuario no encuentra la pareja de la ficha descubierta esta se oculta y el juego comienza. Si la pareja es encontrada las dos celdas se descubren .
El juego termina al completarse el tablero con todas las parejas descubiertas.
La posición de las parejas en la matriz debe ser generada de forma aleatoria. Así al terminar el juego se podrá realizar otro donde las posiciones de las parejas hayan cambiado.

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

Juego de memoria en C++

Publicado por Alejandro (1153 intervenciones) el 06/05/2025 23:08:25
A continuación, te presento un ejemplo básico de un juego de memoria en C++. Este programa utiliza una matriz para representar las celdas del juego, donde se ocultan parejas de números. El usuario puede seleccionar celdas para intentar encontrar las parejas. El juego termina cuando todas las parejas han sido descubiertas.

Ejemplo de código



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
#include <iostream>
#include <vector>
#include <ctime>
#include <cstdlib>
 
using namespace std;
 
const int SIZE = 4; // Tamaño de la matriz (4x4)
vector<vector<int>> board(SIZE, vector<int>(SIZE));
vector<vector<bool>> revealed(SIZE, vector<bool>(SIZE, false));
 
// Función para inicializar el tablero con parejas de números
void initializeBoard() {
    vector<int> numbers;
    for (int i = 1; i <= (SIZE * SIZE) / 2; ++i) {
        numbers.push_back(i);
        numbers.push_back(i);
    }
 
    // Mezclar los números
    srand(static_cast<unsigned int>(time(0)));
    random_shuffle(numbers.begin(), numbers.end());
 
    // Llenar el tablero
    for (int i = 0; i < SIZE; ++i) {
        for (int j = 0; j < SIZE; ++j) {
            board[i][j] = numbers[i * SIZE + j];
        }
    }
}
 
// Función para mostrar el tablero
void displayBoard() {
    cout << "Tablero:\n";
    for (int i = 0; i < SIZE; ++i) {
        for (int j = 0; j < SIZE; ++j) {
            if (revealed[i][j]) {
                cout << board[i][j] << " ";
            } else {
                cout << "* "; // Celda oculta
            }
        }
        cout << endl;
    }
}
 
// Función principal del juego
void playGame() {
    int pairsFound = 0;
    int totalPairs = (SIZE * SIZE) / 2;
 
    while (pairsFound < totalPairs) {
        displayBoard();
 
        int x1, y1, x2, y2;
        cout << "Selecciona la primera celda (fila columna): ";
        cin >> x1 >> y1;
        cout << "Selecciona la segunda celda (fila columna): ";
        cin >> x2 >> y2;
 
        // Verificar si las celdas son válidas
        if (x1 < 0 || x1 >= SIZE || y1 < 0 || y1 >= SIZE ||
            x2 < 0 || x2 >= SIZE || y2 < 0 || y2 >= SIZE ||
            (x1 == x2 && y1 == y2) || revealed[x1][y1] || revealed[x2][y2]) {
            cout << "Selección inválida. Intenta de nuevo.\n";
            continue;
        }
 
        // Revelar las celdas seleccionadas
        revealed[x1][y1] = true;
        revealed[x2][y2] = true;
 
        // Comprobar si son iguales
        if (board[x1][y1] == board[x2][y2]) {
            cout << "¡Encontraste una pareja!\n";
            pairsFound++;
        } else {
            cout << "No son iguales. Intenta de nuevo.\n";
            revealed[x1][y1] = false; // Ocultar de nuevo
            revealed[x2][y2] = false; // Ocultar de nuevo
        }
    }
 
    cout << "¡Felicidades! Has encontrado todas las parejas.\n";
}
 
int main() {
    initializeBoard();
    playGame();
    return 0;
}

Explicación del código:


1. Inicialización del tablero:
- Se crea un vector de números que contiene parejas de números del 1 al 8 (en un tablero de 4x4).
- Los números se mezclan aleatoriamente y se colocan en la matriz `board`.

2. Mostrar el tablero:
- La función `displayBoard` muestra el estado actual del tablero, revelando los números descubiertos y ocultando los demás con un asterisco.

3. Juego principal:
- En el bucle principal, el jugador selecciona dos celdas. Se verifica si las selecciones son válidas.
- Si las celdas seleccionadas son iguales, se incrementa el contador de parejas encontradas. Si no, se ocultan nuevamente.

4. Finalización del juego:
- El juego termina cuando se encuentran todas las parejas, mostrando un mensaje de felicitación.

Consideraciones:


- Este es un ejemplo básico y puede ser mejorado con características adicionales, como un temporizador, un sistema de puntuación, o una interfaz gráfica.
- Asegúrate de compilar el código en un entorno que soporte C++ (como g++, Visual Studio, etc.).

¡Buena suerte con tu juego de memoria, Nathalia!
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