1. 程式人生 > 程式設計 >Java人機猜拳實現的思路及方法例項

Java人機猜拳實現的思路及方法例項

建立四個類:

機器人類

玩家類

遊戲類

執行類

一、機器人類:

1.首先建立兩個成員變數,分別作為機器人的名字與積分:

String name;
int jifen;

2.然後建立方法“pcname”用於定義機器人的名字:

寫個switch迴圈來判斷如果你按1234的話誰來與你對戰

3.然後再建立一個方法“chuquan”來定義機器人出什麼,石頭還是剪刀。。:

所以寫個1-3的隨機數

int suiji=((int)(Math.random()*3)+1);

4.最後switch判斷,1的話是石頭,2剪刀,3布

機器人完整程式碼:

import java.util.Scanner;

public class pc {
 String name;
 int jifen;
Scanner input=new Scanner(System.in);
 public void pcname(){
  int pcjuese=input.nextInt();
  switch (pcjuese) {
   case 1:
    name="張飛";
    System.out.println("你選擇了"+name+"對戰");
    break;
   case 2:
    name="趙雲";
    System.out.println("你選擇了"+name+"對戰");
    break;
   case 3:
    name="貂蟬";
    System.out.println("你選擇了"+name+"對戰");
    break;
   default:
    System.out.println("還沒這個人");
  }

 }
 public int chuquan(){
  int suiji=((int)(Math.random()*3)+1);
  switch (suiji){
   case 1:
    System.out.println(name+"出拳:石頭");
    break;
   case 2:
    System.out.println(name+"出拳:剪刀");
    break;
   case 3:
    System.out.println(name+"出拳:布");
    break;
   default:

  }
  return suiji;
 }
}

二、玩家類:

1.和機器人一樣,定義兩個成員變數,用於作為名字和積分:

String name="1";
int jifen=0;

2.建立一個“renname”方法,用於定義玩家的暱稱

3.建立一個”chuquan“方法,用於定義玩家出拳

然後switch進行判斷,按1出石頭,按2出剪刀,按3出布

玩家完整程式碼:

import java.util.Scanner;

public class ren
{
 String name="1";
 int jifen=0;

 Scanner input=new Scanner(System.in);
 public void renname(){
  System.out.println("起一個暱稱吧:");
   name=input.next();
  System.out.println("你的暱稱為:"+name);
 }

 public int chuquan(){
  System.out.println("出拳:1.石頭 2.剪刀 3.布");
  int show=input.nextInt();
  switch (show){
   case 1:
    System.out.println(name+" 出石頭");
    break;
   case 2:
    System.out.println(name+" 出剪刀");
    break;
   case 3:
    System.out.println(name+" 出布");
    break;
   default :
    System.out.println("你準備出個大炮呢?");
  }
  return show;
 }
}

三、遊戲類

1.定義兩個成員變數和new兩個物件:

int count; //進行了幾局遊戲
int pingju; //平局場次
ren Ren =new ren();
pc computer =new pc();

2.建立“game”方法,用來呼叫機器人類和玩家類,以及實現遊戲功能

3.首先呼叫Ren.name()來用於讓玩家建立暱稱

3.1.然後呼叫computer.name()來用於讓玩家選擇和誰對戰

4.一切ok,開始進行功能實現:

首先建立兩個變數,一個是機器人出拳,一個是玩家出拳

int pcquan; //pc出拳
int personquan; //人出拳

y/n開始遊戲和退出遊戲

開始進行遊戲功能實現編寫

5.迴圈的時候把機器人和玩家出拳的方法賦值給上面兩個定義出拳的變數

6.功能ok後建立一個方法,用於定義計分板,這個就很簡單了,直接附上游戲類完整程式碼:

import java.util.Scanner;

public class w {
  
  int count; //進行了幾局遊戲
  int pingju; //平局場次
  ren Ren =new ren();
  pc computer =new pc();

 

  Scanner input=new Scanner(System.in);
public void game(){
  
  System.out.println("規則:1.石頭 2.剪刀 3.布");

  Ren.renname();
  System.out.print("請選擇對方角色(1.張飛 2.趙雲 3.貂蟬): "); // 選擇對方角色
  computer.pcname();
  System.out.println("要開始嘛?(y/n)");
  String yn=input.next();
  int pcquan; //pc出拳
  int personquan; //人出拳
  while (yn.equalsIgnoreCase("y")){

    personquan=Ren.chuquan(); //人出拳
    pcquan=computer.chuquan(); //pc出拳
    if((pcquan==1&personquan==1)|(pcquan==2&personquan==2)|(pcquan==3&personquan==3)){
      System.out.println("平局");
      pingju++;
    }else if((pcquan==1&personquan==3)|(pcquan==2&personquan==1)|(pcquan==3&personquan==2)){
      System.out.println(Ren.name+"贏了");
      computer.jifen++;
    }else {
      System.out.println(computer.name+"贏了");
      Ren.jifen++;
    }
    count++; //表示進行了一局遊戲
    System.out.println("開始下一輪嘛?(y/n)");
    yn=input.next();
    if (yn.equalsIgnoreCase("n")){
      System.out.println("遊戲結束");
      result();
    }

  }
}
  //比賽結果
  public void result(){
    System.out.println("-------------------------------");
    System.out.println(Ren.name+" VS "+computer.name);
    System.out.println("對戰次數:"+count);
    System.out.println("平局"+pingju+"場");
    System.out.println(Ren.name+"贏了"+Ren.jifen+"場");
    System.out.println(computer.name+"贏了"+computer.jifen+"場");

    if(Ren.jifen> computer.jifen){
      System.out.println(Ren.name+"贏了");
    }else if (computer.jifen> Ren.jifen){
      System.out.println(computer.name+"贏了");
    }else {
      System.out.println("平局");
    }
  }
}

三、執行類

這個就不多說了,直接上程式碼

public class test
{
  public static void main(String[] args) {
 w game=new w();
 ren ren=new ren();


  game.game();
  //game.result();
  }
}

到此這篇關於Java人機猜拳實現思路及方法的文章就介紹到這了,更多相關Java人機猜拳思路及方法內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!