public void Resoudre() { _ihm.AfficherRegles(_bdRegles.Regles); bool resteRegles = true; BaseRegles reglesDispo = new BaseRegles { Regles = new List <Regle>(_bdRegles.Regles) }; _bdFaits.RaZ(); while (resteRegles) { Tuple <Regle, int> regleIns = TrouverDispo(reglesDispo); if (regleIns != null) { IFait faitIns = regleIns.Item1.These; faitIns.DefinirNiveau(regleIns.Item2 + 1); _bdFaits.Ajouter(faitIns); reglesDispo.Supprimer(regleIns.Item1); } else { resteRegles = false; } } _ihm.AfficherFaits(_bdFaits.Faits); }