Prácticas IA 96. n-Puzzle
#ifndef _BUSQUEDA_H
#define _BUSQUEDA_H
#include "estado.h"
#define NORTE 1
#define SUR 2
#define ESTE 3
#define OESTE 4
typedef int movimiento;
typedef struct
{
int nodosGenerados;
int maxProfundidad;
int nodosRepetidos;
int numMovs;
movimiento* movs;
} resultadoBusqueda;
resultadoBusqueda busqueda(estado einicial, estado emeta, int Algoritmo, int nHeur);
#endif
Dentro de este fichero podemos destacar las siguientes definiciones:
- las constantes NORTE, SUR, ESTE y OESTE.
- la definición del tipo movimiento como entero. Un movimiento va a tener uno de los valores anteriormente comentados.
- la estructura resultadoBusqueda donde almacenamos los resultados de la búsqueda del camino hacia el nodo final. Consta de los siguientes campos:
- nodosGenerados
que nos indica el número total de nodos generados durante el proceso de búsqueda del camino.
- maxProfundidad
que indica la profundidad máxima alcanzada por el grafo de búsqueda.
- nodosRepetidos
que almacena el número de nodos generados que eran repetidos.
- numMovs
, el número de movimientos de que consta la solución.
- movs
, un puntero al array de movimientos que hay que realizar para alcanzar el nodo meta.
- el prototipo de la función busqueda porque es la única que se utiliza desde otro fichero que no sea el mismo busqueda.