import java.util.Scanner;
public class Test {
static Scanner sc=new Scanner(System.in);
static String name;//后面排行榜要使用,定义成全局变量
static String npc; //npc的名字
static int cishu=0; //对战的次数
static int count=0; //记录玩家得分
static int counk=0; //记录电脑得分
//第一阶段:玩家出拳
public static int showFist(){ //返回值保存玩家出拳的值,以备后面对决使用
System.out.println("请出拳:1.剪刀 2.石头 3.布 (输入相应数字)");
int quan=sc.nextInt();
switch(quan) {
case 1:
System.out.println(name+"出拳:剪刀");
break;
case 2:
System.out.println(name+"出拳:石头");
break;
case 3:
System.out.println(name+"出拳:布");
break;
}
System.out.println(quan);
return quan;
}
//第二阶段:电脑出拳,电脑随机生成1-3之间的数字
public static int dianNao(){
int a=(int)(3*Math.random()+1); //随机数1-3
switch(a) {
case 1:
System.out.println(npc+"出拳:剪刀");
break;
case 2:
System.out.println(npc+"出拳:石头");
break;
case 3:
System.out.println(npc+"出拳:布");
break;
}
return a;
}
//第三阶段:游戏界面及角色选择
public static String juese(){//如果后面需要选的角色,可以返回值改成String类型
String jue1="牛魔王"; //定义变量保存角色值,以备排行榜使用
String jue2="孙权";
String jue3="曹操";
System.out.println("---------------欢迎进入游戏世界---------------");
System.out.println();
System.out.println(" "+"******************");
System.out.println(" "+"*** 猜拳,开始 ***");
System.out.println(" "+"******************");
System.out.println();
System.out.println("出拳规则: 1.剪刀 2.石头 3.布");
System.out.println("请选择对方角色 "+"(1:"+jue1+" 2:"+jue2 +" 3:"+jue3+"):");
npc=sc.next();
System.out.println("请输入你的名字"); //玩家的名字
name=sc.next();
switch (npc) {
case "1":
npc=jue1;
break;
case "2":
npc=jue2;
break;
case "3":
npc=jue3;
break;
}
System.out.println(name+"VS"+npc+" 对战");
return npc;
}
//第四阶段:一局对决
public static int isLan(int a,int b){ //定义两个参数,分别接受玩家、电脑出拳
//1、剪刀 2、石头 3、布
int res;
if(a==b){
res=2; //平局
}else if((a==1)&&(b==2)||(a==2)&&(b==3)||(a==3)&&(b==1)){
res=0; //输了
}else
res=1; //赢了
switch(res){
case 0:
System.out.println("输了!");
counk++;
break;
case 1:
System.out.println("赢了!");
count++;
break;
case 2:
System.out.println("平局!");
break;
}
return res;
}
//循环对决
//定义三个全局变量,留着后面排行榜使用
static void duoLun() {
System.out.println("要开始吗?(y/n)");
String start=sc.next();
while("y".equals(start)) {
cishu++;
int a=showFist(); //玩家出拳
int b=dianNao(); //电脑出拳
isLan(a,b);
System.out.println("是否开始下一轮?(y/n)");
start=sc.next();
}
}
//第六阶段 排行榜
static void paiHang() {
System.out.println("---------------------------------------------");
System.out.println(name+" VS "+npc);
System.out.println("对战次数:"+cishu);
System.out.println("姓名\t得分");
System.out.println(name+"\t"+count);
System.out.println(npc+ "\t"+counk);
if(count==counk){
System.out.println("结果平平!");
}else if(count>counk){
System.out.println("不错啊!你赢了");
}else {
System.out.println("你输了,下次努力!");
}
System.out.println("---------------------------------------------");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
juese();//玩家选角色
duoLun();//循环对阵
paiHang();//排行榜
}
}
人机猜拳
最新推荐文章于 2023-05-10 11:54:13 发布