溫馨提示×

溫馨提示×

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

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

怎么在Java控制臺(tái)中實(shí)現(xiàn)一個(gè)猜拳游戲

發(fā)布時(shí)間:2021-01-19 15:23:19 來源:億速云 閱讀:188 作者:Leah 欄目:開發(fā)技術(shù)

這篇文章給大家介紹怎么在Java控制臺(tái)中實(shí)現(xiàn)一個(gè)猜拳游戲,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

1、目標(biāo)

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

2、源碼

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

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

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

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

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

直接上代碼:

User.java

import java.util.Scanner;

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

  public int setUser(){
      System.out.println("請輸入:1.剪刀 2.石頭 3.布");
      user = input.nextInt();
      if (user == 1){
        System.out.println("用戶出拳:剪刀");
      }else if (user == 2){
        System.out.println("用戶出拳:石頭");
      }else if (user == 3){
        System.out.println("用戶出拳:布");
      }
    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 {
  //對用戶類和機(jī)器人類進(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("-------------》》》猜拳開始《《《------------");
    System.out.println("-------------------------------------------");
    Scanner input = new Scanner(System.in);

    //獲得用戶想要進(jìn)行的對戰(zhàn)次數(shù)
    System.out.println("請輸入對戰(zhàn)局?jǐn)?shù):");
    user.num = input.nextInt();
    System.out.println("游戲開始");
    
    int userFirst;//用戶出拳
    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();
    }

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

    //顯示對戰(zhàn)結(jié)果
    int result = Result();
    if (result == 1) {
      System.out.println("結(jié)果:打成平手。");
    } else if (result == 2) {
      System.out.println("結(jié)果:恭喜你贏得對戰(zhàn)!");//用戶獲勝
    } else {
      System.out.println("結(jié)果:你輸了,不氣餒,下次再來");//計(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();
  }
}

關(guān)于怎么在Java控制臺(tái)中實(shí)現(xiàn)一個(gè)猜拳游戲就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

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

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

AI