我有問題想要在我的「猜測」遊戲中保持分數。我必須使用for循環或while循環。我擁有它,因此在一個名爲mystery.txt的文本文件中創建了10個隨機數字,文件讀取器從文本文件中讀取這些數字。Java-在遊戲中節省分數
您的分數從0開始。如果用戶從文本文件中猜出正確的數字,他們會得到-10分。如果他們得到的數字是錯誤的,他們會添加他們從文件中的數字中猜出的數字的絕對值差異。最後得分越低越好。
當我只運行我的if else語句一次,它的工作正常。一旦我循環它不止一次,它開始行動起來。我不得不使用if else語句和for或while循環。謝謝!
編輯 - 原來我不得不使用for循環而不是while循環,現在我完全失去了。
它應該是如何工作的: 當你運行一個文本文件被10倍不同的數字生成的程序(我已經爲準備代碼)用戶被要求輸入一個號碼,用戶輸入的數量得到較到文本文件中的第一個文件。如果相同,永遠不會得到-10分。如果他們弄錯了,他們會得到被猜測的數字與添加到分數中的文本文件中的數字的差異。這是假設重複十次。
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;
import java.util.Random;
import java.lang.Math;
public class lab4Fall15 {
public static void numberGuessingGame() throws IOException {
Scanner myscnr = new Scanner (System.in);
PrintWriter mywriter = new PrintWriter("mysteryNumber.txt");
int randomNumber;
int i = 0;
i=1;
while (i<=10) {
Random randomGen = new Random();
randomNumber= randomGen.nextInt(11);
// then store (write) it in the file
mywriter.println(randomNumber);
i = i + 1;
}
//Decided to use a loop to generate the numbers-------
mywriter.close();
FileReader fr = new FileReader("./mysteryNumber.txt");
BufferedReader textReader = new BufferedReader(fr);
int numberInFile;
// the number in your file is as follows:
numberInFile = Integer.valueOf(textReader.readLine());
int score= 0;
int a = 1;
while (a<=10) {
a=a+1;
System.out.print ("Please enter a number between 0 and 10: ");
int userNumber= myscnr.nextInt();
if (userNumber==numberInFile){
score = score-10;
}
else{
score = score + Math.abs(userNumber-numberInFile);
}
System.out.println ("current score is: "+score);
}
System.out.println ("your score is "+score);
textReader.close();
}
public static void main(String[] args) throws IOException {
// ...
numberGuessingGame();
}
}
你是什麼意思「行動起來?」你有某種錯誤(崩潰或錯誤答案)。是*具體*關於你在找什麼。請問 –
,你可以把電流輸出和你預期的舉一個例子嗎? – uma
只需添加它們以及之前的文件讀取器代碼即可。 – ObiJay