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++;
}
我對我的代碼有些困難,特別是僞裝=僞裝。替換行。我的代碼的目標是通過用戶猜測來僞裝成祕密的字母。 for循環遍歷祕密詞中的所有字母,並查找用戶輸入的字符與祕密詞中的字母之間的匹配。 如果有匹配,我希望程序用輸入的字符替換那個位置的僞裝符號。用hang子手的錯誤代替字母(s)
取而代之的是我的代碼正在用用戶猜測的字母來代替所有的字母,如果它在單詞祕密中。
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());
}
}
}
如果任何人都可以指出什麼是錯的我在班上編碼REPLACE語句,將不勝感激。
感謝
請提供一些示例輸入和輸出。 – Masudul
你可能想要考慮的其他事情是,如果他們猜測他們已經進入的一封信,會發生什麼?目前,以下所有解決方案都無能爲力,因爲信件已被替換,但您可能希望它是錯誤的猜測或顯示,他們已經猜到了 –