コード例 #1
0
        /// <summary>
        /// Methode qui calcule une heuristique en fonction de la longueur a parcourir jusqu'a une poussiere.
        /// </summary>
        /// <param name="n"> Noeud pour lequel on doit definir une heuristique (Noeud). </param>
        /// <param name="liste"> L'environnement (sous forme de graphe avec ses differents noeuds) (List<Noeud>) </param>
        private void LongueurPoussierPlusProche(Noeud n, List <Noeud> liste)
        {
            int longueur = 0;
            int intermediaire;

            if (n.Contientpoussiere)
            {
                n.Heuristique = 0;
                return;
            }
            foreach (Noeud noeud in liste)
            {
                if (noeud.Contientpoussiere)
                {
                    intermediaire = Math.Abs(noeud.X - n.X) + Math.Abs(noeud.Y - n.Y);
                    if (n.Heuristique == -1 || n.Heuristique > intermediaire)
                    {
                        longueur = intermediaire;
                    }
                }
            }
            n.Heuristique = longueur;
            return;
        }
コード例 #2
0
 /// <summary>
 /// Methode permettant d'ajouter un voisin au noeud.
 /// </summary>
 /// <param name="n"> Le noeud voisin (Noeud). </param>
 public void AjouterVoisin(Noeud n)
 {
     Voisins.Add(n);
 }
コード例 #3
0
ファイル: Effecteur.cs プロジェクト: WaRm4/IA_UQAC_2020
 /// <summary>
 /// Methode qui permet a l'agent de ramasser (d'enlever un bijoux sans l'aspirer).
 /// </summary>
 /// <param name="agent"> Noeud ou se trouve l'agent (Noeud). </param>
 public void Ramasser(Noeud agent)
 {
     Thread.Sleep(TpsAction);
     agent.ContientBijoux = false;
     Application.Current.Dispatcher.Invoke(this.DelegueSuppressionAgent, new Object[] { agent.Bijoux.Image });
 }