예제 #1
0
        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);
        }