Exemplo n.º 1
0
        public void BattleFieldAddThreeShips()
        {
            var battlefield = new BattleField();

            var addShip1 = battlefield.AddShip(new Battleship());
            var addShip2 = battlefield.AddShip(new Destroyer());
            var addShip3 = battlefield.AddShip(new Destroyer());

            Assert.IsTrue(addShip1);
            Assert.IsTrue(addShip2);
            Assert.IsTrue(addShip3);
        }
Exemplo n.º 2
0
        public void SingleShootInShip()
        {
            var battlefield = new BattleField();
            var destroyer   = new Destroyer();

            var added = battlefield.AddShip(destroyer);

            Assert.IsTrue(added);

            var result = battlefield.Shoot(destroyer.PosX, destroyer.PosY);

            Assert.AreEqual(destroyer.Content, result);
            Assert.AreEqual(destroyer.Content, battlefield.Grid[destroyer.PosX, destroyer.PosY].Content);
            Assert.IsTrue(battlefield.Grid[destroyer.PosX, destroyer.PosY].Discovered);
            Assert.IsFalse(destroyer.Sunk);
        }
Exemplo n.º 3
0
        public void SunkShip()
        {
            var battlefield = new BattleField();
            var destroyer   = new Destroyer();

            var added = battlefield.AddShip(destroyer);

            Assert.IsTrue(added);

            if (!destroyer.Vertical)
            {
                for (var i = 0; i < destroyer.Size; i++)
                {
                    var result = battlefield.Shoot(destroyer.PosX + i, destroyer.PosY);
                    Assert.AreEqual(destroyer.Content, result);
                }

                Assert.AreEqual(destroyer.Content, battlefield.Grid[destroyer.PosX, destroyer.PosY].Content);
                Assert.IsTrue(battlefield.Grid[destroyer.PosX, destroyer.PosY].Discovered);
                Assert.AreEqual(destroyer.Content, battlefield.Grid[destroyer.PosX + 1, destroyer.PosY].Content);
                Assert.IsTrue(battlefield.Grid[destroyer.PosX + 1, destroyer.PosY].Discovered);
                Assert.AreEqual(destroyer.Content, battlefield.Grid[destroyer.PosX + 2, destroyer.PosY].Content);
                Assert.IsTrue(battlefield.Grid[destroyer.PosX + 2, destroyer.PosY].Discovered);
                Assert.AreEqual(destroyer.Content, battlefield.Grid[destroyer.PosX + 3, destroyer.PosY].Content);
                Assert.IsTrue(battlefield.Grid[destroyer.PosX + 3, destroyer.PosY].Discovered);
            }
            else
            {
                for (var i = 0; i < destroyer.Size; i++)
                {
                    var result = battlefield.Shoot(destroyer.PosX, destroyer.PosY + i);
                    Assert.AreEqual(destroyer.Content, result);
                }

                Assert.AreEqual(destroyer.Content, battlefield.Grid[destroyer.PosX, destroyer.PosY].Content);
                Assert.IsTrue(battlefield.Grid[destroyer.PosX, destroyer.PosY].Discovered);
                Assert.AreEqual(destroyer.Content, battlefield.Grid[destroyer.PosX, destroyer.PosY + 1].Content);
                Assert.IsTrue(battlefield.Grid[destroyer.PosX, destroyer.PosY + 1].Discovered);
                Assert.AreEqual(destroyer.Content, battlefield.Grid[destroyer.PosX, destroyer.PosY + 2].Content);
                Assert.IsTrue(battlefield.Grid[destroyer.PosX, destroyer.PosY + 2].Discovered);
                Assert.AreEqual(destroyer.Content, battlefield.Grid[destroyer.PosX, destroyer.PosY + 3].Content);
                Assert.IsTrue(battlefield.Grid[destroyer.PosX, destroyer.PosY + 3].Discovered);
            }

            Assert.IsTrue(destroyer.Sunk);
        }
Exemplo n.º 4
0
        public void BattleFieldAddDestroyer()
        {
            var battlefield = new BattleField();
            var battleship  = new Destroyer();

            var added1 = battlefield.AddShip(battleship);

            Assert.IsTrue(added1);

            Assert.AreEqual(1, battlefield.Ships.Count);

            var firstShip = battlefield.Ships.First();

            Assert.IsNotNull(firstShip);
            Assert.IsInstanceOf(typeof(Ship), firstShip);
            Assert.IsInstanceOf(typeof(Destroyer), firstShip);

            Assert.GreaterOrEqual(firstShip.PosX, 0);
            Assert.Less(firstShip.PosX, 10);
            Assert.GreaterOrEqual(firstShip.PosY, 0);
            Assert.Less(firstShip.PosY, 10);
        }