Java實(shí)現(xiàn)猜數(shù)程序
用Java編寫一個(gè)猜數(shù)程序,供大家參考,具體內(nèi)容如下
要求如下:
編寫一個(gè)猜數(shù)程序。命令行顯示菜單:1.開(kāi)始;2.退出。用戶選擇1,則程序生成一個(gè)0~99之間的隨機(jī)整數(shù),命令行顯示“請(qǐng)輸入你猜的數(shù):”讓用戶猜。用戶輸入猜測(cè)的數(shù)據(jù),猜對(duì)了命令行顯示“你猜對(duì)了”,并且出現(xiàn)菜單:1.再來(lái)一次;2.退出。沒(méi)有猜對(duì)程序給出提示(如:太大了,太小了),并要求在命令行繼續(xù)輸入猜測(cè)的值;三次沒(méi)猜對(duì)則程序公布正確的數(shù)字,并且出現(xiàn)菜單:1.再來(lái)一次;2.退出。猜數(shù)時(shí)任何一個(gè)環(huán)節(jié),命令行上總會(huì)顯示用戶的總得分情況。得分規(guī)則如下:一次猜中得3分,第二次猜中得2分,第三次得1分,三次沒(méi)有猜中扣2分。主類的名稱定為GuessNumber。
上代碼
import java.util.InputMismatchException;
import java.util.Random;
import java.util.Scanner;
public class GuessNumber {
public static int choice;
public static int point = 0;
//控制choice為0/1,防臉滾鍵盤
public void judge01()
{
try {
Scanner sc = new Scanner(System.in);
choice = sc.nextInt();
switch (choice)
{
case 1: break;
case 2: System.exit(0);
default:
{
System.out.println("請(qǐng)輸入0-1:");
judge01();
}
}
}
catch (InputMismatchException e) //非整數(shù)(小數(shù)、字符)會(huì)被捕獲
{
System.out.println("請(qǐng)輸入整數(shù)(0-1)!");
judge01();
}
}
//計(jì)算得分
public int point(int count)
{
if (count == 1)
{
point += 3;
return point;
}
else if (count == 2)
{
point += 2;
return point;
}
else if (count == 3)
{
point += 1;
return point;
}
else
{
point -= 2;
return point;
}
}
//猜數(shù)部分
public int start(int num, int count) //返回值為count
{
//try...catch...語(yǔ)句防誤輸入
try {
Scanner sc = new Scanner(System.in);
int input_number;
System.out.println("請(qǐng)輸入你猜的數(shù)(0-99):");
input_number = sc.nextInt();
if (input_number < 0 || input_number > 99) //控制輸入數(shù)字的范圍
{
System.out.println("輸入的整數(shù)范圍:[0,99]");
return start(num, count);
}
else
{
if (input_number < num)
{
count++;
if (count == 3) //count為3時(shí)結(jié)束猜數(shù)并公布正確數(shù)字
{
System.out.println("三次都沒(méi)有猜中,游戲結(jié)束!");
System.out.println("正確數(shù)字:"+num);
count++;
return count;
}
System.out.println("太小了,請(qǐng)重新輸入:");
return start(num, count);
}
else if (input_number > num)
{
count++;
if (count == 3)
{
System.out.println("三次都沒(méi)有猜中,游戲結(jié)束!");
System.out.println("正確數(shù)字:"+num);
count++;
return count;
}
System.out.println("太大了,請(qǐng)重新輸入:");
return start(num, count);
}
else
{
count++;
System.out.println("恭喜你,猜對(duì)了!");
return count;
}
}
}
catch (InputMismatchException e)
{
System.out.println("請(qǐng)輸入整數(shù)!");
start(num, count);
}
return -1;
}
//完整的猜數(shù)流程
public void guess(int num)
{
int count = 0;
count = start(num, count);
point = point(count);
System.out.println("當(dāng)前得分: "+point);
}
public static void main(String[] args) {
System.out.println("1.開(kāi)始 2.退出");
System.out.println("初始分?jǐn)?shù):"+point);
GuessNumber begin = new GuessNumber();
begin.judge01();
int num;
num = new Random().nextInt(99); //創(chuàng)建0-99的隨機(jī)數(shù)
System.out.println("生成的隨機(jī)數(shù)(測(cè)試):"+num); //展示所創(chuàng)建的隨機(jī)數(shù),用于測(cè)試
begin.guess(num);
do {
System.out.println("1.再來(lái)一次 2.退出");
begin.judge01();
num = new Random().nextInt(99);
System.out.println("生成的隨機(jī)數(shù)(測(cè)試):"+num); //展示所創(chuàng)建的隨機(jī)數(shù),用于測(cè)試
begin.guess(num);
}while (choice != 2);
}
}
測(cè)試結(jié)果

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- java實(shí)現(xiàn)的簡(jiǎn)單猜數(shù)字游戲代碼
- java版簡(jiǎn)單的猜數(shù)字游戲?qū)嵗a
- Java編寫猜數(shù)字小游戲
- Java實(shí)現(xiàn)的猜數(shù)字游戲示例
- java實(shí)現(xiàn)猜數(shù)字小游戲
- Java的帶GUI界面猜數(shù)字游戲的實(shí)現(xiàn)示例
- java猜數(shù)字小游戲案例
- Java實(shí)現(xiàn)猜數(shù)字小游戲(有次數(shù)限制)
- java實(shí)現(xiàn)簡(jiǎn)單猜數(shù)字游戲
- java實(shí)現(xiàn)猜數(shù)字小游戲(Swing版)
相關(guān)文章
@CacheEvict + redis實(shí)現(xiàn)批量刪除緩存
這篇文章主要介紹了@CacheEvict + redis實(shí)現(xiàn)批量刪除緩存方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10
Mybatis之解決collection一對(duì)多問(wèn)題(顯示的結(jié)果沒(méi)有整合到一起)
這篇文章主要介紹了Mybatis之解決collection一對(duì)多問(wèn)題(顯示的結(jié)果沒(méi)有整合到一起),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
基于Spring Cloud Zookeeper實(shí)現(xiàn)服務(wù)注冊(cè)與發(fā)現(xiàn)
這篇文章主要介紹了基于Spring Cloud Zookeeper實(shí)現(xiàn)服務(wù)注冊(cè)與發(fā)現(xiàn),幫助大家更好的理解和學(xué)習(xí)spring框架,感興趣的朋友可以了解下2020-11-11
使用logstash同步mysql數(shù)據(jù)到elasticsearch實(shí)現(xiàn)
這篇文章主要為大家介紹了使用logstash同步mysql數(shù)據(jù)到elasticsearch實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
基于SpringBoot中activeMq的JmsTemplate的實(shí)例
這篇文章主要介紹了基于SpringBoot中activeMq的JmsTemplate的實(shí)例問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
解決java 查看JDK中底層源碼的實(shí)現(xiàn)方法
本篇文章是對(duì)在java中查看JDK中底層源碼的解決方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05
Java?Optional避免空指針異常的實(shí)現(xiàn)
空指針異常一直是困擾開(kāi)發(fā)者的常見(jiàn)問(wèn)題之一,本文主要介紹了Java?Optional避免空指針異常的實(shí)現(xiàn),幫助開(kāi)發(fā)者編寫更健壯、可讀性更高的代碼,減少因空值處理不當(dāng)而引發(fā)的錯(cuò)誤,感興趣的可以了解一下2025-04-04
Java split函數(shù)拆分后變成null問(wèn)題解決方案
這篇文章主要介紹了Java split函數(shù)拆分后變成null問(wèn)題解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-10-10

