[{"name":"MinimaxSearch","comment":" This library implements minimax algorithm with alpha-beta pruning.\n\n@docs findBestMove, Evaluation, negateEvaluation\n\n","unions":[{"name":"Evaluation","comment":" Evaluation of a game\n","args":[],"cases":[["Winning",[]],["Loosing",[]],["Score",["Basics.Int"]]]}],"aliases":[],"values":[{"name":"findBestMove","comment":" Computes the best move\n\n  - **apply** - is a function that takes a positon and applies a move\n  - **evaluate** - evaluates the game state\n  - **possibleMoves** - computes all possible next moves\n  - **game** - the game state\n  - **searchDepth** - Defines how deep the algorithm should search. Higher values give better results but are slower.\n\n","type":"{ apply : move -> game -> game, evaluate : game -> MinimaxSearch.Evaluation, possibleMoves : { isYourTurn : Basics.Bool } -> game -> List.List move, searchDepth : Basics.Int } -> game -> Maybe.Maybe move"},{"name":"negateEvaluation","comment":" negates a evaluation\n\nnegateEvaluation Winning --> Loosing\nnegateEvaluation Loosing --> Winning\nnegateEvaluation (Score 42) --> Score -42\n\n","type":"MinimaxSearch.Evaluation -> MinimaxSearch.Evaluation"}],"binops":[]}]