示例#1
0
        public void TestBottomLineMoveDownFail()
        {
            var chessBoard = new ChessBoard();

            chessBoard.AddNew(new Position(3, 0), ChessBoardHandler.RandomLevel());
            chessBoard.AddNew(new Position(3, 1), ChessBoardHandler.RandomLevel());
            chessBoard.AddNew(new Position(3, 2), ChessBoardHandler.RandomLevel());
            chessBoard.AddNew(new Position(3, 3), ChessBoardHandler.RandomLevel());

            Assert.AreEqual(chessBoard.Move(Direction.Down), false);
        }
示例#2
0
        public void TestRightLineMoveRightFail()
        {
            var chessBoard = new ChessBoard();

            chessBoard.AddNew(new Position(0, 3), ChessBoardHandler.RandomLevel());
            chessBoard.AddNew(new Position(1, 3), ChessBoardHandler.RandomLevel());
            chessBoard.AddNew(new Position(2, 3), ChessBoardHandler.RandomLevel());
            chessBoard.AddNew(new Position(3, 3), ChessBoardHandler.RandomLevel());

            Assert.AreEqual(chessBoard.Move(Direction.Right), false);
        }
示例#3
0
        public void TestLeftLineMoveLeftFail()
        {
            var chessBoard = new ChessBoard();

            chessBoard.AddNew(new Position(0, 0), ChessBoardHandler.RandomLevel());
            chessBoard.AddNew(new Position(1, 0), ChessBoardHandler.RandomLevel());
            chessBoard.AddNew(new Position(2, 0), ChessBoardHandler.RandomLevel());
            chessBoard.AddNew(new Position(3, 0), ChessBoardHandler.RandomLevel());

            Assert.AreEqual(chessBoard.Move(Direction.Left), false);
        }
示例#4
0
        public void TestToplLineMoveUpFail()
        {
            var chessBoard = new ChessBoard();

            chessBoard.AddNew(new Position(0, 0), ChessBoardHandler.RandomLevel());
            chessBoard.AddNew(new Position(0, 1), ChessBoardHandler.RandomLevel());
            chessBoard.AddNew(new Position(0, 2), ChessBoardHandler.RandomLevel());
            chessBoard.AddNew(new Position(0, 3), ChessBoardHandler.RandomLevel());

            Assert.AreEqual(chessBoard.Move(Direction.Up), false);
        }
示例#5
0
        public void SingleRandomAddTheSamePlaceTest()
        {
            var chessBoard     = new ChessBoard();
            int randomRow      = RandomGenerator.Next(4);
            int randomCol      = RandomGenerator.Next(4);
            var randomPosition = new Position(randomRow, randomCol);

            chessBoard.AddNew(randomPosition, ChessBoardHandler.RandomLevel());
            chessBoard.AddNew(randomPosition, ChessBoardHandler.RandomLevel());

            Assert.AreEqual(chessBoard.EmptyCount, 15);
        }
示例#6
0
        public void TestLineMoveUpMergeOnce()
        {
            for (int col = 0; col < 4; ++col)
            {
                var chessBoard = new ChessBoard();
                int level      = ChessBoardHandler.RandomLevel();
                var rows       = RandomGenerator.GetDistinctInts(2, 4);

                chessBoard.AddNew(new Position(rows[0], col), level);
                chessBoard.AddNew(new Position(rows[1], col), level);

                Assert.AreEqual(chessBoard.Move(Direction.Up), true);
                Assert.AreEqual(chessBoard.EmptyCount, 15);
            }
        }
示例#7
0
        public void TestLineMoveRightMergeOnce()
        {
            for (int row = 0; row < 4; ++row)
            {
                var chessBoard = new ChessBoard();
                int level      = ChessBoardHandler.RandomLevel();
                var cols       = RandomGenerator.GetDistinctInts(2, 4);

                chessBoard.AddNew(new Position(row, cols[0]), level);
                chessBoard.AddNew(new Position(row, cols[1]), level);

                Assert.AreEqual(chessBoard.Move(Direction.Right), true);
                Assert.AreEqual(chessBoard.EmptyCount, 15);
            }
        }
示例#8
0
        public void RandomAddNewSetEmptyTest()
        {
            var addEmptyBoard  = new ChessBoard();
            var emptyPositions = addEmptyBoard.GetEmptyPositions();
            int occupyCount    = RandomGenerator.Next(emptyPositions.Count);

            for (int i = 0; i < occupyCount; ++i)
            {
                addEmptyBoard.AddNew(emptyPositions[i], ChessBoardHandler.RandomLevel());
                addEmptyBoard.SetEmpty(emptyPositions[i]);
            }
            var emptyBoard = new ChessBoard();

            Assert.AreEqual(addEmptyBoard.EmptyCount, 16);
            Assert.AreEqual(addEmptyBoard, emptyBoard);
        }