コード例 #1
0
ファイル: Node2.cs プロジェクト: lucasdut/ProjetIA
        public override List <GenericNode> GetListSucc()
        {
            List <GenericNode> lsucc = new List <GenericNode>();

            for (int i = 0; i < Dijkstra.nbnodes; i++)
            {
                if (Dijkstra.matrice[numero, i] != -1)
                {
                    Node2 newnode2 = new Node2();
                    newnode2.numero = i;
                    lsucc.Add(newnode2);
                }
            }
            return(lsucc);
        }
コード例 #2
0
        public void AjoutOuvertFermetUti(string input, bool isOuvert)
        {
            // OF = Ouvert ou ferme
            List <GenericNode> listeOF   = new List <GenericNode>();
            string             nouveauOF = "";

            //récupérer champOF
            foreach (char c in input)
            {
                if (c != ',')
                {
                    int x = (int)Char.GetNumericValue(c);
                    if (x != -1)
                    {
                        Node2 N = new Node2();
                        N.numero = x;
                        listeOF.Add(N);
                        nouveauOF += Convert.ToString(N.numero) + ", ";
                    }
                }
            }
            // le mettre dans une liste statique,
            // affichage listBox ,
            // Vider la textBox de saise utilisateur.

            if (isOuvert && nouveauOF != "")
            {
                if (historiqueUtiOuvert.Count == 0)
                {
                    // On ajoute l'ouvert {0} au début
                    var n = new Node2();
                    n.numero = int.Parse(this.graphConfig.InitNode);
                    n.numero = 0;
                    var listeInit = new List <GenericNode>();
                    listeInit.Add(n);
                    historiqueUtiOuvert.Add(listeInit);
                }
                historiqueUtiOuvert.Add(listeOF);
                listBoxShowOuvertUti.Items.Add(nouveauOF);
                textBoxOuverts.Text = string.Empty;
            }
            else if (!isOuvert && nouveauOF != "")
            {
                historiqueUtiFerme.Add(listeOF);
                listBoxShowFermeUti.Items.Add(nouveauOF);
                textBoxFermes.Text = string.Empty;
            }
        }
コード例 #3
0
        private void Initialisation()
        {
            matrice = new double[nbnodes, nbnodes];
            for (int i = 0; i < nbnodes; i++)
            {
                for (int j = 0; j < nbnodes; j++)
                {
                    matrice[i, j] = -1;
                }
            }

            matrice[0, 1] = 3; matrice[1, 0] = 3;
            matrice[0, 2] = 5; matrice[2, 0] = 5;
            matrice[0, 3] = 7; matrice[3, 0] = 7;
            matrice[1, 4] = 8; matrice[4, 1] = 8;
            matrice[2, 4] = 3; matrice[4, 2] = 3;
            matrice[4, 5] = 7; matrice[5, 4] = 7;
            matrice[5, 6] = 4; matrice[6, 5] = 4;

            numinitial = Convert.ToInt32(textBox1.Text);
            numfinal   = Convert.ToInt32(textBox2.Text);
            Node2 N0 = new Node2();

            N0.numero = numinitial;

            List <GenericNode> solution = g.RechercheSolutionAEtoile(N0);

            Node2 N1 = N0;

            //affichage
            for (int i = 1; i < solution.Count; i++)
            {
                Node2 N2 = (Node2)solution[i];
                listBox1.Items.Add(Convert.ToString(N1.numero)
                                   + "--->" + Convert.ToString(N2.numero)
                                   + "   : " + Convert.ToString(matrice[N1.numero, N2.numero]));
                N1 = N2;
            }
        }
コード例 #4
0
ファイル: Form1.cs プロジェクト: Rsisse/chicoda
        private void button2_Click(object sender, EventArgs e)
        {
            numinitial = Convert.ToInt32(textBox1.Text);
            numfinal   = Convert.ToInt32(textBox2.Text);
            SearchTree g  = new SearchTree();
            Node2      N0 = new Node2();

            N0.numero = numinitial;
            List <GenericNode> solution = g.RechercheSolutionAEtoile(N0);

            Node2 N1 = N0;

            for (int i = 1; i < solution.Count; i++)
            {
                Node2 N2 = (Node2)solution[i];
                listBox1.Items.Add(Convert.ToString(N1.numero)
                                   + "--->" + Convert.ToString(N2.numero)
                                   + "   : " + Convert.ToString(matrice[N1.numero, N2.numero]));
                N1 = N2;
            }

            g.GetSearchTree(treeView1);
        }
コード例 #5
0
        public override double GetArcCost(GenericNode N2)
        {
            Node2 N2bis = (Node2)N2;

            return(Form1.matrice[numero, N2bis.numero]);
        }
コード例 #6
0
        // Méthodes abstrates, donc à surcharger obligatoirement avec override dans une classe fille
        public override bool IsEqual(GenericNode N2)
        {
            Node2 N2bis = (Node2)N2;

            return(numero == N2bis.numero);
        }