You are the Weakest Link, Goodbye
Sniper

The general idea is to keep around one of the stupid players (i.e. ones we are more likely to beat in the face-off) to snipe for the points. After that we try to remove the other low-value players to raise the pot. But when we get to the intelligent players we opt to remove for the most dangerous ones in case our stupid player gets removed. That way if we don't have someone to snipe we should get someone we at least stand a chance against. Also, since we always vote with either a min or max player, I expect we are fairly effective in getting our way.

package WeakestLink.Players;
import java.util.Collections;
import java.util.Iterator;
import java.util.Set;
public class Sniper extends Player {
    @Override
    public int vote(Set&lt;Integer&gt; currentOpponents) {
        int smrt = getSmartness();

        //count number of players smarter/stupider than me
        Iterator&lt;Integer&gt; opps = currentOpponents.iterator();
        int cnt_smrt=0, cnt_stpd=0, opp_smrt, min_stpd=10, max_smrt=0;

        while(opps.hasNext()){
            opp_smrt = opps.next().intValue();
            if(opp_smrt &gt; smrt){
                cnt_smrt++;
                if(opp_smrt &gt; max_smrt) max_smrt = opp_smrt;
            }
            else if(opp_smrt &lt; smrt){
                cnt_stpd++;
                if(opp_smrt &lt; min_stpd) min_stpd = opp_smrt;
            }
        }

        //remove low-value, then dangerous players
        if(cnt_stpd&gt;1)
            return min_stpd;
        else
            return max_smrt;
    }
}