TreeProblemFramework is a .NET Core library to solve puzzles whose solution is based on a tree search. Its input should consist of a definition for the puzzle, including the corresponding rules, a description of the solution and an initial state. Moreover and optionally, an heuristic might also be given as part of the input. After processing, the library outputs the steps that reach the solution while satisfying the rules.

Use case

The library might be used to solve problems/games such as:

  1. N-Puzzle
  2. Unblock Me
  3. Sokoban
  4. Maze solving
  5. Rubik’s Cube
  6. many more…
  7. …and any other problem whose solution gets smartly described in terms of a tree search.


Although usage of the library is governed by the MIT License, do clearly link to the repository as follows in case of any full or partial usage:

@software {yepezTPF,
    author = {Yépez, Edgar},
    title = {TreeProblemFramework},
    url = {},
    year = {2020}

In case of having any comments, suggestions or finding issues, send an e-mail to

Copyright 2020 ESYL.


Instructions on how to reference the library shall be found in the ESYL.TreeProblemFramework nuget site.


For instructions on how to get started, visit the usage guide. Additionally, implementations for a solution to several puzzles shall be found in the Examples folder.



No responses yet

Leave a Reply

Your email address will not be published. Required fields are marked *