Java實(shí)現(xiàn)猜數(shù)字小游戲詳解流程
猜數(shù)字游戲
系統(tǒng)自動(dòng)生成一個(gè)隨機(jī)整數(shù)(1-100), 然后由用戶輸入一個(gè)猜測(cè)的數(shù)字. 如果輸入的數(shù)字比該隨機(jī)數(shù)小, 提示 "低 了",
如果輸入的數(shù)字比該隨機(jī)數(shù)大, 提示 "高了" , 如果輸入的數(shù)字和隨機(jī)數(shù)相等, 則提示 "猜對(duì)了
整理思路
1. 我們玩游戲的時(shí)候,都有開始游戲和退出游戲
2. 其次,它要生成一個(gè)隨機(jī)數(shù),如果是固定值,哪有什么意思?
3. 再者,我們要輸入數(shù)字,根據(jù)它反饋的情況進(jìn)行判斷和猜測(cè)數(shù)字的大小
4. 但是我們不可能說一次就判斷成功,所以我們需要一個(gè)循環(huán)輸入
5. 最后,猜對(duì)了數(shù)字之后,我們需要退出游戲模式,重新回到菜單界面,讓用戶選擇玩還是不玩,你總不能說讓別人一直玩,退不出來吧。那這游戲挺砸吧的
現(xiàn)在我們正式開始制作
import java.util.Random;
import java.util.Scanner;
public class LogicControl {
// 注意 自定函數(shù) menu 和 game的位置,不需要放在 main 方法的前面,因?yàn)?java 里 是沒法函數(shù)聲明的說法,要用就直接調(diào)用的
public static void menu(){// 游戲菜單選擇界面
System.out.println("*****************");
System.out.println("**** 1.Play ****");
System.out.println("**** 0.Exit ****");
System.out.println("*****************");
}
public static void game(){// 游戲運(yùn)行程序
Scanner scanner = new Scanner(System.in);//為生成一個(gè)隨機(jī)值,做準(zhǔn)備
Random random = new Random();//默認(rèn)隨機(jī)種子是系統(tǒng)時(shí)間,提示 在括號(hào)里加上數(shù)字,它生成一個(gè)指定數(shù),所以最好不要畫蛇添足
int toGuess = random.nextInt(100);// 生成 100 以內(nèi)的數(shù)字
while(true){// 死循環(huán),不猜對(duì)不退出
System.out.println("請(qǐng)輸入你所猜的數(shù)字");
int guess = scanner.nextInt();
if(guess < toGuess){
System.out.println("猜小了");
}else if(guess > toGuess){
System.out.println("猜大了");
}else{// guess == toGuess
System.out.println("猜對(duì)了");
break;//猜對(duì)了,才有權(quán)力退出, 當(dāng)然你把游戲插卡拿走,強(qiáng)制退出游戲,我能拿你怎么辦?
}// 圖55
}
}
public static void main(String[] args) {// 首先,主體 類和方法 要先寫好
Scanner scanner = new Scanner(System.in);// 為我們輸入數(shù)據(jù)做好準(zhǔn)備
int input = 0;// 輸入變量初始化
do{
menu();// 玩家進(jìn)入游戲,一開始肯定是游戲界面
System.out.println("請(qǐng)選擇:");// 根據(jù)我們的游戲游戲界面選項(xiàng),決定輸入的值
input = scanner.nextInt();// 輸入變量更新
switch(input){// 使用switch 語句 進(jìn)行,對(duì)輸入數(shù)據(jù)的判斷
case 1:{//如果是 1, 就是play 玩游戲
game();//使用 game 自定義函數(shù),圖54
break;// 游戲結(jié)束,退出游戲,回到游戲主界面. 圖56
} case 0:{// 如果是 0,退出程序,不玩了!
System.out.println("退出游戲");
break;// 圖 57
} default:{// 如用用戶輸入的數(shù)據(jù),不是我指定的數(shù)據(jù),則我們需要反饋用戶信息,讓用戶重新選擇
System.out.println("輸入錯(cuò)誤,請(qǐng)重新輸入");//圖 53
break;// 注意 break 是可以 switch 和用,break 現(xiàn)在是終止switch 語句,而不是循環(huán)語句
// 這一點(diǎn)是 break的特殊用法
}
}
}while (input>0);// 條件判斷,如果輸入0和負(fù)數(shù),執(zhí)行完上面的程序后,退出循環(huán)(這是do while 的特點(diǎn),先干再說),結(jié)束游戲
// 如果輸入輸入一個(gè)正數(shù),則循環(huán)繼續(xù),只不過如果該正數(shù)不為1是不能進(jìn)行游戲的,系統(tǒng)會(huì)告知你輸入錯(cuò)誤,請(qǐng)重新選擇
}
}
圖1

圖2

圖3

圖4

圖5

到此這篇關(guān)于Java實(shí)現(xiàn)猜數(shù)字小游戲詳解流程的文章就介紹到這了,更多相關(guān)Java 猜數(shù)字內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java equals 方法與hashcode 方法的深入解析
面試時(shí)經(jīng)常會(huì)問起字符串比較相關(guān)的問題,比如:字符串比較時(shí)用的什么方法,內(nèi)部實(shí)現(xiàn)如何?hashcode的作用,以及重寫equal方法,為什么要重寫hashcode方法?以下就為大家解答,需要的朋友可以參考下2013-07-07
SpringBoot集成LiteFlow實(shí)現(xiàn)輕量級(jí)工作流引擎的詳細(xì)過程
LiteFlow 是一款專注于邏輯驅(qū)動(dòng)流程編排的輕量級(jí)框架,它以組件化方式快速構(gòu)建和執(zhí)行業(yè)務(wù)流程,有效解耦復(fù)雜業(yè)務(wù)邏輯,下面給大家介紹SpringBoot集成LiteFlow實(shí)現(xiàn)輕量級(jí)工作流引擎,感興趣的朋友一起看看吧2025-06-06
idea SpringBoot+Gradle環(huán)境配置到項(xiàng)目打包
Gradle是一個(gè)基于Java應(yīng)用的項(xiàng)目自動(dòng)化構(gòu)建工具,本文介紹了在IDEA中創(chuàng)建Spring Boot Gradle項(xiàng)目,項(xiàng)目配置包括init.gradle和settings.gradle,感興趣的可以了解一下2024-11-11
Jexcel實(shí)現(xiàn)按一定規(guī)則分割excel文件的方法
這篇文章主要介紹了Jexcel實(shí)現(xiàn)按一定規(guī)則分割excel文件的方法,涉及java操作Excel文件的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07
Java接收xml格式參數(shù)轉(zhuǎn)為json的方法
文章主要介紹了如何使用JAXB將XML格式的參數(shù)接收并轉(zhuǎn)換為Java實(shí)體類,然后將實(shí)體類轉(zhuǎn)換為JSON格式,文中提到在實(shí)體類中使用`@XmlElement`和`@JsonProperty`注解的重要性,以及如何處理復(fù)雜的XML結(jié)構(gòu)2024-11-11

