- Person.java 玩家类
-
/** * @author Life_Ding * Time: */ import java.util.Scanner; public class Person { //属性 String P_name;//玩家名称 int P_point;//玩家积分 public int P_fist(){ System.out.print("请出拳:1.剪刀 2.石头 3.布(输入相应数字):"); int sum = new Scanner(System.in).nextInt(); //等值选择 switch switch(sum){ case 1: System.out.println("\n您出拳: 剪刀 "); break; case 2: System.out.println("\n您出拳: 石头"); break; case 3: System.out.println("\n您出拳: 布"); break; default: System.out.println("\n请输入正确选项!"); break; } return sum; } /* * 测试 */ public static void main(String[] args) { Person p = new Person(); p.P_fist(); } }
- Computer.java 电脑类
-
/** * @author Life_Ding *计算机类 */ public class Computer { //属性 String C_name;//NPC名称 int C_point;//NPC积分 /** * NPC的出拳方法 */ public int C_fist(){ //生成随机数 //0~1 乘以10之后 1-9 %3之后0 1 2 int show = (int)(Math.random()*10)%3+1; //等值选择 switch switch(show){ case 1: System.out.println("\nNPC出拳: 剪刀 "); break; case 2: System.out.println("\nNPC: 石头"); break; case 3: System.out.println("\nNPC出拳: 布"); break; } return show; } /* * 测试类 */ public static void main(String[] args) { Computer c = new Computer(); c.C_fist(); } }
- Game.java 游戏类
-
import java.util.Scanner; /** * 初始化 对象类 * @author Life_Ding * */ public class Game { int i=0;//新增计数器计算局数 int name; Person p;//case 4 调用玩家对象名 Computer c;//声明变量 public void initial(){ p = new Person(); c = new Computer(); } /* * 游戏的开始方法 * startGame() */ public void startGame(){ //调用初始化方法 initial(); Scanner input=new Scanner(System.in); System.out.println("-----------------欢迎进入游戏世界---------------\n\n"); System.out.println("\t\t**************"); System.out.println("\t\t ** 猜拳.开始 **"); System.out.println("\t\t**************"); System.out.println("\n\n"); System.out.println("出拳规则:1.剪刀 2.石头 3.布"); System.out.print("请选择.对方角色(1.刘备2.孙权3.曹操):"); int choice = new Scanner(System.in).nextInt(); //选择结构 switch(choice){ case 1: //TODO 怎么给计算机NPC 游戏名赋值!+ //创建对象 声明到类里 从初始化方法中提出去 c.C_name="刘备"; break; case 2: c.C_name="孙权"; break; case 3: c.C_name="曹操"; break; default: System.out.println("请输入正确的选项!"); break; } //给玩家姓名赋值 System.out.print("请输入您的姓名:"); p.P_name=new Scanner(System.in).next(); //NPC选择了哪个英雄对战! // System.out.println("您选择了"+p.P_name+"对战!\n"); System.out.println(p.P_name+" VS "+c.C_name); System.out.print("\n要开始了吗?(y/n):"); String anwer=input.next(); while(anwer.equals("y")){ //调用玩家的方法 int person=p.P_fist();//变量换个位置即可作弊!! int computer=c.C_fist(); //出拳 //通过返回结果来判断输赢 //1.平局 if((person==1&&computer==1)|| (person==2&&computer==2)|| (person==3&&computer==3)){ System.out.println("\n结果:平局!"); //2.玩家赢 }else if((person==1&&computer==3)|| (person==2&&computer==1)|| (person==3&&computer==2)){ System.out.println("\n结果:^_^ ~ 不错哦!您赢了\n"); //case 5:累计积分 p.P_point++;//玩家积分 System.out.println("玩家积分:"+p.P_point); //3.电脑赢 }else{ System.out.println("\n结果:@_@ ~ 运气不好哦!您输了!\n"); c.C_point++;//NPC积分 System.out.println("NPC积分:"+c.C_point); } System.out.print("\n要进行下一局吗?(y/n):"); anwer=new Scanner(System.in).next(); i++; } // case 6: 显示对战人和积分的比较 showResult(); } // 权限用public 或者 privte 都可以 private void showResult() { // TODO 写相应的业务逻辑 //比较积分大小 System.out.println("-------------------------"); System.out.println(p.P_name+" VS "+c.C_name); System.out.println("对战次数:"+i); if(p.P_point>c.C_point){ System.out.println("您赢得了最终的胜利!!!\n"); }else if(c.C_point==p.P_point){ System.out.println("打了个平局!\n"); }else{ System.out.println("您输了!可真是个笨笨!\n"); } //显示积分详细 System.out.println("姓名\t"+"积分\n"+p.P_name+"\t"+p.P_point+ "\n"+c.C_name+"\t"+c.C_point); System.out.println("-------------------------"); } }
- Test.java 测试类
-
public class Test { public static void main(String[] args) { Game g = new Game(); g.startGame(); } }
使用java循环和选择结构,实现人机猜拳
最新推荐文章于 2023-07-04 20:43:54 发布