gpt4 book ai didi

java - 方法追加消息的次数与相应数组中的消息的次数相同

转载 作者:行者123 更新时间:2023-12-02 06:58:15 25 4
gpt4 key购买 nike

我有一系列在方法期间检查的答案。然后检查 usersinout 以查看它是否与答案数组中的任何内容匹配(如果效果良好)。然而,当它发生时,我调用一个方法来删除 userInput 并显示不是有效的输入,但是它根据数组中的答案数量显示“不是有效的输入”。这就是我的意思:

Type go in the box and hit enter!

Not a valid input

go

You reach a crossroads and don't know which way to go.

What do you do?

Not a valid input

Not a valid input

Not a valid input

Not a valid input

Not a valid input

在我输入“go”之前,我自己输入了“g”,它返回“不是有效的输入”,因为该部分的数组中的唯一答案是“go”。然而,在下一节中,您可以看到它多次返回“不是有效的输入”,因为与该部分对应的数组中有 5 个正确答案。无论数组中的答案有多少,如何让它每次只返回一次?

可以在 GitHub 上找到整个游戏的代码:

https://github.com/addrum/TextGame/

最佳答案

更改此方法:

public void check(String userInput) {
boolean gotItRight= false;
ArrayList<String> levelAnswers = answers.getAnswersForLevel(currentLevel);
for (String answer : levelAnswers) {
if (userInput.toLowerCase().equals(answer)) {
messageDisplay.append("\n \n" + userInput + "\n");
commandInput.setText("");
messageDisplay.append("\n" + messages.getNextMessage());
currentLevel++;
getCurrentLevel();
gotItRight= true;
break;
}
}
if (!gotItRight) {
notValid();
}
}

为什么会发生这种情况?

好吧,您在这一行中迭代了第一级的五个答案:for (String answer : levelAnswers),每次您评估答案不匹配时,您都会显示答案是错误的。例如,如果答案是正确的,但对于最后一个(第 5 个选项),您将得到四次错误,但最后它是正确的。

此外,您可以执行类似的操作来避免 for 循环:

public void check(String userInput) {
boolean gotItRight= false;
ArrayList<String> levelAnswers = answers.getAnswersForLevel(currentLevel);

if (levelAnswers.contains(userInput.toLowerCase()) {
messageDisplay.append("\n \n" + userInput + "\n");
commandInput.setText("");
messageDisplay.append("\n" + messages.getNextMessage());
currentLevel++;
getCurrentLevel();
gotItRight= true;
break;
}
}

关于java - 方法追加消息的次数与相应数组中的消息的次数相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17025576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com