[test] completed test coverage
[enhancement] fixed the minimax algorithm. It was not taking any decision in the internal nodes of the tree while propagating back the score of the subtree. Now we pick the "best" move internally and thus the score at the root only consider the "best" moves of the substree - as well as the random opponent moves.