欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java控制臺(tái)實(shí)現(xiàn)猜拳游戲

 更新時(shí)間:2021年01月19日 09:44:36   作者:一本正經(jīng)小崽崽  
這篇文章主要為大家詳細(xì)介紹了Java控制臺(tái)實(shí)現(xiàn)猜拳游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了Java控制臺(tái)實(shí)現(xiàn)猜拳游戲的具體代碼,供大家參考,具體內(nèi)容如下

1、目標(biāo)

通過(guò)控制臺(tái)實(shí)現(xiàn)一個(gè)人機(jī)對(duì)戰(zhàn)的猜拳游戲,用戶(hù)通過(guò)輸入(1.剪刀 2.石頭 3.布),機(jī)器隨機(jī)生成(1.剪刀 2.石頭 3.布),勝者積分,n 局以后通過(guò)積分的多少判定勝負(fù)。

2、源碼

根據(jù)目標(biāo)的要求,可以大概知道,我們需要的類(lèi)有:

①一個(gè)用戶(hù)類(lèi)User,用于獲得和存儲(chǔ)用戶(hù)的出拳;

②一個(gè)機(jī)器人的類(lèi)Robot,用于隨機(jī)生成機(jī)器人的出拳;

③一個(gè)Game類(lèi),是存放核心代碼的類(lèi),用戶(hù)和機(jī)器人的出拳在這里進(jìn)行對(duì)比,對(duì)結(jié)果進(jìn)行記錄,最后輸出結(jié)果;

④最后是一個(gè)調(diào)用各個(gè)方法的Guess類(lèi)。

直接上代碼:

User.java

import java.util.Scanner;

public class User{
  static Scanner input = new Scanner(System.in);
  int user = 0;//用戶(hù)出拳
  int score = 0;//用戶(hù)積分
  int num = 0;//對(duì)戰(zhàn)局?jǐn)?shù)

  public int setUser(){
      System.out.println("請(qǐng)輸入:1.剪刀 2.石頭 3.布");
      user = input.nextInt();
      if (user == 1){
        System.out.println("用戶(hù)出拳:剪刀");
      }else if (user == 2){
        System.out.println("用戶(hù)出拳:石頭");
      }else if (user == 3){
        System.out.println("用戶(hù)出拳:布");
      }
    return user;
  }
}

Robot.java

import java.util.Random;

public class Robot {
  int id = 0;//獲得機(jī)器人的出手
  int score = 0;//機(jī)器人的積分

  //獲得機(jī)器人的出拳
  public int setId(){
    Random random = new Random();
    int r = random.nextInt(3);
    id = r + 1;//獲取機(jī)器人隨機(jī)出拳
    if (id == 1){
      System.out.println("機(jī)器人出拳:剪刀");
    }else if (id == 2){
      System.out.println("機(jī)器人出拳:石頭");
    }else if (id == 3){
      System.out.println("機(jī)器人出拳:布");
    }
    return id;
  }
}

Game.java

import java.util.Scanner;

public class Game {
  //對(duì)用戶(hù)類(lèi)和機(jī)器人類(lèi)進(jìn)行初始化
  User user = new User();
  Robot robot = new Robot();

  public void GameStart() {
    //初始化界面
    System.out.println("-------------歡迎進(jìn)入猜拳游戲---------------");
    System.out.println();
    System.out.println("******************************************");
    System.out.println("——————出拳規(guī)則:1.剪刀  2.石頭  3.布——————————");
    System.out.println("-------------》》》猜拳開(kāi)始《《《------------");
    System.out.println("-------------------------------------------");
    Scanner input = new Scanner(System.in);

    //獲得用戶(hù)想要進(jìn)行的對(duì)戰(zhàn)次數(shù)
    System.out.println("請(qǐng)輸入對(duì)戰(zhàn)局?jǐn)?shù):");
    user.num = input.nextInt();
    System.out.println("游戲開(kāi)始");
    
    int userFirst;//用戶(hù)出拳
    int robotFirst;//機(jī)器人出拳
      for (int i = 0; i < user.num; i++) {
        //獲取雙方的出拳
        userFirst = user.setUser();
        robotFirst = robot.setId();
        //判斷勝負(fù)
        if (userFirst == robotFirst) {
          System.out.println("結(jié)果:平局,不積分。");
        } else if ((userFirst == 2 && robotFirst == 1) || (userFirst == 3 && robotFirst == 2)) {
          System.out.println("結(jié)果:你贏了,加一分!");
          user.score++;
        } else {
          System.out.println("結(jié)果:你輸了,機(jī)器人加一分。");
          robot.score++;
        }
      }
    //顯示結(jié)果
    showResult();
    }

    //輸出對(duì)戰(zhàn)結(jié)果
  private void showResult() {
    //顯示對(duì)戰(zhàn)次數(shù)
    System.out.println("------------------------------");
    System.out.println("對(duì)戰(zhàn)次數(shù):" + user.num);
    //顯示最終得分
    System.out.println("\n姓名\t得分");
    System.out.println("用戶(hù)" + "\t" + user.score);
    System.out.println("機(jī)器人" + "\t" + robot.score + "\n");

    //顯示對(duì)戰(zhàn)結(jié)果
    int result = Result();
    if (result == 1) {
      System.out.println("結(jié)果:打成平手。");
    } else if (result == 2) {
      System.out.println("結(jié)果:恭喜你贏得對(duì)戰(zhàn)!");//用戶(hù)獲勝
    } else {
      System.out.println("結(jié)果:你輸了,不氣餒,下次再來(lái)");//計(jì)算機(jī)贏
    }
    System.out.println("游戲結(jié)束");
    System.out.println("--------------------------");
  }

  //計(jì)算比賽結(jié)果
  private int Result() {
    if (user.score == robot.score) {
      return 1;
    } else if (user.score > robot.score) {
      return 2;
    } else {
      return 3;
    }
  }
}

Guess.java

public class Guess {
  public static void main(String[] args) {
    Game game = new Game();
    
    //調(diào)用輸出比賽結(jié)果的方法
    game.GameStart();
  }
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java中TreeSet、HashSet、Collection重寫(xiě)比較器的實(shí)現(xiàn)

    Java中TreeSet、HashSet、Collection重寫(xiě)比較器的實(shí)現(xiàn)

    比較器是一種可以對(duì)集合或數(shù)組中的元素按照自定義的方式進(jìn)行排序的對(duì)象,本文主要介紹了Java中TreeSet、HashSet、Collection重寫(xiě)比較器的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2023-08-08
  • 深入解析Java中反射中的invoke()方法

    深入解析Java中反射中的invoke()方法

    最近復(fù)習(xí)了一下Java反射的使用,正好了解一下Java中反射中的invoke()方法,稍微整理精簡(jiǎn)一下做下分享,感興趣的可以了解一下
    2021-06-06
  • mybatis-plus3.0.1枚舉返回為null解決辦法

    mybatis-plus3.0.1枚舉返回為null解決辦法

    這篇文章主要介紹了mybatis-plus3.0.1枚舉返回為null解決辦法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • java通過(guò)ssh連接執(zhí)行shell命令,文件傳輸方式

    java通過(guò)ssh連接執(zhí)行shell命令,文件傳輸方式

    這篇文章主要介紹了java通過(guò)ssh連接執(zhí)行shell命令,文件傳輸方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Java 實(shí)戰(zhàn)范例之進(jìn)銷(xiāo)存管理系統(tǒng)的實(shí)現(xiàn)

    Java 實(shí)戰(zhàn)范例之進(jìn)銷(xiāo)存管理系統(tǒng)的實(shí)現(xiàn)

    讀萬(wàn)卷書(shū)不如行萬(wàn)里路,只學(xué)書(shū)上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+vue+Springboot+ssm+mysql+maven+redis實(shí)現(xiàn)一個(gè)前后端分離的進(jìn)銷(xiāo)存管理系統(tǒng),大家可以在過(guò)程中查缺補(bǔ)漏,提升水平
    2021-11-11
  • Mybatis批量刪除多表

    Mybatis批量刪除多表

    MyBatis的作用我想不用多說(shuō),今天說(shuō)說(shuō)MyBatis中的批量刪除操作。 需要的朋友一起看看吧
    2017-10-10
  • java實(shí)現(xiàn)五子棋小游戲

    java實(shí)現(xiàn)五子棋小游戲

    這篇文章主要介紹了java實(shí)現(xiàn)五子棋小游戲的相關(guān)資料,十分簡(jiǎn)單實(shí)用,推薦給大家,需要的朋友可以參考下
    2015-03-03
  • 501 Command "HELO" requires an argument問(wèn)題的解決方法

    501 Command "HELO" requires an argument問(wèn)題的解決方法

    換一個(gè)windows服務(wù)器,發(fā)現(xiàn)就沒(méi)這樣的問(wèn)題,僅在一臺(tái)Linux服務(wù)器上可以重現(xiàn),直觀感覺(jué)就是這臺(tái)Linux服務(wù)器某些配置有問(wèn)題
    2013-08-08
  • java字符流緩沖區(qū)詳解

    java字符流緩沖區(qū)詳解

    這篇文章主要為大家詳細(xì)介紹了java字符流緩沖區(qū)的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • 基于ChatGPT+SpringBoot實(shí)現(xiàn)智能聊天AI機(jī)器人接口并上線至服務(wù)器的方法

    基于ChatGPT+SpringBoot實(shí)現(xiàn)智能聊天AI機(jī)器人接口并上線至服務(wù)器的方法

    ChatGPT是一款基于自然語(yǔ)言處理技術(shù)的聊天機(jī)器人,ChatGPT可以模擬真實(shí)的人類(lèi)對(duì)話,并能夠更貼近用戶(hù)的需求,提供更有價(jià)值的服務(wù),這篇文章主要介紹了基于ChatGPT+SpringBoot實(shí)現(xiàn)智能聊天AI機(jī)器人接口并上線至服務(wù)器,需要的朋友可以參考下
    2023-02-02

最新評(píng)論