Пример #1
0
        public void Run()
        {
            // moteur
            Console.WriteLine("** Création du moteur **");
            Motor m = new Motor(this);

            //règles
            Console.WriteLine("** Ajout des règles **");
            m.AddRule("R1 : IF (Ordre=3(Quel est l'ordre?)) THEN Triangle");
            m.AddRule("R2 : IF (Triangle AND Angle Droit (La figure a-t-elle au moins un angle droit?)) THEN Triangle Rectangle");
            m.AddRule("R3 : IF (Triangle AND Cotes Egaux=2(Combien la figure a-t-elle de cotes egaux?)) THEN Triangle Isocele");
            m.AddRule("R4 : IF (Triangle Rectangle AND Triangle Isocele) THEN Triangle Rectangle Isocele");
            m.AddRule("R5 : IF (Triangle AND Cotes Egaux=3(Combien la figure a-t-elle de cotes egaux?)) THEN Triangle Equilateral");
            m.AddRule("R6 : IF (Ordre=4(Quel est l'ordre?)) THEN Quadrilatere");
            m.AddRule("R7 : IF (Quadrilatere AND Cotes paralleles=2(Combien y'a t-il de cotes paralleles entre eux? 0 2 4?)) THEN Trapeze");
            m.AddRule("R8 : IF (Quadrilatere AND Cotes paralleles=4(Combien y'a t-il de cotes paralleles entre eux? 0 2 4?)) THEN Parallelogramme");
            m.AddRule("R9 : IF (Parallelogramme AND Angle Droit(La figure a t-elle au moins un angle droit?)) THEN Rectangle");
            m.AddRule("R10 : IF (Parallelogramme AND Cotes Egaux=4(combien la figure a t-elle de cotes egaux?)) THEN Losange");
            m.AddRule("R11 : IF (Rectangle AND Losange) THEN Carre");


            // résolution
            while (true)
            {
                Console.WriteLine("\n** résolution");
                m.Solve();
            }
        }