Procedimiento: Principal
Pedir datos de entrada(estado_inicial , estado_final , algoritmo, heuristica)
Si el problema es resoluble
En el caso de que el algoritmo sea el:
A* : Aplicar Algoritmo_A* para obtener el nodo meta
IDA*: Aplicar Algoritmo_IDA* para obtener el nodo meta
SMA*: Aplicar Algoritmo_SMA* para obtener el nodo meta
DFID: Aplicar Algoritmo_DFID para obtener el nodo meta
Imprimir como salida el camino desde el nodo inicial hasta el meta
Si no
Avisar de que no existe una posible solucion
Procedimiento: Problema resoluble .
Calcular el valor del estado inicial
Calcular el valor del estado final
Si la suma de ambos valores es par
Existe solucion.
Si no
No existe solucion.
Procedimiento: Calcular el valor de ESTADO.
Para cada posicion del puzzle hacer
Sea N el valor de la posicion.
Contar el numero de posiciones posteriores, con valor menor que N.
El Blanco se considera superior a todos.
Acumular esta suma con las anteriores.
Si el Blanco estaá en una posicion en la que la suma de fila y columna es impar.
añadir 1 a la suma total.
Devolver la suma.