溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么在java中利用面向?qū)ο缶帉懸粋€(gè)人機(jī)猜拳小游戲

發(fā)布時(shí)間:2020-12-28 14:05:19 來源:億速云 閱讀:232 作者:Leah 欄目:開發(fā)技術(shù)

怎么在java中利用面向?qū)ο缶帉懸粋€(gè)人機(jī)猜拳小游戲?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

Computer.java類

package com.whf.guess.game;
/** 
 * @author :辰
 * @version 
 * 創(chuàng)建時(shí)間:2017年2月24日 上午8:38:29 
 * 
 */
public class Computer {

  String name = "電腦";//名字
  int score = 0;//積分

  public int showFist() {
    //產(chǎn)生隨機(jī)數(shù)

    int show = (int) ((Math.random()*10)%3+1); // 產(chǎn)生隨機(jī)數(shù),表示電腦出拳

    //輸出出拳結(jié)果并返回
    switch (show) {
    case 1:
      System.out.println(name+"你出拳:剪刀");
      break;
    case 2:
      System.out.println(name+"你出拳:石頭");
      break;
    case 3:
      System.out.println(name+"你出拳:布");
      break;
    }

    return show;
  }



}

Person.java 類

package com.whf.guess.game;

import java.util.Scanner;

/** 
 * @author :辰
 * @version
 * 創(chuàng)建時(shí)間:2017年2月24日 上午8:45:41 
 * 
 */
public class Person {

  String name = "匿名"; //名字
  int score = 0;   //積分  

  public int showFist(){
    //接收用戶的選擇
    Scanner input = new Scanner(System.in);
    System.out.println("\n請(qǐng)出拳:1.剪刀 2.石頭  3.布");
    int show = input.nextInt();
    //輸出出拳結(jié)果,并且返回
    switch (show) {
    case 1:
      System.out.println(name+"你出拳:剪刀");
      break;
    case 2:
      System.out.println(name+"你出拳:石頭");
      break;
    case 3:
      System.out.println(name+"你出拳:布");
      break;
    }
    return show;
  }

}

Game.java類。包含游戲的比賽核心代碼

package com.whf.guess.game;

import java.util.Scanner;

/** 
 * @author :辰
 * @version
 * 創(chuàng)建時(shí)間:2017年2月24日 上午8:37:06 
 * 
 */
public class Game<computer> {

  Person person ; //甲方

  Computer computer;// 乙方

  int count;// 對(duì)戰(zhàn)次數(shù)

  public void inital(){
    person = new Person();
    computer = new Computer();
    count = 0;
  }
  //開始游戲
  public void startGame(){
    System.err.println("-------------歡迎進(jìn)入猜拳游戲---------------");
    System.out.println();
    System.out.println("******************************************");
    System.out.println("——————出拳規(guī)則:1.剪刀  2.石頭  3.布——————————");
    System.out.println("-------------》》》猜拳開始《《《------------");
    System.err.println("-------------------------------------------");
    Scanner input = new Scanner(System.in);
    String exit="n";//退出系統(tǒng)
    do {
      inital();//初始化
      //選擇對(duì)手
      System.out.println("選擇你的對(duì)手1.馬云   2.馬化騰   3.馬大姐  ");
      int role = input.nextInt();
      if (role ==1) {
        computer.name="馬云";
      }else if (role == 2) {
        computer.name="馬化騰";
      }else if (role == 3) {
        computer.name="馬大姐";
      }

      //游戲玩家輸入姓名
      System.out.println("請(qǐng)輸入你的姓名:");
      person.name=input.next();
      System.out.println(person.name+"  VS  "+computer.name+"對(duì)戰(zhàn)\n");
      //開始游戲
      System.out.println("要開始嗎?(y/n)");
      //開始一局游戲
      String start = input.next();
      int perFist;//游戲用戶出拳
      int comFist;//計(jì)算機(jī)出拳
      while (start.equals("y")) {
        //出拳
        perFist = person.showFist();
        comFist = computer.showFist();
        //判斷勝負(fù)
        if ((perFist==1&&comFist==1)||(perFist==2&&comFist==2)||(perFist==3&&comFist==3)) {
          System.err.println("結(jié)果:和局,真衰!\n");//平局
        }else if ((perFist==2&&comFist==1)||(perFist==3&&comFist==2)||(perFist==1&&comFist==3)) {
          System.err.println("結(jié)果:你贏了,真帥!\n");//勝利
          person.score++;
        }else {
          System.err.println("結(jié)果是:^_^,你輸了,下載再戰(zhàn)!\n");//計(jì)算機(jī)贏
          computer.score++;
        }
        count++;
        System.out.println("是否進(jìn)行下一輪(y/n)");
        start = input.next();

      }
      //顯示結(jié)果
      showResult();
      System.out.println("\n要開始下一局嗎?(y/n):");
      exit = input.next();
      System.out.println();

    } while (!exit.equals("n"));

    System.out.println("系統(tǒng)退出");
  }
  private void showResult() {
    // TODO Auto-generated method stub
    //顯示對(duì)戰(zhàn)次數(shù)
    System.out.println("------------------------------");
    System.out.println(computer.name+"  VS  "+person.name);
    System.out.println("對(duì)戰(zhàn)次數(shù):"+count);
    //顯示最終得分
    System.out.println("\n姓名\t得分");
    System.out.println(person.name+"\t"+person.score);
    System.out.println(computer.name+"\t"+computer.score+"\n");

    //顯示對(duì)戰(zhàn)結(jié)果
    int result = calcResult();
    if (result==1) {
      System.err.println("結(jié)果:打成平手,下次再和你一分高下");
    }else if (result==2) {
      System.err.println("結(jié)果:恭喜恭喜你贏得比賽");
    }else
    {
      System.err.println("結(jié)果:不氣餒,下次再來");//計(jì)算機(jī)贏
    }
    System.out.println("--------------------------");


  }

  //計(jì)算比賽結(jié)果
  private int calcResult() {
    // TODO Auto-generated method stub
    if (person.score == computer.score) {
      return 1;//戰(zhàn)平
    }else if (person.score > computer.score) {
      return 2;//游戲玩家贏
    }else {
      return 3;//惜敗
    }
  }

}

StartGuess.java類

package com.whf.guess.game;
/** 
 * @author :辰
 * @version
 * 創(chuàng)建時(shí)間:2017年2月24日 上午9:35:36 
 * 
 */
public class StartGuess {
  public static void main(String[] args) {
    Game game = new Game();

    game.inital();

    game.startGame();
  }

}

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI