import java.util.Random;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
// TODO 由用户输入用户名后 选择对战对象1.刘备2.关羽3.张飞 开启一轮游戏
//计算机随机出拳 用户选择1.石头2.剪刀3.布
//判断胜负 统计分数 一轮游戏有三局 采取三局两胜 三局(一轮)结束后输出分数
//一轮游戏结束后 询问用户是否继续 继续则重复以上动作
//退出游戏前 输出总共进行了几轮游戏 用户和计算机得分
Scanner input =new Scanner(System.in);
Random random = new Random();
System.out.println("请输入用户名:");
String name = input.next();//保存输入的用户名
System.out.println("请选择对战对象1.刘备2.关羽3.张飞");
int figure =0;//初始化用户选在的对战对象
String fig ="";//初始化对战对象名
figure = input.nextInt();//保存用户选择的对象
int a=0,b=0;//保存计算机和用户出的拳
int numA=0,numB=0;//保存三局中计算机和用户胜利的次数
int sumA=0,sumB=0;//保存计算机和用户的得分
String msg1 = "";//初始化计算机出的拳
String msg2 = "";//初始化用户出的拳
String msg3 = "";//保存胜利者姓名
int c = 0;//保存进行了几轮游戏
//将figure数字对象转换为文字姓名
if(figure==1) {
fig = "刘备";
}else if(figure==2) {
fig = "关羽";
}else if(figure==3) {
fig = "张飞";
}
while(true) {
numA=0;//初始化计算机胜利次数
numB=0;//初始化用户胜利次数
//三局两胜猜拳
for(int i=0;i<3;i++) {
a=random.nextInt(3)+1;//保存计算机的随机出拳
//System.out.println(a);
System.out.println("请选择1.石头2.剪刀3.布");
b=input.nextInt();//保存用户的出拳
if(a==1&&b==2) {//计算机出石头,用户出剪刀,计算机胜,记录一次
numA=numA+1;//计算机胜利次数加1
msg3=fig;//将用户选择的对战对象名赋值给msg3
}else if(a==1&&b==3) {//计算机出石头,用户出布,用户机胜,记录一次
numB=numB+1;//用户胜利次数加1
msg3=name;//将用户名赋值给msg3
}else if(a==2&&b==1) {//计算机出剪刀,用户出石头,用户机胜,记录一次
numB=numB+1;
msg3=name;
}else if(a==2&&b==3) {//计算机出剪刀,用户出布,计算机胜,记录一次
numA=numA+1;
msg3=fig;
}else if(a==3&&b==2) {//计算机出布,用户出剪刀,用户机胜,记录一次
numB=numB+1;
msg3=name;
}else if(a==3&&b==1) {//计算机出布,用户出石头,计算机胜,记录一次
numA=numA+1;
msg3=fig;
}
//将计算机随机的数字转化为文字
if(a==1) {
msg1="石头";
}else if(a==2) {
msg1="剪刀";
}else if(a==3) {
msg1="布";
}
//将用户随机的数字转化为文字
if(b==1) {
msg2="石头";
}else if(b==2) {
msg2="剪刀";
}else if(b==3) {
msg2="布";
}
//当计算机出拳与用户出拳相同时输出平局
if(a==b) {
System.out.println("平局");
}else {
System.out.println(fig+"出了"+msg1+",你出了"+msg2+","+msg3+"胜");
}
}
//判断计算机和用户谁胜利的次数多,胜利次数多的积一分
if(numA==numB) {
System.out.println("平局,不计分");
}else if(numA>numB) {
System.out.println(fig+"胜,计1分");
sumA=sumA+1;
}else if(numB>numA) {
System.out.println(name+"胜,计1分");
sumB=sumB+1;
}
//输出得分情况
System.out.println(fig+"得分"+sumA+","+name+"得分"+sumB);
//询问用户是否继续,输入n退出循环
System.out.println("共玩了"+(++c)+"轮");
System.out.println("是否继续猜拳y/n:");
if(input.next().equals("n")) {
System.out.println("退出猜拳");
break;
}else {
System.out.println("进入下一局");
}
}
}
}