コード例 #1
0
ファイル: UfoTest.cs プロジェクト: ALFAcaRUS/Asteroids
        public void MoveTest()
        {
            IShip mockSip   = new MockShip();
            Ufo   testedUfo = new Ufo(new CoupleDouble(5, 5), new CoupleDouble(1, 1), new CoupleDouble(1, 1), mockSip);

            mockSip.Pos = new CoupleDouble(0, 0);

            for (int i = 4; i >= 0; --i)
            {
                testedUfo.ChengeState(new CoupleDouble(100, 100));

                Assert.AreEqual(new CoupleDouble(i, i), testedUfo.Pos);
            }

            testedUfo.Pos = new CoupleDouble(5, 5);
            mockSip.Pos   = new CoupleDouble(5, 0);

            for (int i = 4; i <= 0; i++)
            {
                testedUfo.ChengeState(new CoupleDouble(100, 100));

                Assert.AreEqual(new CoupleDouble(5, i), testedUfo.Pos);
            }

            testedUfo.Pos = new CoupleDouble(5, 5);
            mockSip.Pos   = new CoupleDouble(12, 0);

            for (int i = 6; i <= 10; i++)
            {
                testedUfo.ChengeState(new CoupleDouble(100, 100));

                Assert.AreEqual(new CoupleDouble(i, 10 - i), testedUfo.Pos);
            }
        }
コード例 #2
0
        public void TestBoard()
        {
            var coordinateReader = new MockCoordinatesReader();
            var console          = new MockConsoleWrapper();
            var ship             = new MockShip();

            IBoard board  = new Board("player 1");
            var    matrix = board.GetMatrix();

            foreach (var kvp in matrix)
            {
                kvp.Value.ShouldBe(CoordinateStatus.Empty);
            }

            ship.MockCoordinatesList += () =>
            {
                return(new List <Coordinates> {
                    new Coordinates('A', 3), new Coordinates('A', 2), new Coordinates('A', 1)
                });
            };

            board.AddShipToMatrix(ship);

            board.Ship.CoordinatesList.Count.ShouldBe(3);

            board.UpdateMatrix(board.Ship.CoordinatesList, CoordinateStatus.Ship);
            matrix = board.GetMatrix();

            List <int> yCoordinateList = new List <int> {
                1, 2, 3
            };

            foreach (var kvp in matrix)
            {
                if (kvp.Key.XCoordinate == 'A' && yCoordinateList.Contains(kvp.Key.YCoordinate))
                {
                    kvp.Value.ShouldBe(CoordinateStatus.Ship);
                }
                else
                {
                    kvp.Value.ShouldBe(CoordinateStatus.Empty);
                }
            }

            board.UpdateMatrix(new Coordinates('A', 3), CoordinateStatus.Hit);
            board.UpdateMatrix(new Coordinates('A', 4), CoordinateStatus.Miss);
            matrix = board.GetMatrix();

            foreach (var kvp in matrix)
            {
                if (kvp.Key.XCoordinate == 'A' && kvp.Key.YCoordinate == 3)
                {
                    kvp.Value.ShouldBe(CoordinateStatus.Hit);
                }
                else if (kvp.Key.XCoordinate == 'A' && kvp.Key.YCoordinate == 4)
                {
                    kvp.Value.ShouldBe(CoordinateStatus.Miss);
                }
                else if (kvp.Key.XCoordinate == 'A' && ((kvp.Key.YCoordinate == 1) || kvp.Key.YCoordinate == 2))
                {
                    kvp.Value.ShouldBe(CoordinateStatus.Ship);
                }
                else
                {
                    kvp.Value.ShouldBe(CoordinateStatus.Empty);
                }
            }
        }