private List <int> RecupO() { //Fonction qui récupère et retourne la liste des ouverts List <int> LO = new List <int>(); string saisie = tB_ouvert.Text; Node2 N = new Node2(); if (saisie != "") { for (int i = 0; i < saisie.Length; i++) { if (saisie[i] != ',') { LO.Add(Convert.ToInt32(saisie[i]) - 48); } } } return(LO); }
private List <int> RecupF() { //Fonction qui récupère et renvoie la liste des fermés List <int> LF = new List <int>(); string saisie = tB_Ferme.Text; Node2 N = new Node2(); if (saisie != "") { for (int i = 0; i < saisie.Length; i++) { if (saisie[i] != ',') { LF.Add(Convert.ToInt32(saisie[i]) - 48); } } } return(LF); }
public override double GetArcCost(GenericNode N2) { Node2 N2bis = (Node2)N2; return(FormDijkstra.matrice[numero, N2bis.numero]); }
//Evènements private void btn_ouvertFermeSuivant_Click(object sender, EventArgs e) { //Evenement pour amener à l'itération des listes des ouverts et fermés suivante if (iteration == 0) { N0.numero = numinitial - 48; L_Ouverts.Add(N0); } iteration++; lbl_iteration.Text = "Itération : " + Convert.ToString(iteration); N = L_Ouverts[0]; if (L_Ouverts.Count != 0 && N.EndState() == false) { // tant que le noeud n'est pas terminal et que ouverts n'est pas vide // Le meilleur noeud des ouverts est supposé placé en tête de liste // On le place dans les fermés L_Ouverts.Remove(N); L_Fermes.Add(N); // Il faut trouver les noeuds successeurs de N g.MAJSuccesseurs(N); // Inutile de retrier car les insertions ont été faites en respectant l'ordre // On prend le meilleur, donc celui en position 0, pour continuer à explorer les états // A condition qu'il existe bien sûr if (L_Ouverts.Count > 0) { N = L_Ouverts[0]; } else { N = null; } } List <int> LF = new List <int>(); List <int> LO = new List <int>(); LF = RecupF(); LO = RecupO(); bool boolLO = CompareList(L_Ouverts, LO); bool boolLF = CompareList(L_Fermes, LF); if (boolLO && boolLF) { ouvertFermes.Add(true); } else { ouvertFermes.Add(false); } if (N.EndState()) { OuvertFerme = true; foreach (bool b in ouvertFermes) { if (b == false) { OuvertFerme = false; } } btn_ouvertFermeSuivant.Enabled = false; treeView1.Enabled = true; btn_insertNode.Enabled = true; tB_treeView.Enabled = true; g.GetSearchTreeVide(treeView1); originalTree = g.GetSearchTree(); } }