这个程序的要求是:第一个人输入一个字符串,然后第二个人开始猜第一个人输入的是什么。用?代替输入的。每猜对一个字母,就显示这个字符串中含有这个字母的字符。比如说输入hi,猜对了...
这个程序的要求是:第一个人输入一个字符串,然后第二个人开始猜第一个人输入的是什么。用?代替输入的。每猜对一个字母,就显示这个字符串中含有这个字母的字符。比如说输入hi,猜对了h就显示成h?。我自己写的老是有问题,求大神帮我看一下
public class HangmanPlayer {
/** * @param args the command line arguments
*/
public static void main(String[] args) {
String s = JOptionPane.showInputDialog("Enter secret string.");
Hangman game = new Hangman(s);
String aGuess = "";
while(!game.gameOver() && aGuess !=null){
aGuess = JOptionPane.showInputDialog(game+"\nEnter next guess");
if(aGuess!= null){
game.guess(aGuess.charAt(0));
}
}
s = game + "\n" + game.getNumberOfGuesses() + "guesses";
JOptionPane.showInputDialog(null,s);
}
}
这上面是主程序(main class),下面是class
public class Hangman { private String in;
private String out = "";
private String out1 = "";
private String wrong = "";
private int number;
private static final char a = '?';
private static final char b = ' ';
public Hangman(String s){ this.in = s;
for (int i = 0; i < in.length(); i++) {
if(in.charAt(i) == ' '){
out += b;
}
else{
out += a;
}
}
this.out = out;
}
public boolean gameOver() { if(in.equals(out1)){
return true;
}
return false;
}
public void guess(char a) { number++;
for (int i = 0; i < in.length(); i++) {
if(in.charAt(i) == a){
out1 += Character.toString(a);
}
else{
out1 += Character.toString('?'); }
} }
public int getNumberOfGuesses() { return number;
}
@Override
public String toString(){
String s = "";
if(number == 0){
s = out;
}
else{
s = out1;
}
return s;
}
}
展开
这是一个使用Java编写的猜字游戏程序。玩家一输入一个秘密字符串,玩家二尝试猜测这个字符串。每次猜对一个字母,程序会显示已猜出的字母在原字符串中的位置。程序使用JOptionPane进行交互,并在游戏结束时显示总猜测次数。
1852

被折叠的 条评论
为什么被折叠?



