public class Hangman {
private String secret;
private String disguise;
private int guessCount;
private int wrong;
public Hangman() {
secret="word";
disguise="????";
guessCount=0;
wrong=0;
}
public void makeGuess(char input) {
String temp;
temp=disguise;
for (int i=0; i<secret.length(); i++) {
if (secret.charAt(i)==input) {
disguise=disguise.replace(disguise.charAt(i), input);
}
}
if (temp.equals(disguise))
wrong++;
}
我的代码有些困难,特别是 disguise=disguise.replace 行。我的代码的目的是通过用户的猜测,用秘密的字母替换伪装的符号。for 循环遍历秘密词中的所有字母,并在用户输入的字符和秘密词中的字母之间查找匹配项。如果匹配,我希望程序用输入中的字符替换该位置的变相符号。
相反,我的代码正在用用户猜测的字母替换所有字母,如果它在单词secret中。
Example:
????
w
wwww (disguise)
word (secret)
what I want:
????
w
w???
word
这是我的演示课:
import java.util.Scanner;
public class HangmanDemo {
public static void main(String[] args) {
char input;
Hangman game = new Hangman();
Scanner keyboard = new Scanner(System.in);
System.out.println(game.getDisguisedWord());
for (int i=0;i<10;i++){
String line=keyboard.nextLine();
input = line.charAt(0);
game.makeGuess(input);
game.guessCount();
game.getDisguisedWord();
game.isFound();
System.out.println(game.getDisguisedWord());
System.out.println(game.getSecretWord());
}
}
}
如果有人能指出我在类编码中的替换语句有什么问题,那将不胜感激。
谢谢