Java實(shí)現(xiàn)猜數(shù)程序
用Java編寫一個猜數(shù)程序,供大家參考,具體內(nèi)容如下
要求如下:
編寫一個猜數(shù)程序。命令行顯示菜單:1.開始;2.退出。用戶選擇1,則程序生成一個0~99之間的隨機(jī)整數(shù),命令行顯示“請輸入你猜的數(shù):”讓用戶猜。用戶輸入猜測的數(shù)據(jù),猜對了命令行顯示“你猜對了”,并且出現(xiàn)菜單:1.再來一次;2.退出。沒有猜對程序給出提示(如:太大了,太小了),并要求在命令行繼續(xù)輸入猜測的值;三次沒猜對則程序公布正確的數(shù)字,并且出現(xiàn)菜單:1.再來一次;2.退出。猜數(shù)時任何一個環(huán)節(jié),命令行上總會顯示用戶的總得分情況。得分規(guī)則如下:一次猜中得3分,第二次猜中得2分,第三次得1分,三次沒有猜中扣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('請輸入0-1:'); judge01();} } } catch (InputMismatchException e) //非整數(shù)(小數(shù)、字符)會被捕獲 { System.out.println('請輸入整數(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...語句防誤輸入 try { Scanner sc = new Scanner(System.in); int input_number; System.out.println('請輸入你猜的數(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時結(jié)束猜數(shù)并公布正確數(shù)字 { System.out.println('三次都沒有猜中,游戲結(jié)束!'); System.out.println('正確數(shù)字:'+num); count++; return count; } System.out.println('太小了,請重新輸入:'); return start(num, count);}else if (input_number > num){ count++; if (count == 3) { System.out.println('三次都沒有猜中,游戲結(jié)束!'); System.out.println('正確數(shù)字:'+num); count++; return count; } System.out.println('太大了,請重新輸入:'); return start(num, count);}else{ count++; System.out.println('恭喜你,猜對了!'); return count;} } } catch (InputMismatchException e) { System.out.println('請輸入整數(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.開始 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ù)(測試):'+num); //展示所創(chuàng)建的隨機(jī)數(shù),用于測試 begin.guess(num); do { System.out.println('1.再來一次 2.退出'); begin.judge01(); num = new Random().nextInt(99); System.out.println('生成的隨機(jī)數(shù)(測試):'+num); //展示所創(chuàng)建的隨機(jī)數(shù),用于測試 begin.guess(num); }while (choice != 2); }}
測試結(jié)果
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. js select支持手動輸入功能實(shí)現(xiàn)代碼2. php redis setnx分布式鎖簡單原理解析3. vue使用moment如何將時間戳轉(zhuǎn)為標(biāo)準(zhǔn)日期時間格式4. PHP正則表達(dá)式函數(shù)preg_replace用法實(shí)例分析5. Android 實(shí)現(xiàn)徹底退出自己APP 并殺掉所有相關(guān)的進(jìn)程6. 什么是Python變量作用域7. Android Studio3.6.+ 插件搜索不到終極解決方案(圖文詳解)8. bootstrap select2 動態(tài)從后臺Ajax動態(tài)獲取數(shù)據(jù)的代碼9. 如何在PHP中讀寫文件10. Android studio 解決logcat無過濾工具欄的操作
