用Java撰寫一個猜數程式
-
要求如下:
撰寫一個猜數程式,命令列顯示選單:1.開始;2.退出,用戶選擇1,則程式生成一個0~99之間的隨機整數,命令列顯示“請輸入你猜的數:”讓用戶猜,用戶輸入猜測的資料,猜對了命令列顯示“你猜對了”,并且出現選單:1.再來一次;2.退出,沒有猜對程式給出提示(如:太大了,太小了),并要求在命令列繼續輸入猜測的值;三次沒猜對則程式公布正確的數字,并且出現選單:1.再來一次;2.退出,猜數時任何一個環節,命令列上總會顯示用戶的總得分情況,得分規則如下:一次猜中得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) //非整數(小數、字符)會被捕獲
{
System.out.println("請輸入整數(0-1)!");
judge01();
}
}
//計算得分
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;
}
}
//猜數部分
public int start(int num, int count) //回傳值為count
{
//try...catch...陳述句防誤輸入
try {
Scanner sc = new Scanner(System.in);
int input_number;
System.out.println("請輸入你猜的數(0-99):");
input_number = sc.nextInt();
if (input_number < 0 || input_number > 99) //控制輸入數字的范圍
{
System.out.println("輸入的整數范圍:[0,99]");
return start(num, count);
}
else
{
if (input_number < num)
{
count++;
if (count == 3) //count為3時結束猜數并公布正確數字
{
System.out.println("三次都沒有猜中,游戲結束!");
System.out.println("正確數字:"+num);
count++;
return count;
}
System.out.println("太小了,請重新輸入:");
return start(num, count);
}
else if (input_number > num)
{
count++;
if (count == 3)
{
System.out.println("三次都沒有猜中,游戲結束!");
System.out.println("正確數字:"+num);
count++;
return count;
}
System.out.println("太大了,請重新輸入:");
return start(num, count);
}
else
{
count++;
System.out.println("恭喜你,猜對了!");
return count;
}
}
}
catch (InputMismatchException e)
{
System.out.println("請輸入整數!");
start(num, count);
}
return -1;
}
//完整的猜數流程
public void guess(int num)
{
int count = 0;
count = start(num, count);
point = point(count);
System.out.println("當前得分: "+point);
}
public static void main(String[] args) {
System.out.println("1.開始 2.退出");
System.out.println("初始分數:"+point);
GuessNumber begin = new GuessNumber();
begin.judge01();
int num;
num = new Random().nextInt(99); //創建0-99的亂數
System.out.println("生成的亂數(測驗):"+num); //展示所創建的亂數,用于測驗
begin.guess(num);
do {
System.out.println("1.再來一次 2.退出");
begin.judge01();
num = new Random().nextInt(99);
System.out.println("生成的亂數(測驗):"+num); //展示所創建的亂數,用于測驗
begin.guess(num);
}while (choice != 2);
}
}
- 測驗結果

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/230634.html
標籤:其他
下一篇:【每日一題】另類加法
