Skip to content

sorgazb/Labecoin-Game-AI

Repository files navigation

Labecoin Game AI

C++ IA Eclipse Mapas POO

Labecoin Game AI es un juego de laberinto en C++ donde un agente inteligente recorre un tablero recogiendo monedas usando algoritmos de búsqueda local: Escalada Simple, Máxima Pendiente y Escalada Estocástica. Desarrollado como proyecto final de la asignatura IASI.


📋 Descripción del Proyecto

Labecoin es un juego de tablero donde un agente automático debe recorrer un laberinto y recoger el máximo número de monedas posible.
El proyecto implementa y compara tres algoritmos de búsqueda local clásicos de Inteligencia Artificial, cada uno con una estrategia distinta para explorar el espacio de soluciones:

Algoritmo Estrategia Descripción
Escalada Simple EscaladaSimple Elige el primer vecino que mejore la solución actual
Máxima Pendiente MaximaPendiente Evalúa todos los vecinos y elige el mejor de ellos
Escalada Estocástica ESEstocastico Selecciona aleatoriamente entre los vecinos mejores

Las funciones de evaluación usadas son:

  • FuncionDistancia — minimiza la distancia recorrida.
  • FuncionRentabilidad — maximiza la relación monedas recogidas / distancia recorrida.

🏗️ Estructura del Proyecto

Labecoin-Game-AI/
├── src/                           # Código fuente principal
│   ├── IASI.cpp                   # Punto de entrada del programa
│   ├── Tablero.cpp / .h           # Lógica del tablero y laberinto
│   ├── Coordenada.cpp / .h        # Representación de posiciones en el mapa
│   ├── Moneda.cpp / .h            # Clase de monedas del tablero
│   ├── vectorMonedas.cpp / .h     # Contenedor de monedas
│   ├── Fichero.cpp / .h           # Lectura de mapas desde ficheros .txt
│   ├── EscaladaSimple.cpp / .h    # Algoritmo de Escalada Simple
│   ├── MaximaPendiente.cpp / .h   # Algoritmo de Máxima Pendiente
│   ├── ESEstocastico.cpp / .h     # Algoritmo de Escalada Estocástica
│   ├── FuncionDistancia.cpp / .h  # Función heurística de distancia
│   └── FuncionRentabilidad.cpp / .h # Función heurística de rentabilidad
├── Debug/                         # Binarios compilados (Eclipse CDT)
├── LABECOIN1.txt                  # Mapa nivel 1
├── LABECOIN2.txt                  # Mapa nivel 2
├── ...                            # (hasta LABECOIN10.txt)
├── Documentacion.pdf              # Documentación técnica del proyecto
├── EnunciadoProyecto_IASI2223.pdf # Enunciado oficial del proyecto
└── README.md                      # Documentación del proyecto

⚙️ Requisitos y Compilación

Windows (MinGW + Eclipse CDT)

# Requisitos:
# - Compilador MinGW (paquete básico + toolchain)
# - PATH de MinGW configurado en variables de entorno
# - Eclipse CDT con build y run config en modo MinGW
  1. Abrir el proyecto en Eclipse CDT.
  2. Configurar el Run Configuration seleccionando el .exe en /Debug.
  3. Compilar con Build Project y ejecutar.

Linux / GNU (g++)

git clone https://github.com/sorgazb/Labecoin-Game-AI.git
cd Labecoin-Game-AI/src
g++ -o labecoin *.cpp
./labecoin

Los ficheros de mapa LABECOIN1.txtLABECOIN10.txt deben estar en el mismo directorio que el ejecutable.


🗺️ Formato de los Mapas

Cada nivel se define en un fichero .txt con la siguiente codificación de celdas:

Símbolo Significado
P Posición inicial del agente
M Moneda recogible
X Pared (celda bloqueada)
. Celda libre

🖥️ Ejemplos de Ejecución

Ejemplo 1

Ejemplo 2

Ejemplo 3

Ejemplo 4

Ejemplo 5


📚 Documentación


🤝 Contribución

Haz fork del repositorio.

Crea una rama de trabajo:

git checkout -b feature/mi-nueva-funcionalidad

Realiza tus cambios y haz commit.

Abre un Pull Request describiendo tus mejoras.


Universidad de Extremadura

Inteligencia Artificial y Sistemas Inteligentes (IASI)  ·  Grado en Ingeniería Informática en Computadores  ·  Universidad de Extremadura
Sergio Orgaz Bravo

Releases

No releases published

Packages

 
 
 

Contributors