最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java實現(xiàn)猜數(shù)字游戲教程

 更新時間:2026年06月03日 08:45:05   作者:安生生申  
這段描述主要講解了一個4位數(shù)猜數(shù)字游戲的實現(xiàn)思路和代碼框架,通過遞歸驗證用戶輸入,并使用洗牌算法生成隨機數(shù),最終根據(jù)規(guī)則輸出A和B的數(shù)量,幫助讀者理解游戲邏輯和編程實現(xiàn)

一.游戲規(guī)則

輸入不重復(fù)的4位數(shù),輸出A:1,B:1,

其中A表示位置和數(shù)字都正確,B表示數(shù)字正確位置不正確

假如用戶輸入1234,隨機數(shù)為1405 輸出為A:1,B: 2,

 用戶輸入1432,隨機數(shù)為1405 輸出為A:2,B: 2,

二.實現(xiàn)思路

1.獲取用戶輸入,判斷輸入是否正確,使用遞歸,如果不正確一直提示輸入直到正確為止

2.生成不重復(fù)的隨機數(shù),使用洗牌算法。

3.判斷數(shù)據(jù)是否正確,如果條件全部滿足直接跳出循環(huán)

三.代碼實現(xiàn)

import java.util.Random;
import java.util.Scanner;

public class game {
    public static void main(String[] args) {
//   i次數(shù),y位數(shù)
        System.out.println(mathgame(6, 4));
    }
    // 用戶輸入
    public static double panduan(int y) {
        System.out.println("輸入" + y + "位整數(shù)數(shù)");
        Scanner scanner = new Scanner(System.in);
        double userinput = scanner.nextDouble();
        if (userinput < (1 * Math.pow(10, y - 1)) || userinput > (1 * Math.pow(10, y) - 1)) {
            System.out.println("輸入錯誤");
            return panduan(y);
        }
        if (userinput % 1 != 0) {
            System.out.println("請不要輸入小數(shù)");
            return panduan(y);
        }
        return userinput;
    }

    //  不重復(fù)的隨機數(shù)
    public static int rodem(int lan) {
        Random r = new Random();
//      生成0-9隨機數(shù)
        int arr[] = new int[10];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = i;
        }
        for (int i = 0; i < lan; i++) {
            int rodem = r.nextInt(arr.length - i);
            int temp = arr[lan - 1 - i];
            arr[lan - 1 - i] = arr[rodem];
            arr[rodem] = temp;
        }
//      判斷第一項不能為0
        if (arr[0] == 0) {
            int temp = arr[0];
            int m = arr[r.nextInt(lan-1)+1];
            arr[0] = m;
            arr[m] = temp;
        }
        int result = 0;
        for (int i = 0; i < lan; i++) {
            result = result * 10 + arr[i];
        }
        return result;
    }

    public static String mathgame(int i, int y) {
        //      隨機數(shù)
        String random = String.valueOf((int) rodem(y));
        //      a表示位置和數(shù)字都對
        //      b表示數(shù)字對順序不對

        int a = 0;
        int b = 0;
        String result="失敗了";
        for (int n = 0; n < i; n++) {
            a = 0;
            b = 0;
//        獲取用戶輸入
            String userinput = String.valueOf((int) panduan(y));
//            System.out.println(userinput + "用戶輸入的數(shù)據(jù)");
//            System.out.println(random + "隨機數(shù)");
//          判斷a

            for (int nft = 0; nft < y; nft++) {
//            處理數(shù)據(jù)判斷
                if (random.charAt(nft) == userinput.charAt(nft)) {
                    a += 1;
                }
//              判斷b
                for (int nb = 0; nb < y; nb++) {
                    if (random.charAt(nft) == userinput.charAt(nb)) {
                        b += 1;
                        break;
                    }
                }
            }
            System.out.println("A:" + a + "B:" + b);
            if (a==y){
                 result="成功了";
                break;
            }
        }
        return result;
    }
    ;
}

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Spring為IOC容器注入Bean的五種方式詳解

    Spring為IOC容器注入Bean的五種方式詳解

    這篇文章主要介紹了Spring為IOC容器注入Bean的五種方式詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10
  • 關(guān)于post請求內(nèi)容無法重復(fù)獲取的解決方法

    關(guān)于post請求內(nèi)容無法重復(fù)獲取的解決方法

    這篇文章主要介紹了關(guān)于post請求內(nèi)容無法重復(fù)獲取的解決方法,文中通過代碼示例給大家介紹的非常詳細,對大家的學習或工作有一定的幫助,需要的朋友可以參考下
    2024-03-03
  • 一文帶你掌握Java?SPI的原理和實踐

    一文帶你掌握Java?SPI的原理和實踐

    在Java中,我們經(jīng)常會提到面向接口編程,這樣減少了模塊之間的耦合,更加靈活,Java?SPI?(Service?Provider?Interface)就提供了這樣的機制,本文就來講講它的原理與具體使用吧
    2023-05-05
  • SpringBoot使用Apache?Tika檢測敏感信息

    SpringBoot使用Apache?Tika檢測敏感信息

    Apache?Tika?是一個功能強大的內(nèi)容分析工具,它能夠從多種文件格式中提取文本、元數(shù)據(jù)以及其他結(jié)構(gòu)化信息,下面我們來看看如何使用Apache?Tika檢測敏感信息從而實現(xiàn)數(shù)據(jù)泄露防護吧
    2025-01-01
  • Spring?refresh()源碼解析

    Spring?refresh()源碼解析

    這篇文章主要為大家介紹了Spring?refresh()源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • MyBatis基礎(chǔ)支持DataSource實現(xiàn)源碼解析

    MyBatis基礎(chǔ)支持DataSource實現(xiàn)源碼解析

    這篇文章主要為大家介紹了MyBatis基礎(chǔ)支持DataSource實現(xiàn)源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • Java把多個對象的list的數(shù)據(jù)合并的方法示例

    Java把多個對象的list的數(shù)據(jù)合并的方法示例

    在Java中合并多個List可以使用遍歷、Stream API或Apache Commons Collections,通過遍歷各個List并將元素添加到新List實現(xiàn)合并,Java 8提供了Stream API,使用Stream.of()和flatMap()可以簡潔地合并List,文中給出了多種方法示例,需要的朋友可以參考下
    2024-09-09
  • 由@NotNull注解引出的關(guān)于Java空指針的控制

    由@NotNull注解引出的關(guān)于Java空指針的控制

    這是一些很容易學會的簡單技術(shù),但是對于代碼質(zhì)量和健壯性來說確實很重要。以我的經(jīng)驗,僅是第一個小技巧就已經(jīng)對改進代碼質(zhì)量具有很大的作用了
    2016-09-09
  • java后端進行跨域的幾種方式小結(jié)

    java后端進行跨域的幾種方式小結(jié)

    本文主要介紹了java后端進行跨域的幾種方式小結(jié),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • Java版本不兼容問題詳細解決方案步驟

    Java版本不兼容問題詳細解決方案步驟

    這篇文章主要介紹了Java版本不兼容問題解決的相關(guān)資料,詳細分析了問題原因,并提供了解決方案,包括統(tǒng)一JDK版本、修改項目配置和清理舊版本殘留等步驟,需要的朋友可以參考下
    2025-05-05

最新評論

册亨县| 长武县| 泗洪县| 留坝县| 东海县| 惠东县| 武强县| 鹿泉市| 钦州市| 兰州市| 大化| 荔浦县| 天长市| 海阳市| 和硕县| 新建县| 普格县| 平阴县| 邵阳市| 甘谷县| 清涧县| 建始县| 虹口区| 呼和浩特市| 东方市| 华池县| 云和县| 突泉县| 克什克腾旗| 乐亭县| 武山县| 龙州县| 新巴尔虎右旗| 四子王旗| 崇礼县| 长顺县| 永善县| 随州市| 永德县| 鹿泉市| 冀州市|