private Move getMinMove(StateTree tree) throws Exception
	{
		if (tree.isLeaf()) {
			return new Move(
					tree.getMove(),
					tree.getScore());
		}
		
		Move minMove = null;
		for (StateTree successor : tree.getSuccessors()) {
			Move move = this.getMaxMove(successor);
			if (minMove == null || move.getScore() < minMove.getScore()) {
				minMove = new Move(successor.getMove(), move.getScore());
			}
		}
		
		return minMove;
	}