public int maxValue(GameState state)
{
int v = int.MIN_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 minimumValueOfSuccessor = minValue(successor);
if (minimumValueOfSuccessor > v)
{
v = minimumValueOfSuccessor;
state.put("next", successor);
}
}
return v;
}
}