/**
* @Author hty
* @Date 2019-12-16 16:39
* @Version 1.0
*/
import java.util.Random;
// 比赛结果
enum OutCom {
WIN,
LOSE,
DRAW,
}
enum RoShaBo {
PAPER(OutCom.DRAW, OutCom.LOSE, OutCom.WIN),
SCISSORS(OutCom.WIN, OutCom.DRAW, OutCom.LOSE),
ROCK(OutCom.LOSE, OutCom.WIN, OutCom.DRAW);
public OutCom withPaper;
public OutCom withScissors;
public OutCom withRock;
RoShaBo(OutCom withPaper, OutCom withScissors, OutCom withRock) {
this.withPaper = withPaper;
this.withScissors = withScissors;
this.withRock = withRock;
}
public OutCom compet(RoShaBo item) {
switch(item){
case PAPER:
return withPaper;
case SCISSORS:
return withScissors;
case ROCK:
return withRock;
default:
return null;
}
}
}
class RoShaBoRunner {
private static final Random random = new Random();
public static void pay(int rounds) {
for (int i = 0; i < rounds; i++) {
RoShaBoRunner.vs(randomOne(),randomOne());
}
}
private static void vs(RoShaBo it1, RoShaBo it2) {
System.out.println(String.format("%s VS %s: %s", it1.name(), it2.name(), it1.compet(it2).name()));
}
private static RoShaBo randomOne() {
int nextInt = random.nextInt(3);
switch(nextInt) {
case 0:
return RoShaBo.PAPER;
case 1:
return RoShaBo.SCISSORS;
case 2:
return RoShaBo.ROCK;
default:
return null;
}
}
public static void main(String[] args) {
pay(60);
}
}
// 输出结果
ROCK VS ROCK: DRAW
ROCK VS PAPER: LOSE
PAPER VS PAPER: DRAW
PAPER VS ROCK: WIN
SCISSORS VS SCISSORS: DRAW
ROCK VS SCISSORS: WIN
SCISSORS VS ROCK: LOSE
SCISSORS VS PAPER: WIN
PAPER VS PAPER: DRAW
...