【发布时间】:2015-09-28 03:27:12
【问题描述】:
我在“猜测”游戏中难以保持得分。我必须使用 for 循环或 while 循环。我有它,所以在一个名为神秘.txt 的文本文件中创建了 10 个随机数,文件阅读器从文本文件中读取这些数字。
您的分数从 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();
}
}
【问题讨论】:
-
“行动起来”是什么意思?您有某种错误(崩溃或错误答案)。 具体您要查找的内容。
-
拜托,你能把当前的输出和你预期的输出放在一个给定的例子中吗?
-
刚刚添加了它们以及文件阅读器的先前代码。
-
@IanMcLaird 我所说的行动起来的意思是它没有像我描述的那样正确地保持分数。
-
我注意到的主要事情是您永远不会前进到文件中的第二个数字。就目前而言,您当前的代码会将所有 10 个用户猜测与文件中的第一个数字进行比较。
标签: java loops if-statement for-loop while-loop