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.