Esempio n. 1
0
        private static IUnivers InitUnivers(int width, int height)
        {
            var u = new Univers2D(width, height);

            IElementFactory f = ChemicalElementFactory.GetInstance();

            u += f.Create("Hydrogen", (int)(width * .3), (int)(height * .9), u);
            u[0].Displacement = new Vector(1, -1);
            u += f.Create("Carbone",   (int)(width * .8), (int)(height * .2), u);
            u[1].Displacement = new Vector(1, 2);
            u += f.Create("Carbone", (int)(width * .7), (int)(height * .3), u);
            u[2].Displacement = new Vector(1, -1);
            u += f.Create("Helium",   (int)(width * .3), (int)(height * .4), u);
            u[3].Displacement = new Vector(2, 2);
            u += f.Create("Lithium",  (int)(width * .5), (int)(height * .4), u);
            u[4].Displacement = new Vector(-2, -1);
            u += f.Create("Oxygen", (int)(width * .3), (int)(height * .6), u);
            u[5].Displacement = new Vector(-1, -1);
            u += f.Create("Helium", (int)(width * .1), (int)(height * .7), u);
            u[6].Displacement = new Vector(2, 2);
            u += f.Create("Helium", (int)(width * .2), (int)(height * .8), u);
            u[7].Displacement = new Vector(2, 3);
            u += f.Create("Helium", (int)(width * .3), (int)(height * .5), u);
            u[8].Displacement = new Vector(1, 2);

            u += f.Create(new Atom[] {
                f.Create("Hydrogen"),
                f.Create("Hydrogen"),
                f.Create("Oxygen")
            });
            u[9].MoveStrategy = new UnBoundedMovesStrategy(u);
            u[9].Displacement = new Vector(3, -2);

            return u;
        }
Esempio n. 2
0
        public void Test_Elements_Displacement()
        {
            // Initialisation
            IUnivers u = new Univers2D(50, 50);
            IElement e = ChemicalElementFactory.GetInstance().Create("Carbone");
            Assert.AreEqual(e.Location.X, 0);
            Assert.AreEqual(e.Location.Y, 0);
            Assert.AreEqual(e.Displacement.X, 0);
            Assert.AreEqual(e.Displacement.Y, 0);

            // On déplace l'élément en passant par sa méthode
            e.MoveStrategy = new BoundedMovesStrategy(u);
            e.Displacement = new Vector(2, 5);
            e.UpdateLocation();
            Assert.AreEqual(e.Location.X, 2);
            Assert.AreEqual(e.Location.Y, 5);
            Assert.AreEqual(e.Displacement.X, 2);
            Assert.AreEqual(e.Displacement.Y, 5);

            // On déplace l'élément en passant par sa stratégie
            e.MoveStrategy.ExecuteMove(e);
            Assert.AreEqual(e.Location.X, 4);
            Assert.AreEqual(e.Location.Y, 10);
            Assert.AreEqual(e.Displacement.X, 2);
            Assert.AreEqual(e.Displacement.Y, 5);

        }