To enable searching a larger space, I'm implementing alpha-beta pruning. However, the code is currently quite unclear when reasoning about a tree structure (when to pass parameters, when to get results back, ...) so there needs to be some refactoring to make it understandable.
Immediate unfinished work:
[x] Refactor evaluateMove according to the docblock todo
[x] Rename DecisionWithScore to something more appropriate, like EvaluationResult
[x] Change timed test to inspect number of visited nodes instead
[x] Fix scrutinizer suggestions to make classes with a private constructor final
To enable searching a larger space, I'm implementing alpha-beta pruning. However, the code is currently quite unclear when reasoning about a tree structure (when to pass parameters, when to get results back, ...) so there needs to be some refactoring to make it understandable.
Immediate unfinished work:
evaluateMove
according to the docblock todoDecisionWithScore
to something more appropriate, likeEvaluationResult
final