public override double GetArcCost(GenericNode N2) { double cout = 0; NodeTemps Nres = (NodeTemps)N2; cout = CalculeDirectionH(Nres); return(cout); }
public int CalculeDirectionH(NodeTemps N2) { // This = noeud prcdt if (this.direction != N2.direction) { return(3); } else { return(1); } }
public override bool IsEqual(GenericNode N2) { NodeTemps NE = (NodeTemps)N2; return(NE.posX == posX && NE.posY == posY); }
protected override void OnPaint(PaintEventArgs e) // fonction dessinant l'ensemble de la grille et des chemins parcourus par le chariot { base.OnPaint(e); if (tabForme != null) { for (int i = 0; i < tabEntrepot.GetLength(0); i++)//Pour toute les formes dans tabForme { for (int j = 0; j < tabEntrepot.GetLength(1); j++) { FormeRectangle.creationFormeColorée(tabForme[i, j], this);//On dessine la forme avec sa taille et sa couleur passée au préalable dans setGrilleView() } } foreach (Chariot c in tabChariot)//Pour tout les chariots on les dessine sur la grille { int positionX = 25 * c.posX; int positionY = 25 * c.posY; FormeRectangle chariot = new FormeRectangle("black", positionX, positionY);//Un chariot est un carré noir sur la grille. FormeRectangle.creationFormeColorée(chariot, this); } foreach (Objet o in tabObjet)//Pour tout les objets on les dessine sur la grille { int positionX = 25 * o.posX; int positionY = 25 * o.posY; FormeRectangle objet = new FormeRectangle("orange", positionX, positionY);// Un objet est un carré orange sur la grille FormeRectangle.creationFormeColorée(objet, this); } // Colorie le chemin du noeud initial jusqu'à l'objet if (Lres != null) { foreach (GenericNode n in Lres) { int positionX = 0; int positionY = 0; if (nodeTemps) // Si on gère des nodeTemps ou des NodeDistance { NodeTemps node = (NodeTemps)n; positionX = 25 + 25 * node.posX; positionY = 25 + 25 * node.posY; } else { NodeDistance node = (NodeDistance)n; positionX = 25 + 25 * node.posX; positionY = 25 + 25 * node.posY; } FormeRectangle objet = new FormeRectangle("red", positionX, positionY); //colorie la case de la grille correspondnat à chaque noeud en rouge; le chemin suivi par le chariot apparait tout en rouge FormeRectangle.creationFormeColorée(objet, this); //} } //Colore le chemin retour : de l'objet à une des cases 1 la plus proche de la grille if (bestTrajectoire != null) { foreach (GenericNode n in bestTrajectoire) { int positionX = 0; int positionY = 0; if (nodeTemps) { NodeTemps node = (NodeTemps)n; positionX = 25 + 25 * node.posX; positionY = 25 + 25 * node.posY; } else { NodeDistance node = (NodeDistance)n; positionX = 25 + 25 * node.posX; positionY = 25 + 25 * node.posY; } FormeRectangle objet = new FormeRectangle("purple", positionX, positionY); FormeRectangle.creationFormeColorée(objet, this); } } } } }