Beispiel #1
0
        public void TestBattleshipBoardAttack()
        {
            List <Coordinate> battleship1Coords = new List <Coordinate> {
                new Coordinate(0, 0), new Coordinate(0, 1), new Coordinate(0, 2)
            };
            Battleship battleship1 = new Battleship(battleship1Coords);

            List <Coordinate> battleship2Coords = new List <Coordinate> {
                new Coordinate(2, 1), new Coordinate(3, 1), new Coordinate(4, 1)
            };
            Battleship battleship2 = new Battleship(battleship2Coords);

            BattleshipBoard board = new BattleshipBoard(new List <Battleship> {
                battleship1, battleship2
            });

            // Destroy Battleship1
            board.Attack(new Coordinate(0, 0));
            board.Attack(new Coordinate(0, 1));
            board.Attack(new Coordinate(0, 2));

            Assert.IsTrue(!board.IsLost());
            Assert.IsTrue(board.RemainingBattleships == 1);

            // Destroy Battleship 2
            board.Attack(new Coordinate(2, 1));
            board.Attack(new Coordinate(3, 1));
            board.Attack(new Coordinate(4, 1));


            Assert.IsTrue(board.IsLost());
            Assert.IsTrue(board.RemainingBattleships == 0);

            // Redestroy Battleship 2 and check state is still lost
            board.Attack(new Coordinate(0, 0));
            board.Attack(new Coordinate(0, 1));
            board.Attack(new Coordinate(0, 2));

            Assert.IsTrue(board.IsLost());
            Assert.IsTrue(board.RemainingBattleships == 0);
        }