【问题标题】:Beginner Hangman Game初学者刽子手游戏
【发布时间】:2014-12-08 02:47:46
【问题描述】:

我正在制作一个刽子手游戏,如果我在 aLetter 中猜错了单词的字母,我会在标签 inCorrect 上加 1,但是当我猜对时,这段代码也会在 inAccurate 上加 1。我该如何解决这个问题?

public class Form extends javax.swing.JFrame {

String FindWord = "apple";
int w = 0;
}

 private void attemptSignActionPerformed(java.awt.event.ActionEvent evt) {     

    int charPos = 1;
    String letter = aLetter.getText();
    charPos = FindWord.indexOf(letter);
    myMessage.setText("position is " + charPos);
    if (charPos == 0) Char0.setText(letter);
    if (charPos == 1) Char1.setText(letter);
    if (charPos == 2) Char2.setText(letter);
    if (charPos == 3) Char3.setText(letter);
    if (charPos == 4) Char4.setText(letter);
    if (charPos == 5) Char5.setText(letter);
    charPos = FindWord.indexOf(letter, charPos + 1);
    if (charPos == 0) Char0.setText(letter);
    if (charPos == 1) Char1.setText(letter);
    if (charPos == 2) Char2.setText(letter);
    if (charPos == 3) Char3.setText(letter);
    if (charPos == 4) Char4.setText(letter);
    if (charPos == 5) Char5.setText(letter);

以下是我遇到问题的部分

   if (charPos == -1) {

        w++;

        inCorrect.setText(Integer.toString(w));

      }

}

当我猜到的字母不在“apple”这个词中时,我只想在 inCorrect 上加 1。

【问题讨论】:

标签: java if-statement settext


【解决方案1】:

当你打电话时

charPos = FindWord.indexOf(letter, charPos + 1);

在字母只出现一次而不是两次的情况下,您将charPos 设置回-1。你需要摆脱这个。

要么

  • 对字母的第二个位置使用不同的变量,或者
  • 将其写入循环,以允许出现任意数量的字母,或
  • 或者设置一个布尔变量来指示是否找到了字母;并使用它来确定是否将一个添加到incorrect

【讨论】:

    猜你喜欢
    • 2015-05-29
    • 1970-01-01
    • 2017-09-08
    • 2019-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-26
    • 2014-10-19
    相关资源
    最近更新 更多