-1
我在計算我的代碼中發生了什麼有點麻煩(去圖) 我還沒有涉及到一些我最終的int值,但是我會在我能得到一些其他的問題。猜謎遊戲Java的問題
我想不通爲什麼改變correctGuess爲真後,我無法從我的用戶得到更多的輸入程序退出,以決定他們是否願意繼續玩下去了。
這應該需要從某人的電腦毫秒,並收集一個1-110之間的隨機數,但有時我得到負數,似乎無法弄清楚這是什麼問題。
任何幫助,將不勝感激......
import java.util.Scanner;
import java.util.Random;
public class GuessingGame {
private static final int MIN_NUMBER = 1;
private static final int MAX_NUMBER = 110;
private static final int EXIT_VALUE = -1;
private static final int MAX_GAMES = 256;
public static void main(String[] argv) {
System.out.println("*** You are playing the CSC110 Guessing Game ***");
Scanner scanner = new Scanner(System.in);
int totalGames = 0;
int wonGames = 0;
int guess = 0;
boolean playing = true;
while (playing) {
boolean correctGuess = false;
totalGames++;
Random rg = new Random(System.currentTimeMillis());
int n = MIN_NUMBER + rg.nextInt() % (MAX_NUMBER - MIN_NUMBER);
System.out.println("Pick a number between 1 and 110 (-1 to exit): ");
int numberOfTries = 0;
while (!correctGuess)
{
guess = scanner.nextInt();
numberOfTries++;
System.out.print(numberOfTries);
if (guess == n) {
System.out.print("Congrats, it took you " + numberOfTries + " try/tries to get the right number!");
System.out.print("Do you want to play again? (Yes/No)");
correctGuess = true;
}
else if(guess != n && numberOfTries < 5)
{
System.out.println("nope... \n");
}
else if(guess > n && numberOfTries >= 5)
{
System.out.print("Try something lower \n");
}
else if(guess < n && numberOfTries >= 5)
{
System.out.print("Try something higher \n");
}
}
String playAgain = scanner.nextLine();
if(playAgain.equals("Yes"))
{
playing = true;
}
else
{
playing = false;
}
}
}
}
嘗試'scanner.nextLine()'之前'字符串playAgain = scanner.nextLine();' –
添加此來生成隨機數'詮釋N = ThreadLocalRandom.current()nextInt(1,110。 + 1);'第一個參數是包含性的,第二個是排他性的,這就是爲什麼你加上+1 – Jonah