public int minValue(GameState state)
{
int v = int.MAX_VALUE;
if (terminalTest(state))
{
return computeUtility(state);
}
else
{
List<GameState> successorList = getSuccessorStates(state);
for (int i = 0; i < successorList.Count; i++)
{
GameState successor = successorList.get(i);
int maximumValueOfSuccessors = maxValue(successor);
if (maximumValueOfSuccessors < v)
{
v = maximumValueOfSuccessors;
state.put("next", successor);
}
}
return v;
}
}