Descripción general
Este proyecto consiste en la implementación del videojuego Pac-Man, recreando su lógica principal mediante el uso de programación orientada a objetos y técnicas de graficación por computadora.
El juego simula el comportamiento clásico: Pac-Man recorre un laberinto consumiendo pellets mientras evita a los fantasmas, integrando mecánicas de colisión, movimiento y actualización de estados.
Arquitectura del sistema
El sistema se diseñó bajo un enfoque modular, donde cada elemento del juego está representado como una clase independiente:
- Punto: base para coordenadas en el sistema
- Pared, Pellet y SuperPellet: elementos del entorno
- Fantasma y Pac-Man: entidades dinámicas
- Graficar: encargado de la representación visual
Además, se implementaron clases para transformaciones geométricas como rotación, escalado y traslación, permitiendo manipular las figuras en pantalla.
Lógica del juego
La mecánica se basa en una matriz de caracteres (28x31) que representa el mapa del juego, donde cada símbolo define un elemento (paredes, pellets, personajes, etc.).
El sistema procesa esta matriz para:
- Controlar el movimiento del jugador mediante teclado (W, A, S, D)
- Gestionar colisiones con paredes y enemigos
- Actualizar el estado del juego (consumo de pellets, fin de partida)
- Simular el comportamiento de los fantasmas
Este enfoque permite separar la lógica del juego de la representación gráfica, facilitando su mantenimiento y escalabilidad.
Sistema de graficación
La representación visual se construye a partir de matrices de 13x13 píxeles para cada objeto, las cuales se transforman en conjuntos de puntos para ser dibujados en pantalla.
Se implementaron:
- Transformaciones geométricas (rotación, escalado, traslación)
- Uso de la librería graphics.h para renderizado
- Técnica de doble buffer para evitar parpadeo
- Algoritmo de Bresenham para dibujo de líneas
Esto permite generar animaciones fluidas y mantener consistencia visual en todos los elementos del juego.
Resultado
Se obtuvo una implementación funcional del juego, con interacción en tiempo real, animaciones y comportamiento dinámico de los elementos, demostrando la integración de conceptos de programación, algoritmos y gráficos por computadora
---------------------------------------------------------------------------------------
Repositorio en GitHub: https://github.com/jangelmm/Pacman