コード例 #1
0
        public void SolvedBoard2_OnlyFilled_MissingOne2()
        {
            var board = BoardSamples.Board2;

            board = board.ApplyChanges(
                new BoardChange(0, 2, CellState.Filled),
                new BoardChange(1, 0, CellState.Filled),
                new BoardChange(1, 1, CellState.Filled),
                //new BoardChange(2, 0, CellState.Filled),
                new BoardChange(2, 2, CellState.Filled)
                );

            Assert.False(BoardChecker.IsBoardCompleted(board));
        }
コード例 #2
0
        private void SolveAndVerifyBoard(string name, IBoard board)
        {
            var solver = SolverCombiner.AllSolvers.Value;

            IEnumerable <BoardChange> changes;

            do
            {
                changes = solver.Solve(board);
                board   = board.ApplyChanges(changes);
            } while (changes.Any());

            Assert.True(BoardChecker.IsBoardCompleted(board), $"Board: {name}\n{BoardASCIIArt.BoardOnlyAsciiArt(board)}");
        }
コード例 #3
0
        public void SolvedBoard2_AllCellsMarked()
        {
            var board = BoardSamples.Board2;

            board = board.ApplyChanges(
                new BoardChange(0, 0, CellState.Blocked),
                new BoardChange(0, 1, CellState.Blocked),
                new BoardChange(0, 2, CellState.Filled),
                new BoardChange(1, 0, CellState.Filled),
                new BoardChange(1, 1, CellState.Filled),
                new BoardChange(1, 2, CellState.Blocked),
                new BoardChange(2, 0, CellState.Filled),
                new BoardChange(2, 1, CellState.Blocked),
                new BoardChange(2, 2, CellState.Filled)
                );

            Assert.True(BoardChecker.IsBoardCompleted(board));
        }