so_long
so_long es un juego de laberinto 2D donde el jugador navega un personaje para llegar a una salida, usando gráficos básicos y programación en C. El juego incluye movimiento del jugador, detección de colisiones y lógica de juego simple.
El juego verifica que el mapa sea válido (cerrado por muros, con solo un jugador obligatorio), una salida obligatoria, y asegura que el mapa tenga un camino correcto. Tanto la salida como todas las monedas deben ser alcanzables. De lo contrario, el camino se considerará inválido. Una vez que las validaciones estén completas, el juego comienza. Los mapas están ubicados en la carpeta "maps".
Repositorio del proyecto: so_long en GitHub
- 1 = Muro
- 0 = Aire
- P = Jugador
- C = Moneda
- E = Salida
- M = Monstruo (solo en la parte bonus)
El mapa se almacena en un solo array, ignorando los saltos de línea. Los datos del mapa se guardan en una estructura, lo que permite identificar la fila donde se encuentra el personaje a procesar. El jugador debe recolectar todas las monedas y dirigirse a la salida (el agujero negro).
El juego utiliza el algoritmo DFS (Depth-First Search) para validar el mapa. Este algoritmo explora los caminos yendo lo más profundo posible en cada rama antes de retroceder. Se utiliza para asegurar que la salida y todas las monedas sean alcanzables desde la posición inicial del jugador.
El enemigo tiene un movimiento horizontal básico, desplazándose de izquierda a derecha.
Cómo Ejecutar el Juego
Versión Regular:
make
./so_long <map>
Versión Bonus:
make bonus
./so_long <map>
Ejemplo:
make
./so_long maps/map1.ber
El juego también se renderiza en la consola.
Repositorio del proyecto: so_long en GitHub
Comentarios