实验要求(分支练习):
(游戏:剪刀、石头、布)编写可以玩剪刀-石头-布的游戏。(剪刀可以剪布,石头可以砸剪刀,布可以包石头。)
程序提示用户随机产生一个数,这个数为0、1或者2,分别表示石头、剪刀和布。程序提示用户输入值0、1或者2,然后显示一条信息,表明用户和计算机的输赢。
运行事例(建议):
---------------欢迎进入猜拳游戏---------------
******************************************
———出拳规则:0.剪刀 1.石头 2.布———
---------》》》猜拳开始《《《---------
----------------------------------------------
请选择你的对手:1.喜茶 2.奈雪 3.伏见桃山
1
请输入你的姓名:
雪宝
雪宝VS喜茶
要开始吗?(Y/N)
y
请出拳:0.剪刀 1.石头 2.布
0
雪宝出拳:剪刀
喜茶出拳:石头
结果:喜茶胜,安慰!
要跟我再比一局嘛?(Y/N)
y
请出拳:0.剪刀 1.石头 2.布
2
雪宝出拳:布
喜茶出拳:剪刀
结果:喜茶胜,安慰!
要跟我再比一局嘛?(Y/N)
n
雪宝VS喜茶
对战次数:2
姓名 得分
雪宝 0
喜茶 2
以下为代码:(小白原创,敬请大佬们不吝赐教)
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Game opponent = new Game();
System.out.println("---------------欢迎进入猜拳游戏---------------\r\n"
+ " ******************************************\r\n"
+ " ———出拳规则:0.剪刀 1.石头 2.布———\r\n"
+ " ---------》》》猜拳开始《《《---------\r\n"
+ "\r\n"
+ "----------------------------------------------");
opponent.choose();
}
}
class Game{
int opnum;
int number1,number2;
int scoreuse =0;
int score = 0;
int count = 1;
String name;
String opname;
String ensure;
String fist;
public void choose() {
Scanner scan = new Scanner(System.in);
System.out.println("请选择你的对手:1.喜茶 2.奈雪 3.伏见桃山");
opnum = scan.nextInt();
switch(opnum){
case 1:
opname = "喜茶";
break;
case 2:
opname = "奈雪";
break;
case 3:
opname = "伏见桃山";
break;
default:
System.out.println("请输入正确的数字1,2,3");
choose();
}
System.out.println("请输入你的姓名:");
name = scan.next();
System.out.println(name + "VS" + opname);
System.out.println("要开始吗?(Y/N)");
Ensure(name);
Judge(name);
System.out.println(name+"VS" + opname + "\r\n"
+ "对战次数:" + count + "\r\n"
+ "\r\n"
+ "姓名 得分\r\n"
+ name +"\t" + scoreuse + " \r\n"
+ opname +"\t" + score );
}
public void Judge(String name) {
Scanner scan = new Scanner(System.in);
for(int i = 1;i > 0;){
System.out.println("要跟我再比一局嘛?(Y/N)");
String judge = scan.next();
if(judge.equals("Y")||judge.equals("y")) {
count++;
Guess(name);
} else if(judge.equals("N")||judge.equals("n")){
i = 0;
} else {
System.out.println("请重新选择:(Y/N)");
Judge(name);
}
}
}
public void Ensure(String name) {
Scanner scan = new Scanner(System.in);
ensure = scan.next();
switch(ensure) {
case "Y":
case "y":
Guess(name);
break;
case "N":
case "n":
System.out.println("待会儿再来");
System.out.println("要开始吗?(Y/N)");
Ensure(name);
break;
default:
System.out.println("请重新选择:(Y/N)");
Ensure(name);
}
}
public void Guess(String name) {
Scanner scan = new Scanner(System.in);
System.out.println("请出拳:0.剪刀 1.石头 2.布");
number1 = scan.nextInt();
Switchfist(number1);
System.out.println(name + "出拳:"+ fist);
rand();
Switchfist(number2);
System.out.println(opname + "出拳:"+ fist);
Compare(number1,number2);
}
public void Switchfist(int number) {
switch(number) {
case 0:
fist = "剪刀";
break;
case 1:
fist = "石头";
break;
case 2:
fist = "布";
break;
}
}
public int rand() {
number2 = (int)(Math.random()*2);
return number2;
}
public void Compare(int number1,int number2) {
if((number1==0&&number2==1)||(number1==1&&number2==2)||(number1==2&&number2==0)) {
System.out.println("结果:" + opname + "胜,安慰!");
score++;
}
if((number1==1&&number2==0)||(number1==2&&number2==1)||(number1==0&&number2==2)) {
System.out.println("结果:" + name + "胜,恭喜!");
scoreuse++;
}
if(number1 == number2) {
System.out.println("结果:和局,完美!");
}
}
}
如果本文对你有帮助的话,动动小手点个赞叭~