猜數字小游戲
import java.util.Scanner;
public class numberGame {
public static void main(String[] args) {
//小練習,用于生成大于0.5的亂數
/*
double randNum = 0;
//生成一個大于0.5的亂數,只有亂數大于0.5,程式的回圈才會退出
while (randNum < 0.5) {
//使用Java中的Math.random生成亂數
randNum = Math.random();
System.out.println(randNum);
}
System.out.println("生成的大于0.5的亂數是" + randNum);
*/
boolean startGame = true;
int correctGuessTotal = 0;
int totalGameCount = 0;
//使用while回圈確定開始游戲
while (startGame) {
//使用輸入函式
Scanner in = new Scanner(System.in);
//定義猜數范圍
int rangeStart = 30;
int rangEnd = 50;
//設定允許猜測次數每次游戲
int guessTotal = 5;
int mod = rangEnd - rangeStart;
//檢驗猜數開始值和結束值是否為0
if (rangeStart < 0 || rangEnd < 0) {
System.out.println("開始值和結束值不可為0");
}
//用兩數之模檢驗兩數之間可以生成大于等于1個亂數
if (mod <= 1) {
System.out.println("非法的數字范圍:(" + rangeStart + "," + rangEnd + ")");
}
//生成亂數
int bigRandom = (int) (Math.random() * (rangEnd * 100));
int numberToGuess = (bigRandom % mod) + rangeStart;
//檢驗目標數字不小于或大于起始值和結束值,否則置為起始值加一或者結束值減一
if (numberToGuess <= rangeStart) {
numberToGuess = rangeStart + 1;
} else if (numberToGuess > rangEnd) {
numberToGuess = rangEnd - 1;
}
//下行注釋用于檢測程式使用,得出目標值numberToGuess
//System.out.println("mod=" + mod + "\t" + "bigRandom=" + bigRandom + "\tnumberToGues=" + numberToGuess);
int leftGuess = guessTotal;
//定義初始正確猜測布林值為false
boolean correctGuess = false;
System.out.println("請輸入猜測數字,范圍是【" + rangeStart + "," + rangEnd + ")");
//游戲主體
while (leftGuess > 0) {
System.out.println("請輸入猜測數字,剩余猜測次數為:" + leftGuess + ",如需退出游戲請輸入“-1”");
int guess = in.nextInt();
//檢測到負數,退出游戲主體
if (guess < 0) {
System.out.println("用戶選擇退出游戲!");
//游戲進行次數統計放在了后面,導致-1退出也計算游戲次數,通過自減操作抵消回圈外多余的自增操作
totalGameCount--;
//如果已經猜測了幾個,在五次之前不想繼續猜了,也統計總共游戲次數
if (leftGuess < 4) {
totalGameCount++;
}
break;
}
//進行到此步游戲正式開始,開始計算剩余次數,剩余次數減一
leftGuess--;
//輸入的數字超出范圍哦,重新開始游戲主體回圈
if (guess < rangeStart || guess > rangEnd) {
System.out.println("請輸入范圍在【" + rangeStart + "," + rangEnd + ")內的數字!");
continue;
}
//判斷給出數字和目標數字
if (guess == numberToGuess) {
System.out.println("恭喜猜對了!");
//猜對數字,正確猜測布林值職位true,并對正確猜測次數加一
correctGuess = true;
correctGuessTotal++;
break;
} else if (guess > numberToGuess) {
System.out.println("待猜數字小于" + guess);
} else {
System.out.println("待猜數字大于" + guess);
}
}
//游戲次數統計,每回圈一次游戲主體,游戲次數加一
totalGameCount++;
//正確猜測未經過重新賦值認為false,!correctGuess為true,執行本回圈,告知猜測失敗和真實數字
if (!correctGuess) {
System.out.println("本局猜測失敗,猜測數字實際為:" + numberToGuess);
}
System.out.println("游戲結束!是否繼續游戲?true/false");
//通過獲取到的布林值來為游戲是否開始賦值
startGame = in.nextBoolean();
}
System.out.println("本局游戲一共進行了" + totalGameCount + "次," + "其中正確猜對" + correctGuessTotal + "次");
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/259553.html
標籤:其他
上一篇:STM32f4日記7之外設矩陣鍵盤的使用(4X4矩陣鍵盤解放板上資源)
下一篇:C++選擇排序
