溫馨提示×

溫馨提示×

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

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

如何使用Java實(shí)現(xiàn)猜數(shù)字游戲

發(fā)布時(shí)間:2021-04-15 12:48:22 來源:億速云 閱讀:195 作者:小新 欄目:編程語言

這篇文章將為大家詳細(xì)講解有關(guān)如何使用Java實(shí)現(xiàn)猜數(shù)字游戲,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

具體如下:

這里演示一段java語言猜數(shù)字代碼,流程如下:

  • 系統(tǒng)隨機(jī)生成0-9中的不重復(fù)四位數(shù)字。

  • 然后用戶輸入四個(gè)數(shù)字

  • 如果數(shù)字對了,位置不對 則顯示 nB,n是有幾個(gè)是位置對的。

  • 如果數(shù)字對了,位置也是對的 則顯示mA,m代表有幾個(gè)數(shù)字是正確位置上的。

例如:  生成的是0369    用戶輸入的是0396 則顯示2A2B,兩個(gè)位置是正確并且數(shù)字正確的,另外兩個(gè)是數(shù)字正確,位置不正確的。

Java代碼:

package com.example.test;
import java.util.Random;
import java.util.Scanner;
public class NumberCode {
  int[] Nums = new int[4];
  int[] inputNumsArray = new int[4];
  int difficultyLevel;
  int difficulty;
  int aA = 0;
  int bB = 0;
  String numberStr = "";
  String str = "";
  /**
   * 生成隨機(jī)數(shù)
   */
  public int[] randNums(int n) {
    for (int i = 0; i < Nums.length; i++) {
      Random ran = new Random();
      int a = ran.nextInt(10);
      if (i - 1 != -1) {
        for (int j = 0; j < i; j++) {
          if (a == Nums[j]) {
            i--;
            break;
          } else {
            Nums[i] = a;
          }
        }
      } else {
        Nums[i] = a;
      }
    }
    return Nums;
  }
  /**
   * 選擇游戲難度 
   */
  public int selectLevel() {
    // 接受一個(gè)數(shù)字
    // 1:Easy 可以猜12次
    // 2:Common 可以猜9次
    // 3:Hard 可以猜7次
    @SuppressWarnings("resource")
    Scanner scan = new Scanner(System.in);
    System.out
        .println("請選擇難度系數(shù)(輸入數(shù)字),1:Easy 可以猜12次;2:Common 可以猜9次;3:Hard 可以猜7次");
    difficulty = scan.nextInt();
    switch (difficulty) {
    case 1:
      difficultyLevel = 12;
      break;
    case 2:
      difficultyLevel = 9;
      break;
    case 3:
      difficultyLevel = 7;
      break;
    default:
      break;
    }
    return difficultyLevel;
  }
  /**
   * 接受用戶輸入的數(shù)字
   */
  public int[] inputNums(int n) {
    @SuppressWarnings("resource")
    Scanner scan = new Scanner(System.in);
    int b = scan.nextInt();
    for (int i = 0; i < inputNumsArray.length; i++) {
      int c = (int) ((int) b / Math.pow(10, 3 - i));
      inputNumsArray[i] = c;
      b = (int) (b - c * Math.pow(10, (3 - i)));
    }
    return inputNumsArray;
  }
  /**
   * 數(shù)字比對的方法
   */
  public String compare(int[] answer, int[] inputs) {
    for (int i = 0; i < answer.length; i++) {
      if (inputs[i] == answer[i]) {
        aA += 1;
        continue;
      } else {
        for (int j = 0; j < answer.length; j++) {
          if (inputs[i] == answer[j]) {
            bB += 1;
          }
        }
      }
    }
    str = "" + aA + "A " + bB + "B ";
    return str;
  }
  /**
   * 整個(gè)游戲過程代碼 
   */
  public void play() {
    randNums(4);
    for (int i = 0; i < Nums.length; i++) {
      numberStr = numberStr + Nums[i];
    }
    selectLevel();
    System.out.println("你選擇了難度系數(shù):" + difficulty + " 共有:" + difficultyLevel
        + "次機(jī)會(huì)。");
    for (int i = 0; i < difficultyLevel; i++) {
      inputNums(4);
      int chanceNums = difficultyLevel - i - 1;
      compare(Nums, inputNumsArray);
      if (aA != 4) {
        if (chanceNums == 0) {
          System.out.println("機(jī)會(huì)用完了,答案是:" + numberStr);
          break;
        } else {
          System.out.println(str + " 你還有" + chanceNums + "次機(jī)會(huì)");
        }
        aA = 0;
        bB = 0;
      } else if (aA == 4) {
        System.out.println("恭喜你,答對了");
        break;
      }
    }
  }
  public static void main(String[] args) {
    NumberCode a = new NumberCode();
    a.play();
  }
}

運(yùn)行結(jié)果:

請選擇難度系數(shù)(輸入數(shù)字),1:Easy 可以猜12次;2:Common 可以猜9次;3:Hard 可以猜7次
1
你選擇了難度系數(shù):1 共有:12次機(jī)會(huì)。
0123
0A 2B  你還有11次機(jī)會(huì)
2345
2A 0B  你還有10次機(jī)會(huì)
5678
2A 0B  你還有9次機(jī)會(huì)
7890
0A 2B  你還有8次機(jī)會(huì)
2378
恭喜你,答對了

運(yùn)行效果如下圖:

如何使用Java實(shí)現(xiàn)猜數(shù)字游戲

關(guān)于“如何使用Java實(shí)現(xiàn)猜數(shù)字游戲”這篇文章就分享到這里了,希望以上內(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