Java 初级刽子手小游戏

Java 初级刽子手小游戏,java,if-statement,settext,Java,If Statement,Settext,我正在做一个刽子手游戏,如果我猜错了单词中的字母,我会在标签上加上1不正确,但是当我猜对的时候,这个代码会在标签上加上1不正确。我怎样才能解决这个问题 public class Form extends javax.swing.JFrame { String FindWord = "apple"; int w = 0; } private void attemptSignActionPerformed(java.awt.event.ActionEvent evt) {

我正在做一个刽子手游戏,如果我猜错了单词中的字母,我会在标签上加上1不正确,但是当我猜对的时候,这个代码会在标签上加上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。

当你打电话时

charPos = FindWord.indexOf(letter, charPos + 1);
如果字母只出现一次,而不是两次,则将
charPos
设置回
-1
。你需要把它处理掉

或者

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