コード例 #1
0
        public static bool PlaceQueens(Chessboard board = null, int column = 0)
        {
            board = board ?? new ChessBoard();

            for (int row = 1; row <= 8; row++)
            {
                board.Board[column] = row;

                if (board.IsSafe())
                {
                    if (column == 7)
                    {
                        return(true); //Success
                    }
                    else
                    {
                        var newBoard = new ChessBoard(board);
                        if (PlaceQueens(newBoard, column + 1))
                        {
                            return(true);
                        }
                        else
                        {
                            continue;
                        }
                    }
                }
            }
            return(false);
        }