What I need is a program that calculates quality of a chess game based on a analysis of an UCI engine.
Program should work something like that:
1. PGN file including one or more games is loaded
2. Program runs game analysis by UCI compatible enginge. Let's say it will be Stockfish by default, but user should be able to run any UCI engine
3. Program calculates the quality of a game by comparing evaluation of each move made in a game with the evaluation given to best move (according to an engine). If a move is identical with the best move it's quality is 100%. If the difference between the best move and actual move played in the game is greater than the treshold value (which user should be able to define in preferences) the quality of that move is 0%. If the difference is between treshold and the best move it get's value between 0 and 100%. Based on quality of each move an overall quality indicator is calculated separately for each player.
4. The end product of that calcualtion should be a PGN file containing all games with quality values annotated after each move and overall quality indicator calculated for each player.
User should be able to configure the following:
1. How much time engine spends on each move or what depth an engine has to get to for each move.
2. Treshold value for a move to be considered bad (0%).
Programming language choice is up to you.
I need both execuatbles and source code.
Stockfish chess engine: