初学Hang子手游戏

问题描述:

我正在做一个hang子手游戏,如果我猜字母的错误字母,我在正确的标签上加1,但是这个代码在正确的时候加1到正确的。我怎样才能解决这个问题?初学Hang子手游戏

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)); 

     } 

} 

麻烦我只想加1到不正确的时候我猜字母不是单词“苹果”的部分。

+0

为了您的利益:[在很少的几行中的hangman的java实现](http://*.com/a/22269413/256196) – Bohemian 2014-12-08 03:38:22

当你调用

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

你在信中只发生一次,不是两次的情况下设置charPos回到-1。你需要摆脱这一点。

要么

  • 使用不同的变量用于字母的第二位置,OR
  • 写入到这一个循环,以允许任何数量的信的出现,OR
  • 或设置一个布尔变量来表明是否找到了这封信;并用它来确定是否要添加一个到incorrect