【发布时间】:2018-06-20 01:59:18
【问题描述】:
我正在 Java 上制作一个电影猜谜游戏(很像刽子手,但不包含简笔画之类的东西),它逐个字母地接受用户的输入。我被困在我想要输入的字母以替换电影标题中该字母的所有实例的位置。我的代码没有完全工作。 稍后,我将应用阻止用户再次输入相同字母的逻辑。但目前我需要解决这个特定问题。有什么帮助吗?
这是我的游戏类中的游戏进程函数。
public void GameProcess(char[] dashedarray) {
Scanner input = new Scanner(System.in);
char guess;
int i = 0;
int spaces = 0;
int correct = 0;
int wrong = 0;
boolean run = true;
while (run) {
if (dashedarray[i] == ' ') {
spaces++;
i++;
continue;
} else {
System.out.println("Enter your guess.");
guess = input.next().charAt(0);
for (int j = 0; j < dashedarray.length; j++) {
if (dashedarray[j] != ' ') {
if (moviename.charAt(i) == guess) {
dashedarray[i] = guess;
correct++;
}
else if(moviename.charAt(j) == guess) {
dashedarray[j] = guess;
correct++;
}
}
else
{
wrong++;
}
}
i++;
PrintArray(dashedarray);
if (correct == (moviename.length() - spaces)) {
System.out.println("You have won.");
break;
} else if (wrong == 10) {
System.out.println("You have lost.");
break;
}
System.out.println("The number of wrong guesses is " + wrong + ".");
}
}
【问题讨论】:
-
i是干什么用的?为什么要检查i的索引? -
逐一检查索引。 j 检查每个字符的 i 循环内从零到数组末尾的索引。
-
moviename是什么 - 什么不起作用? -
将整个块
if (dashedarray[i] == ' ')移出循环后while循环。使用i删除所有内容,它应该可以工作。 -
在循环之外不会使用它。
标签: java arrays class object logic