import java.util.Scanner; public class Player { //属性 name score private String name; private int score=0; public Player() { super(); } public Player(String name) { super(); this.name = name; } public String getName() { return name; } //获得名字 public void setName(String name) { this.name = name; } //获得分数 public int getScore() { return score; } //设置分数 public void setScore(int score) { this.score = score; } //返回玩家出拳 public int showFist(){ Scanner sc=new Scanner(System.in);//new一个输入 int act=-1; //正确输入1 2 3 ,只有在这个范围内才不会重新提醒输入 do{ System.out.println("剪刀石头布分别代表这1、2、3....\n请出拳"); act=sc.nextInt(); }while(act<1||act>3); //对应输出玩家的出拳方式 switch(act){ case 1:System.out.println("你的出拳是剪刀....");break; case 2:System.out.println("你的出拳是石头....");break; case 3:System.out.println("你的出拳是布....");break; } return act;//返回出拳的值 } }
import java.util.*; public class Machine { private String name; private int score=0; public Machine(String name) { super(); this.name = name; } public Machine() { super(); } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getScore() { return score; } public void setScore(int score) { this.score = score; } //类似于玩家的那个函数。。只是一个是随机数 一个是用户输入 public int showFist() { Random r=new Random();//new 一个随机数 int act=r.nextInt(2)+1;//产生随机数 nextInt(2)-> 产生 0 1 2 所以必须加上+1 -> 1 2 3 switch(act){ case 1:System.out.println(name+"出的是剪刀....");break; case 2:System.out.println(name+"出的是石头....");break; case 3:System.out.println(name+"出的是布....");break; } return act; } }
import java.util.Scanner; public class Referee { Player player; Machine machine; private int count; public int getCount() { return count; } public Referee(){ player=new Player(); machine=new Machine(); } private void calcResult(int comp1,int comp2){ //玩家输的情况 if((comp1==1&&comp2==2)|| (comp1==2&&comp2==3)|| (comp1==3&&comp2==1)){ //加分 machine.setScore(machine.getScore()+1); //输出获胜信息 System.out.println(machine.getName()+"获胜...."); }else if(comp1==comp2){//平局的时候 System.out.println(player.getName()+"和"+machine.getName()+"平手"); }else{ //玩家赢的情况 player.setScore(player.getScore()+1); System.out.println(player.getName()+"获胜...."); } count++;//记录进行的盘数 } private void showResult(){ //输出对应的信息 System.out.println(player.getName()+"VS"+machine.getName()); System.out.println("双方的对战结果是:========================="); System.out.println("总共进行的场数:"+getCount()); System.out.println("双方比分 : ========================="); System.out.println(player.getScore()+"VS"+machine.getScore()); if(player.getScore()>machine.getScore()){ System.out.println(player.getName()+"获胜..."); }else if(player.getScore()==machine.getScore()){ System.out.println("双方平局"); }else{ System.out.println(machine.getName()+"获胜..."); } } public void startGame(){ //输入用户名 Scanner sc=new Scanner(System.in); System.out.println("请输入您的昵称"); String name=sc.nextLine(); //设置玩家昵称 player.setName(name); System.out.println("您的昵称是:"+player.getName()); System.out.println("你的对手有1、比尔盖茨 2、乔布斯 3、马云 ...请选择相应的序号"); //选择对应的对手 int choice=sc.nextInt(); switch(choice){ case 1:machine.setName("比尔盖茨");break; case 2:machine.setName("乔布斯");break; case 3:machine.setName("马云");break; } System.out.println(); String isYes="yes"; while(isYes.equalsIgnoreCase("yes")){//忽略大小写的字符串比较 //玩家出拳 int comp1=player.showFist(); //机器出拳 int comp2=machine.showFist(); //计算结果 calcResult(comp1, comp2); System.out.println("是否继续游戏/YES NO"); isYes=sc.next(); } showResult();//输出结果情况 } }
//mora项目的主函数 public class StartGame { public static void main(String[] args) { Referee re=new Referee(); re.startGame();//执行游戏 } }