Пример #1
0
        public void TestClearBoard()
        {
            var board         = new Board();
            var hashGenerator = new BoardHash();

            // First check if the newly created board is empty
            Assert.AreEqual(_emptyHash, hashGenerator.GetHash(board));

            // Change the board to see if they're not empty
            board.SetBoardValue(1, 1, new BoardValue(1));
            Assert.AreNotEqual(_emptyHash, hashGenerator.GetHash(board));

            // Clear and check if it's empty
            board.Clear();
            Assert.AreEqual(_emptyHash, hashGenerator.GetHash(board));
        }
Пример #2
0
        public void TestGenerateEmptyBoard()
        {
            var hashGenerator = new BoardHash();
            var board         = new Board();

            var hash = hashGenerator.GetHash(board);

            Assert.AreEqual(_emptyHash, hash);
        }
Пример #3
0
        // Solve the board
        public Board Solve(Board board)
        {
            Attempts = 0;
            var   hash = _boardHash.GetHash(board);
            Board result;

            do
            {
                result = GetRandomBoard(hash);
                Attempts++;
            } while (!_boardValidator.IsComplete(result));

            return(result);
        }
Пример #4
0
        public void TestLoadBoardFromHash()
        {
            var hashGenerator = new BoardHash();
            var hash          = String.Empty;

            for (int line = 0; line < 9; line++)
            {
                for (int column = 0; column < 9; column++)
                {
                    hash += column + 1;
                }
            }

            var board = hashGenerator.LoadFromHash(hash);

            Assert.AreEqual(hash, hashGenerator.GetHash(board));
        }