public void Solve(Board board)
        {
            this.board = board;
            BacktrackingDFS <Move> backtracking = new BacktrackingDFS <Move>(this);

            backtracking.Backtrack(new List <Move>());
        }
        public void GeneratePaths()
        {
            BacktrackingDFS <string> backtracking = new BacktrackingDFS <string>(this);

            backtracking.Backtrack(new List <string>());
        }
        public void GeneratePermutations()
        {
            BacktrackingDFS <int> backtracking = new BacktrackingDFS <int>(this);

            backtracking.Backtrack(new List <int>());
        }