java猜数游戏图形界面_Java做一个猜数的小游戏
@Author : By Runsen
效果展現
猜數字游戲是一個簡單,有趣的小游戲。游戲者通過輸入一個指定區間的數字,與系統產生的隨機數進行對比,然后輸出相應的結果。
游戲運行時產生一個0-10之間的隨機整數,要求用戶從控制臺輸入數字
若輸入的數字比產生的數字小,則輸出:“太小了,再大一點!”;
若輸入的數字比產生的數字大,則輸出:“太大了,再小一點!”,
若輸入的數字和產生的數字相等,則輸出:“恭喜你猜對了!”然后退出程序
功能要求
猜數字:生成一個指定范圍內的隨機正整數,從命令行讀取一個整數,如果和隨機數相同,就 算猜中。
固定隨機數的范圍
支持每次猜數字游戲的猜測次數,在指定次數內沒猜對,則猜數字失敗,否則就是成功。
可以支持退出游戲
輸出剩余的猜測次數
每次猜測后,如果未猜中,則提示本次猜測的數字比目標數字大還是小
游戲結束后,輸出猜數字游戲的統計
沒有猜中,要輸出這次的目標數字
可以設置隨機數的范圍,可以設置最大猜測次數
功能分析
第一,需要是設置猜數的范圍,和次數,如果超過這個次數就直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?+?"次");????}}總結
以上是生活随笔為你收集整理的java猜数游戏图形界面_Java做一个猜数的小游戏的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: fsaa.exe是什么进程 有什么作用
- 下一篇: java 主备切换_keepalived