#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SIZE 4 // Tamaño del tablero (4x4)
void inicializarTablero(char tablero[SIZE][SIZE], char cartas[SIZE*SIZE]) { int index = 0;
for (int i = 0; i < SIZE; i++) { for (int j = 0; j < SIZE; j++) { tablero[j] = '*'; // Inicializar con cartas ocultas
}
}
// Barajar las cartas
for (int i = 0; i < SIZE * SIZE; i++) { int j = rand() % (SIZE * SIZE);
char temp = cartas[i];
cartas[i] = cartas[j];
cartas[j] = temp;
}
// Colocar las cartas en el tablero
index = 0;
for (int i = 0; i < SIZE; i++) { for (int j = 0; j < SIZE; j++) { tablero[i][j] = cartas[index++];
}
}
}
void mostrarTablero(char tablero[SIZE][SIZE]) { printf("Tablero:\n"); for (int i = 0; i < SIZE; i++) { for (int j = 0; j < SIZE; j++) { printf("%c ", tablero[i][j]); }
printf("\n"); }
}
int main() { char tablero[SIZE][SIZE];
char cartas[SIZE * SIZE] ={'A', 'A', 'B', 'B', 'C', 'C', 'D', 'D', 'E', 'E', 'F', 'F', 'G', 'G', 'H', 'H'}; int paresEncontrados = 0;
int totalPares = SIZE * SIZE / 2;
int jugador = 1;
srand(time(NULL)); // Inicializar la semilla para la aleatoriedad
inicializarTablero(tablero, cartas);
while (paresEncontrados < totalPares) { mostrarTablero(tablero);
printf("Jugador %d, elige dos cartas (fila columna):\n", jugador);
int fila1, col1, fila2, col2;
printf("Primera carta: "); scanf("%d %d", &fila1, &col1); printf("Segunda carta: "); scanf("%d %d", &fila2, &col2);
// Verificar si las cartas son iguales
if (tablero[fila1][col1] == tablero[fila2][col2]) { printf("¡Encontraste un par!\n"); paresEncontrados++;
} else { printf("No son iguales. Intenta de nuevo.\n"); // Ocultar las cartas nuevamente
tablero[fila1][col1] = '*';
tablero[fila2][col2] = '*';
}
// Cambiar de jugador
jugador = (jugador == 1) ? 2 : 1;
}
printf("¡Jugador %d ha ganado!\n", jugador); return 0;
}