예제 #1
0
        static void Main(string[] args)
        {
            Poste p1 = new Poste(1, 1, 1, new Dictionary());
            Poste p2 = new Poste(2, 2, 1, new Dictionary());
            Poste p5 = new Poste(5, 1, 3, new Dictionary());
            Poste p3 = new Poste(3, 1, 2, new Dictionary());

            p3.getLesPostesVisibles().Add(1, p1);
            p3.getLesPostesVisibles().Add(5, p5);

            Poste p4 = new Poste(4, 2, 2, new Dictionary());

            p4.getLesPostesVisibles().Add(2, p2);
            p4.getLesPostesVisibles().Add(3, p3);

            Poste p6 = new Poste(6, 2, 3, new Dictionary());

            p6.getLesPostesVisibles().Add(3, p3);
            p6.getLesPostesVisibles().Add(5, p5);

            Poste p7 = new Poste(7, 3, 3, new Dictionary());

            p7.getLesPostesVisibles().Add(4, p4);
            p7.getLesPostesVisibles().Add(6, p6);
            Dictionary <int, Poste> d = new Dictionary <int, Poste>();

            d.Add(1, p1); d.Add(2, p2); d.Add(3, p3); d.Add(4, p4);
            d.Add(5, p5); d.Add(6, p6); d.Add(7, p7);

            Salle s  = new Salle("salle1", d);
            Poste p8 = new Poste(8, 4, 1 new Dictionary <int, Poste>());

            p8.getLesPostesVisibles().Add(4, p4);
            p8.getLesPostesVisibles().Add(2, p2);
        }
예제 #2
0
        /// <summary>
        /// retourne vrai si le poste 1 est visible du poste 2 ou si le poste 2 est visible du poste 1
        /// </summary>
        public bool visible(Poste poste1, Poste poste2)
        {
            bool ok = false;

            if (poste1.getLesPostesVisibles().ContainsKey(poste2.getNumero()) || poste2.getLesPostesVisibles().ContainsKey(poste1.getNumero()))
            {
                ok = true;
            }
            return(ok);
        }
예제 #3
0
        /// <summary>
        /// retire un poste de la salle et met à jour les postes qui voient ce poste
        /// </summary>
        /// <param name="numPoste"></param>
        public void retirerPoste(Poste unPoste)
        {
            var lescles = this.lesPostes.Keys;

            foreach (var i in lescles)
            {
                Poste p = this.lesPostes[i];
                if (this.visible(p, unPoste))
                {
                    p.getLesPostesVisibles().Remove(unPoste.getNumero());
                }
            }
            this.lesPostes.Remove(unPoste.getNumero());
        }
예제 #4
0
        /// <summary>
        /// // ajoute un poste dans la salle et met à jour les postes qui voient ce nouveau poste
        /// </summary>
        public void ajouterPoste(Poste unPoste, Dictionary <int, Poste> desPostesQuiVoient)
        {
            this.lesPostes.Add(unPoste.getNumero(), unPoste);
            var lescles = desPostesQuiVoient.Keys;

            //foreach (var i in desPostesQuiVoient)
            //{
            //	desPostesQuiVoient.Add(unPoste.getNumero(), unPoste);
            //}
            foreach (var i in lescles)
            {
                this.lesPostes[i].getLesPostesVisibles().Add(unPoste.getNumero(), unPoste);
            }
        }