نمايش پست تنها
قديمي ۰۹-۱۳-۱۳۸۹, ۰۸:۵۰ بعد از ظهر   #23 (لینک دائم)
bijibuji Male
عضو فوق فعال
 
آواتار bijibuji
 
تاريخ عضويت: مهر ۱۳۸۸
پست ها: 16
تشكرها: 27
38 تشكر در 14 پست
Lightbulb حل معمای پازل 8 با کد سی پلاس پلاس

خدمت لیلا خانوم که دنبالش می گشتن

تابع مکاشفه ای (هیورستیک) ای که به کار رفته فاصله منهتن هستش.
این هم منبع

كد:
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;
}
bijibuji آفلاين است   پاسخ با نقل قول