/**
* @return all reasonably good next moves with statically evaluated scores.
*/
public final MoveList generateEvaluatedMoves(TwoPlayerMove lastMove, ParameterArray weights) {
GoProfiler prof = GoProfiler.getInstance();
prof.startGenerateMoves();
MoveList moveList = generatePossibleMoves(lastMove);
for (Move move : moveList) {
setMoveValue(weights, (GoMove)move);
}
boolean player1 = (lastMove == null) || !lastMove.isPlayer1();
BestMoveFinder finder = new BestMoveFinder(searchable_.getSearchOptions().getBestMovesSearchOptions());
moveList = finder.getBestMoves(player1, moveList);
addPassingMoveIfNeeded(lastMove, moveList);
prof.stopGenerateMoves();
return moveList;
}