public override void CalculeHCost(Emplacement_Q3 final)
 {
     // pour la question 1 : distance de Man
     if (this.y == final.y)
     {
         this.HCost = HCost + (Math.Abs(x - final.x) + Math.Abs(y - final.y));
     }
     else if (this.x == final.x)
     {
         this.HCost = HCost + (Math.Abs(x - final.x) + Math.Abs(y - final.y)) + 9;
     }
     else
     {
         this.HCost = HCost + (Math.Abs(x - final.x) + Math.Abs(y - final.y)) + 6; //Le chariot se reorient et il fait un virage
     }
     // pour la question 2 :
 }
Пример #2
0
 public override void CalculeHCost(Emplacement_Q3 final)
 {
 }
Пример #3
0
 // pour les overrides avec l'autre classe
 public override bool EndState(Emplacement_Q3 final)
 {
     return(false);
 }
        public override double GetArcCost(GenericNode N2)
        {
            Emplacement_Q3 succ = (Emplacement_Q3)N2;

            //return (1);
            if (EndState(succ))
            {
                return(4 * hauteurColis + 10);
            }
            else
            {
                if (orientation == "Nord")
                {
                    if (succ.y == this.y - 1)
                    {
                        return(1);
                    }
                    else
                    {
                        return(4);
                    }
                }
                else if (orientation == "Sud")
                {
                    if (succ.y == this.y + 1)
                    {
                        return(1);
                    }
                    else
                    {
                        return(4);
                    }
                }
                else if (orientation == "Est")
                {
                    if (succ.x == this.x + 1)
                    {
                        return(1);
                    }
                    else
                    {
                        return(4);
                    }
                }
                else if (orientation == "Ouest")
                {
                    if (succ.x == this.x - 1)
                    {
                        return(1);
                    }
                    else
                    {
                        return(4);
                    }
                }
                else
                {
                    return(0);
                }
            }
        }
 // POUR L'override il était nécessaire de faire une autre fonction qui prennant en paramète
 // un emplacement pour la question 3 à cause de la duplication recommandée de la classe Emplacement
 // pour la réalisation des deux questions.
 public override bool EndState(Emplacement_Q3 final)
 {
     return(this.x == final.x && this.y == final.y);
 }
        //Methodes
        public override bool IsEqual(GenericNode N2)
        {
            Emplacement_Q3 E1 = (Emplacement_Q3)(N2);

            return(E1.x == this.x && E1.y == this.y && E1.orientation == this.orientation);
        }
Пример #7
0
 public abstract void CalculeHCost(Emplacement_Q3 final);
Пример #8
0
 public abstract bool EndState(Emplacement_Q3 final);