java <>字符游戏_java猜字符串游戏。

这个程序的要求是:第一个人输入一个字符串,然后第二个人开始猜第一个人输入的是什么。用?代替输入的。每猜对一个字母,就显示这个字符串中含有这个字母的字符。比如说输入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;

}

}

展开

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值