{"repo":"agausmann/perftree","free":true,"listed":false,"github":"https://github.com/agausmann/perftree","clone":"git clone https://github.com/agausmann/perftree.git","description":"Perft debugger. Compare your chess engine's move generation to Stockfish","language":"Rust","stars":80,"topics":["chess","testing","debugging","perft","rust","cli"],"license":"MIT","category":"dev-tools","readme_excerpt":"perftree [!NOTE] Passively-maintained. I still try to respond to issues and PRs, but I do not plan on developing or merging new features. A perft debugger. Compare your chess engine to Stockfish and quickly find discrepancies in move generation. How it works When debugging a chess engine, it is common to compare its move generation to a known-good engine using the results of the [ perft ][perft] function, which counts all of the nodes at some given depth from some starting position. Using these results, one can quickly isolate the problematic subtrees and figure out where the move generation differs between the two engines. Instead of comparing the results and walking the tree manually, I use and maintain perftree , a semi-automatic debugger that does that hard work for you. It can keep track of where you are in the game tree, evaluate the perft function at the current position, and compare the results automatically, highlighting the differences so they are easy to pick out. Install perftree uses Stockfish, a well-known engine used widely throughout the chess community, as a trusted source of perft results. Download and install [Stockfish][stockfish] if you haven't already, and make sure you can run it from the command line with the command stockfish . Install the perftree CLI application from the crates.io repository with cargo : Usage Your perft script perftree requires some way to execute the perft function on your chess engine. Currently, it uses an executable file (e.g. ","default_branch":null,"files":null,"tree":[],"storefront":"/r/agausmann","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/agausmann/perftree/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}