Heuristica.c


#include "heuristica.h"


extern int nFilas, nColumnas;

coste heuristicaAciertos(estado e, estado emeta)
{
  int f, c, result;

  result = 0;
  for (f = 0; f < nFilas; f++)
    for (c = 0; c < nColumnas; c++)
      if (e.tablero[f][c] != emeta.tablero[f][c] && emeta.tablero[f][c] != 0)
	result++; 

  return result;
}


coste heuristicaDistancias(estado e, estado emeta)
{
  int f, c, result;
  int f2, c2;

  result = 0;
  for (f = 0; f < nFilas; f++)
    for (c = 0; c < nColumnas; c++)
      for (f2 = 0; f2 < nFilas; f2++)
       for (c2 = 0; c2 < nColumnas; c2++)
         if (e.tablero[f][c] == emeta.tablero[f2][c2] && emeta.tablero[f][c] != 0)
	   result += abs(f-f2) + abs(c-c2); 

  return result;
}


coste heuristicaAnchura(estado e, estado emeta)
{
  return 0;
}