Un Juego de Memoria con Cartas completamente funcional con temática de fútbol, desarrollado con Pygame. Este proyecto demuestra conceptos de programación de videojuegos, incluyendo diseños en cuadrícula, manejo de eventos, gestión de estados y mecánicas de juego interactivas.
- Autor: Magallanes López Carlos Gabriel
- Correo: cgmagallanes23@gmail.com
- Fecha de Desarrollo: 15 de octubre de 2025
Este es un clásico juego de memorama con logos de equipos de fútbol. Los jugadores deben encontrar pares de cartas iguales voltéandolas de dos en dos. El juego incluye:
- Diseño en cuadrícula con 8 cartas (4 pares) organizadas en una cuadrícula de 2x4
- Mecánica de volteo de cartas con animaciones de revelación fluidas
- Sistema de detección de pares para cartas emparejadas
- Funcionalidad de ocultamiento automático para pares que no coinciden
- Detección de victoria cuando se encuentran todos los pares
- Aleatorización de posiciones de cartas para mayor rejugabilidad
- Botón de inicio interactivo para comenzar nuevas partidas
- Clic del Mouse: Seleccionar y voltear cartas
- Botón de Inicio: Comenzar una nueva partida con cartas mezcladas
Encontrar los 4 pares de cartas de equipos de fútbol recordando sus posiciones. Las cartas se voltean de regreso si no coinciden.
- Haz clic en el botón "Iniciar juego" para comenzar
- Haz clic en cualquier carta para revelarla
- Haz clic en una segunda carta para intentar encontrar un par
- Si las cartas coinciden, permanecen reveladas
- Si las cartas no coinciden, se voltean después de 1 segundo
- Continúa hasta encontrar todos los pares
- El juego se reinicia automáticamente cuando ganas
- Sistema de Cuadrícula de Cartas: Diseño en cuadrícula 2x4 con 4 logos únicos de equipos de fútbol
- Detección de Pares: Comparación automática de cartas seleccionadas
- Revelación Temporizada: Las cartas sin par se ocultan después de 1 segundo
- Condición de Victoria: Detección automática de victoria y reinicio del juego
- Mezcla de Cartas: Posiciones aleatorias al inicio del juego
- Gestión de Estados: Seguimiento de cartas descubiertas y mostradas
- Logos de Equipos de Fútbol: PSG, Real Madrid, Barcelona e Inter de Milán
- Diseño del Reverso de las Cartas: Diseño gris limpio para cartas ocultas
- Resaltado de Bordes: Bordes negros alrededor de cada carta
- Botón de Inicio: Botón verde que se vuelve blanco durante el juego
- Renderizado Fluido: Juego a 60 FPS
- Detección de Clics: Seguimiento preciso de la posición del mouse
- Estados del Botón: Retroalimentación visual para el botón de inicio
- Estados de las Cartas: Tres estados (oculta, mostrada, descubierta)
- Bloqueo de Turno: Evita clics durante la comparación de cartas
El juego está disponible como ejecutable, no requiere instalar Python ni ninguna dependencia adicional.
📥 Descarga el archivo
.exedesde la sección de Releases y ejecútalo directamente.
- SO: Windows 7/8/10/11
- RAM: 2GB
- Almacenamiento: ~50 MB de espacio libre
- Descarga el ejecutable desde la sección de Releases
- Haz doble clic en el archivo
.exe - ¡Listo! El juego abrirá directamente, sin instalaciones ni configuraciones adicionales
# Componentes Principales:
1. Clase Carta (Diseño orientado a objetos)
2. Configuración de Pantalla (Ventana Pygame)
3. Sistema de Diseño en Cuadrícula (Arreglo 2D)
4. Ciclo de Manejo de Eventos
5. Gestión de Estados- Fondo: Blanco (
#FFFFFF) - Reverso de Carta: Gris (
#CECECE) - Borde de Carta: Negro (
#000000) - Botón de Inicio (Activo): Verde (
#00FF00) - Botón de Inicio (Jugando): Blanco (
#FFFFFF) - Texto del Botón: Dinámico (Blanco/Gris según el estado)
- Oculta: Rectángulo gris con borde negro
- Mostrada: Logo del equipo visible
- Descubierta: Logo del equipo permanentemente visible
- Tamaño de ventana fijo de 800x450 (no redimensionable)
- Solo 4 pares de cartas (8 en total)
- Sin sistema de puntuación ni temporizador
- Sin niveles de dificultad
Este proyecto sirve como recurso educativo para comprender conceptos fundamentales del desarrollo de videojuegos:
-
Programación Orientada a Objetos
- Diseño y encapsulamiento de clases
- Atributos y métodos de instancia
- Gestión del estado de objetos
- Sugerencias de tipo y validación
-
Fundamentos de Pygame
- Configuración de ventana y pantalla
- Arquitectura del ciclo de eventos
- Manejo de entrada del mouse
- Renderizado de superficies e imágenes
- Detección de colisiones con rectángulos
-
Lógica de Juego en Cuadrícula
- Manipulación de arreglos 2D
- Conversión de sistemas de coordenadas
- Algoritmos de recorrido de cuadrícula
- Mapeo de posición a índice
-
Gestión de Estados
- Seguimiento del estado del juego (no iniciado, jugando, ganado)
- Máquinas de estado de cartas (oculta, mostrada, descubierta)
- Implementación de lógica por turnos
- Banderas booleanas para control del juego
-
Programación Orientada a Eventos
- Manejo de eventos de clic del mouse
- Procesamiento de eventos
- Lógica de interacción con botones
-
Temporización y Retrasos
- Mecánicas basadas en tiempo con
time.time() - Ocultamiento retrasado de cartas
- Control de tasa de fotogramas con
clock.tick() - Implementación de retrasos sin bloqueo
- Mecánicas basadas en tiempo con
-
Algoritmos de Aleatorización
- Técnicas de mezcla de cartas
- Generación de posiciones aleatorias
- Garantía de distribución equitativa
-
Diseño del Ciclo de Juego
- Estructura del ciclo de renderizado
- Separación de actualización y renderizado
- Gestión de FPS
- Actualizaciones continuas del estado del juego
-
Detección de Colisiones
- Colisión punto-rectángulo (
collidepoint) - Validación de límites de cuadrícula
- Detección del área de clic
- Colisión punto-rectángulo (
-
Renderizado Visual
- Carga y blitting de imágenes
- Dibujo de rectángulos
- Renderizado de texto
- Orden de renderizado por capas
Al estudiar y modificar este código, obtendrás experiencia práctica con:
✅ Patrones de diseño de juegos y arquitectura
✅ Gestión de memoria en juegos de memorama
✅ Diseño de interfaz de usuario para juegos en cuadrícula
✅ Validación de entrada y manejo de errores
✅ Implementación de algoritmos (mezcla, emparejamiento)
✅ Organización del código con clases y funciones
Este repositorio es perfecto para estudiantes que aprenden Pygame, fundamentos del desarrollo de videojuegos, o cualquier persona interesada en entender cómo funcionan programáticamente los clásicos juegos de memoria.
Este proyecto es de naturaleza educativa y está disponible para uso libre con fines de aprendizaje. Los logos de los equipos de fútbol son propiedad de sus respectivos dueños y se utilizan únicamente con fines educativos.
Estudiantes y desarrolladores son bienvenidos a:
- Reportar errores
- Sugerir nuevas características o temáticas
- Enviar pull requests con mejoras
- Compartir estrategias de juego
- Agregar nuevas temáticas de cartas
Carlos Gabriel Magallanes López
Correo: cgmagallanes23@gmail.com
⭐ ¡Si disfrutaste este juego o te resultó educativo, dale una estrella en GitHub!
🎮 ¡Buen juego!