62,634
社区成员




import java.util.Scanner;
/**
* @author zhuangqing
*/
public class Test {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String[] msg = {"剪刀","石头", "布"};
System.out.println("-----猜拳游戏-----");
System.out.println("请出拳(1剪刀,2石头,3布)");
int person = in.nextInt();
int computer = (int)(Math.random()*3) + 1;
String result = "电脑出的是:" + msg[computer-1] + ",你出的是:" + msg[person - 1];
if (person == computer) {
System.out.println("平局," + result);
} else if (person == 1&&computer==2||person==2&&computer==3||person==3&&computer==1) {
System.out.println("你输了," + result);
} else {
System.out.println("你赢了," + result);
}
}
}
第二种实现(优化判断次数):
import java.util.Scanner;
/**
* @author zhuangqing
*/
public class Test2 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String[] msg = {"剪刀","石头", "布"};
System.out.println("-----猜拳游戏-----");
System.out.println("请出拳(1剪刀,2石头,3布)");
int person = in.nextInt();
int computer = (int)(Math.random()*3) + 1;
String result = "电脑出的是:" + msg[computer-1] + ",你出的是:" + msg[person - 1];
int naturalEnemy = (person+1)%3; //天敌
if (naturalEnemy == computer) {
System.out.println("你输了," + result);
} else if (person == computer) {
System.out.println("平局," + result);
} else {
System.out.println("你赢了," + result);
}
}
}
第三种实现:(优化面向对象设计)
import java.util.Scanner;
/**
* @author zhuangqing
*/
public class Test3 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
GuessingResult[] results = {GuessingResult.SCISSOR, GuessingResult.ROCK, GuessingResult.PAPER};
System.out.println("-----猜拳游戏-----");
System.out.println("请出拳(1剪刀,2石头,3布)");
int person = in.nextInt();
int computer = (int)(Math.random()*3) + 1;
GuessingResult personResult = results[person - 1];
GuessingResult computerResult = results[computer-1];
String result = "电脑出的是:" + computerResult.getDesc() + ",你出的是:" + personResult.getDesc();
if (personResult.naturalEnemy() == computerResult) {
System.out.println("你输了," + result);
} else if (personResult.defeatedByMe() == computerResult) {
System.out.println("你赢了," + result);
} else {
System.out.println("平局," + result);
}
}
}
/**
* 猜拳结果枚举类
*/
enum GuessingResult {
SCISSOR("剪刀"){
public GuessingResult naturalEnemy() {
return ROCK;
}
public GuessingResult defeatedByMe() {
return PAPER;
}
},
ROCK("石头"){
public GuessingResult naturalEnemy() {
return PAPER;
}
public GuessingResult defeatedByMe() {
return SCISSOR;
}
},
PAPER("布"){
public GuessingResult naturalEnemy() {
return SCISSOR;
}
public GuessingResult defeatedByMe() {
return ROCK;
}
},
;
private String desc;
GuessingResult(String desc) {
this.desc = desc;
}
public String getDesc() {
return desc;
}
/**
* 天敌
* @return
*/
public abstract GuessingResult naturalEnemy();
/**
* 能击败的对象
* @return
*/
public abstract GuessingResult defeatedByMe();
}
就这些吧,希望这些代码能对楼主有所帮助,有不明白的,欢迎追问!