C/Visual C - Programa para seleccionar parejas de colores

 
Vista:

Programa para seleccionar parejas de colores

Publicado por elena (1 intervención) el 09/07/2002 00:36:44
Hacer un concentre que muestre en pantalla 3 ileras de tres cuadros dentro del cuadro debe ir un numero 1,2,3,4,5,6,7,8,9 el usuario debe elejir dos numeros cuando el usuario elija los numeros el cuadro debe mostrar un color cada cuadro tiene una pareja del mismo color y los colores deben ser aleatorios, y debe tener tres oportunidades de jugar cuando pierda,y mostrar en pantalla si gana o pierde
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 concentración con cuadrados y números en C

Publicado por Alejandro (913 intervenciones) el 06/03/2025 18:13:10
A continuación, te presento un ejemplo básico de un juego de concentración en C. Este juego muestra una cuadrícula de 3x3 con números del 1 al 9. El usuario debe elegir dos números, y si son iguales, los cuadros se llenarán con un color aleatorio. El juego permite tres oportunidades para jugar y muestra si el usuario gana o pierde.

Este código utiliza la biblioteca `graphics.h`, así que asegúrate de tenerla disponible en tu entorno de desarrollo.

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
#include <graphics.h>
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
 
#define SIZE 3
 
void drawGrid(int grid[SIZE][SIZE], int revealed[SIZE][SIZE]) {
    int x, y;
    for (int i = 0; i < SIZE; i++) {
        for (int j = 0; j < SIZE; j++) {
            x = j * 100 + 50; // Posición X
            y = i * 100 + 50; // Posición Y
            if (revealed[i][j]) {
                setfillstyle(SOLID_FILL, grid[i][j]);
                floodfill(x + 1, y + 1, WHITE);
            } else {
                rectangle(x, y, x + 100, y + 100);
            }
            if (revealed[i][j]) {
                char num[2];
                sprintf(num, "%d", (i * SIZE + j + 1));
                outtextxy(x + 40, y + 40, num);
            }
        }
    }
}
 
int main() {
    int gd = DETECT, gm;
    initgraph(&gd, &gm, "C:\\Turboc3\\BGI"); // Cambia la ruta según tu instalación
 
    srand(time(NULL)); // Inicializa la semilla para números aleatorios
 
    int grid[SIZE][SIZE];
    int revealed[SIZE][SIZE] = {0}; // 0 = oculto, 1 = revelado
    int attempts = 3;
    int pairsFound = 0;
 
    // Generar colores aleatorios para cada número
    for (int i = 0; i < SIZE; i++) {
        for (int j = 0; j < SIZE; j++) {
            grid[i][j] = (rand() % 15) + 1; // Colores de 1 a 15
        }
    }
 
    while (attempts > 0) {
        drawGrid(grid, revealed);
        int firstChoice, secondChoice;
        printf("Elige dos números (1-9): ");
        scanf("%d %d", &firstChoice,&secondChoice);
 
        // Convertir a índices de matriz
        int firstRow = (firstChoice - 1) / SIZE;
        int firstCol = (firstChoice - 1) % SIZE;
        int secondRow = (secondChoice - 1) / SIZE;
        int secondCol = (secondChoice - 1) % SIZE;
 
        // Revelar elecciones
        revealed[firstRow][firstCol] = 1;
        revealed[secondRow][secondCol] = 1;
 
        drawGrid(grid, revealed);
        delay(1000); // Esperar un segundo para mostrar las elecciones
 
        // Comprobar si son iguales
        if (grid[firstRow][firstCol] == grid[secondRow][secondCol]) {
            pairsFound++;
            printf("¡Encontraste un par!\n");
        } else] = 0; // Ocultar de nuevo
            revealed[secondRow][secondCol] = 0; // Ocultar de nuevo
            printf("No son iguales. Intenta de nuevo.\n");
            attempts--;
        }
 
        if (pairsFound == 4) {
            printf("¡Ganaste! Encontraste todos los pares.\n");
            break;
        }
    }
 
    if (attempts == 0) {
        printf("Perdiste. Intenta de nuevo.\n");
    }
 
    getch();
    closegraph();
    return 0;
}

Instrucciones:


1. Asegúrate de tener la biblioteca `graphics.h` disponible en tu entorno de desarrollo. Esta biblioteca es parte de Turbo C/C++ y algunos compiladores de C.
2. Cambia la ruta en `initgraph` según la ubicación de tus archivos BGI.
3. Compila y ejecuta el código. El juego te pedirá que elijas dos números del 1 al 9.

Notas:


- Este código es un ejemplo básico y puede ser mejorado. Por ejemplo, puedes agregar más validaciones para las entradas del usuario o mejorar la interfaz gráfica.
- Asegúrate de que el entorno de desarrollo que estás utilizando soporte la biblioteca `graphics.h`.

¡Espero que te diviertas jugando, Elena!
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