【发布时间】:2013-06-25 02:10:04
【问题描述】:
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());
}
}
}
如果有人能指出我在类编码中的替换语句有什么问题,那将不胜感激。
谢谢
【问题讨论】:
-
请提供一些示例输入和输出。
-
如果他们猜出他们已经输入的字母会发生什么,您可能还想考虑一下?目前下面的所有解决方案都不会做任何事情,因为字母已经被替换,但你可能希望它是一个错误的猜测或显示他们已经猜到了