您現在的位置是:首頁 > 單機遊戲首頁單機遊戲

Java練習:一個猜數遊戲

簡介while (guessLeft > 0) {                System

遊戲次數怎麼說

@Author : By Runsen

效果展現

猜數字遊戲是一個簡單,有趣的小遊戲。遊戲者透過輸入一個指定區間的數字,與系統產生的隨機數進行對比,然後輸出相應的結果。

遊戲執行時產生一個0-10之間的隨機整數,要求使用者從控制檯輸入數字

若輸入的數字比產生的數字小,則輸出:“太小了,再大一點!”;

若輸入的數字比產生的數字大,則輸出:“太大了,再小一點!”,

若輸入的數字和產生的數字相等,則輸出:“恭喜你猜對了!”然後退出程式

Java練習:一個猜數遊戲

功能要求

猜數字:生成一個指定範圍內的隨機正整數,從命令列讀取一個整數,如果和隨機數相同,就 算猜中。

固定隨機數的範圍

支援每次猜數字遊戲的猜測次數,在指定次數內沒猜對,則猜數字失敗,否則就是成功。

可以支援退出遊戲

輸出剩餘的猜測次數

每次猜測後,如果未猜中,則提示本次猜測的數字比目標數字大還是小

遊戲結束後,輸出猜數字遊戲的統計

沒有猜中,要輸出這次的目標數字

可以設定隨機數的範圍,可以設定最大猜測次數

功能分析

第一,需要是設定猜數的範圍,和次數,如果超過這個次數就直over了。

第二,還有統計每次遊戲的次數和猜中游戲的次數

第三,如果輸入-1就是結束遊戲,因此需要一個變數判斷是不是在運行遊戲。

最後,就是需要透過 Math。random生成一個隨機數,判斷猜數是不是相等,相等就是猜中,沒有就次數加一。

第一步

我就設定1到8,一共猜數的次數是五次,

// 建立Scanner從控制檯讀取輸入Scanner in = new Scanner(System。in);// 遊戲設定int rangeStart = 1;int rangeEnd = 8;int guessTotal = 5;

第二步

// 遊戲統計int totalGameCount = 0;int totalCorrectCount = 0;

第三步

boolean stopGame = false;while (!stopGame) {    // 初始化本次遊戲的變數    System。out。println(“=================== 猜 數 字 ===================”);    System。out。println(“目標數已經生成,數字在” + rangeStart + “到” + rangeEnd + “之間,” +            “不包括這兩個數。共有” + guessTotal + “次猜測的機會。輸入-1隨時結束遊戲。”);    // 本次遊戲是否開始了    boolean gameStart = true;    // 本次遊戲是否開始了    boolean gameStart = true;    // 本次是否猜中數字    boolean guessCorrect = false;    while (guessLeft > 0) {}

最後一步

最後一步,一步的邏輯比較複雜,我直接上所有的程式碼

import java。util。Scanner;public class GuessNumber {    public static void main(String[] args) {        // 建立Scanner從控制檯讀取輸入        Scanner in = new Scanner(System。in);        // 遊戲設定        int rangeStart = 1;        int rangeEnd = 8;        int guessTotal = 5;        // 遊戲統計        int totalGameCount = 0;        int totalCorrectCount = 0;        // 是否結束遊戲        boolean stopGame = false;        while (!stopGame) {            // 初始化本次遊戲的變數            // 遊戲次數            int guessLeft = guessTotal;            // 區間            int mod = rangeEnd - rangeStart;            // 隨機數 0到1的小數            double randNum = Math。random();            System。out。println(randNum);            // 求餘數, 保證是0到8            int num = ((int) (randNum * rangeEnd * 100)) % mod;            System。out。println(num);            num += rangeStart;            System。out。println(num);            // 存在 num等於8或者1的清空            if (num <= rangeStart) {                num = rangeStart + 1;            }            if (num >= rangeEnd) {                num = rangeEnd - 1;            }            System。out。println(“=================== 猜 數 字 ===================”);            System。out。println(“目標數已經生成,數字在” + rangeStart + “到” + rangeEnd + “之間,” +                    “不包括這兩個數。共有” + guessTotal + “次猜測的機會。輸入-1隨時結束遊戲。”);            // 本次遊戲是否開始了            boolean gameStart = true;            // 本次是否猜中數字            boolean guessCorrect = false;            while (guessLeft > 0) {                System。out。println(“還有” + guessLeft + “次機會,請輸入猜測的數字,回車確認”);                int guessNum = in。nextInt();                // 輸入-1,結束遊戲                if (guessNum == -1) {                    stopGame = true;                    break;                }                if (guessNum <= rangeStart || guessNum >= rangeEnd) {                    System。out。println(“請輸入在” + rangeStart + “到” + rangeEnd + “之間,的數字,不包括這兩個數。”);                    continue;                }                // 只要至少猜過一次,就算玩過了。                if (gameStart) {                    totalGameCount++;                    gameStart = false;                }                // 可以用的猜測次數減1                guessLeft——;                if (guessNum == num) {                    totalCorrectCount++;                    guessCorrect = true;                    System。out。println(“恭喜你猜對了!這次的數字就是” + num +                            “。本次你共猜了” + (guessTotal - guessLeft) + “次。”);                    break;                } else if (guessNum > num) {                    System。out。println(“猜測的數字比目標數字大。”);                } else {                    System。out。println(“猜測的數字比目標數字小。”);                }            }            if (!guessCorrect) {                System。out。println(“本次的目標數字是” + num + “。這次沒有猜中。”);            }        }        System。out。println(“共進行了” + totalGameCount + “次遊戲,其中正確的為” + totalCorrectCount + “次”);    }}

Top