初学者刽子手游戏

时间:2014-12-08 02:47:47

标签: java if-statement settext

我正在制作一个刽子手游戏,如果我猜错了字母中的错误字母,我将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"。

中时将1添加到inCorrect中。

1 个答案:

答案 0 :(得分:0)

致电时

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

如果信件只出现一次,而不是两次,则将charPos设置回-1。你需要摆脱这个。

要么

  • 使用另一个变量作为字母的第二个位置,或
  • 将此内容写入循环,以允许出现任意数量的字母,或
  • 或设置一个布尔变量来指示是否找到了该字母;并使用它来确定是否向incorrect添加一个。