提问的人结贴了 但是我都没把程序给他 现在补上package personal.kent.rockpaperscissors;import java.util.LinkedHashSet;
import java.util.Random;
import java.util.Set;public class Operation { public static void main(String[] args) {
new Operation().judge();
} public void judge() {
Operate opers[] = new Operate[3]; for (int i = 0; i < opers.length; ++i) {
switch (new Random().nextInt(3)) {
case 0:
opers[i] = new Rock(i + "");
break;
case 1:
opers[i] = new Papers(i + "");
break;
case 2:
opers[i] = new Scissors(i + "");
break;
default:
System.exit(-1);
break;
}
System.out.println(opers[i] + "\t" + opers[i].getOperateName());
}

Set<Operate> rock = new LinkedHashSet<Operate>();
Set<Operate> papers = new LinkedHashSet<Operate>();
Set<Operate> scissors = new LinkedHashSet<Operate>(); for (int i = 0; i < opers.length; ++i) {
if (opers[i] instanceof Rock) {
rock.add(opers[i]);
} else if (opers[i] instanceof Papers) {
papers.add(opers[i]);
} else if (opers[i] instanceof Scissors) {
scissors.add(opers[i]);
} else {
System.exit(-1);
}
if (rock.size() != 0 && papers.size() != 0 && scissors.size() != 0) {
System.out.println("broke even");
return;
}
} if (rock.size() == opers.length || papers.size() == opers.length || scissors.size() == opers.length) {
System.out.println("broke even");
return;
}

System.out.print("the winner is ");

if (0 == rock.size()) {
System.out.println(scissors);
} else if (0 == papers.size()) {
System.out.println(rock);
} else {
System.out.println(papers);
}
} public abstract class Operate {
protected String name; protected Operate(String name) {
this.name = name;
} public String toString() {
return name;
} protected abstract String getOperateName();
} public class Rock extends Operate {
protected Rock(String name) {
super(name);
} @Override
protected String getOperateName() {
return "Rock";
}
} public class Papers extends Operate {
protected Papers(String name) {
super(name);
} @Override
protected String getOperateName() {
return "Papers";
}
} public class Scissors extends Operate {
protected Scissors(String name) {
super(name);
} @Override
protected String getOperateName() {
return "Scissors";
}
}
}