public int CompareTo(object obj) { if (obj == null) { return(1); } Complex_etat cet = obj as Complex_etat; if (cet != null) { Boolean vrai = true; foreach (Etat et in list_etat) { if (!cet.list_etat.Contains(et)) { return(2); } } return(0); } else { throw new ArgumentException("Object is not a Temperature"); } }
public void deterministe() { //List<Complex_etat> nouvel_list = new List<Complex_etat>(); Complex_etat et = new Complex_etat(); et.list_etat.Add(list_etat[0]); et.list_transition_partant.AddRange(list_etat[0].list_transition_partant); list_complex.Add(et); Complex_etat sauvegarde = new Complex_etat();; sauvegarde = et; Boolean cont = true; int id = 100; while (cont) { cont = false; foreach (Complex_etat e in list_complex) { List <Char> car = new List <Char>(); car = e.char_list(); foreach (Char i in car) { Complex_etat nv_etat_comp = new Complex_etat(); foreach (Transition suiv in e.list_transition_partant) { if (suiv.car[0] == i) { if (!nv_etat_comp.list_etat.Contains(suiv.final)) { nv_etat_comp.list_etat.Add(suiv.final); } if (!nv_etat_comp.list_transition_partant.Contains(suiv)) { nv_etat_comp.list_transition_partant.Add(suiv); } } } foreach (Complex_etat cet in list_complex) { if (!(nv_etat_comp.CompareTo(cet) == 0)) { nv_etat_comp.id = id; id++; sauvegarde.list_etat_complex_suiv.Add(nv_etat_comp); sauvegarde.list_etat_suiv.AddRange(nv_etat_comp.list_etat); list_complex.Add(nv_etat_comp); sauvegarde = nv_etat_comp; } cont = true; } } } } }