خدمت لیلا خانوم که دنبالش می گشتن
تابع مکاشفه ای (هیورستیک) ای که به کار رفته فاصله منهتن هستش.
این هم منبع
كد:
class Piece
{
public int X;
public int Y;
public readonly int Number;
int TargetX{get{return (Number-1)%3;}}
int TargetY{get{return (Number-1)/3;}}
int CalculateDistanceFromGoal()
{
int dx=X-TargetX;
int dy=Y-TargetY;
return Math.Abs(dx)+Math.Abs(dy);
}
public Piece(int number,int x,int y)
{
Number=number;
X=x;
Y=y;
}
}
}
int Heuristic(Piece[] pieces)
{
int result=0;
foreach(Piece piece in pieces)
{
result+=piece.CalculateDistanceFromGoal();
}
return result;
}