wwcljs
2012-03-11 09:20
浏览 461
已采纳

求一个用java写的猜英语单词的程序,具体要求如下:

1.输入一个单词,长度不限;
2.当输入完这个单词后,弹出的窗口中用“_”代表要猜的单词的个数,
例如:apple——“_ _ _ _ ”;
3.当输入对的字母时,“
”就变成相对应的字母;
4.当输入错的字母时,此窗口显示输入错的字母是哪个;记录所输入的全部字母,无论是对的字母还是错误字母,显示出来的只有一个;如果所猜的单词中有多个相同字母,那么只要输入的字母正确,就全部显示出来。

5。如果重复输入相同的字母,只显示一次此字母,不再重复显示;
6.输入的字母忽略大小写,一共有10此机会。

一共就这些要求啦,希望大侠们看看啊!!!
小弟真的不会哦。。。。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • ll89308839 2012-03-12 11:23
    已采纳

    你试试看
    [code="java"]
    public static void main(String args[]) {
    int count = 10;
    System.out.println("Input the word to be guess ");
    char[]words=getInputWords().toCharArray();
    char[]result=new char[words.length];
    Arrays.fill(result, '_');
    while(count!=0){
    String input = getInputWords().toLowerCase();
    if(input.length()!=1){
    System.out.println("intput error");
    continue;
    }
    guess(words,input.charAt(0),result);
    System.out.println("input:"+input+"\t\t"+arrayToString(result));
    if(checkIsEnd(words,result)) break;
    count--;
    }
    }
    private static boolean checkIsEnd(char[] words, char[] result) {
    for(int i=0;i<words.length;i++){
    if(words[i]!=result[i]) return false;
    }
    return true;
    }
    public static String getInputWords(){
    Scanner in = new Scanner(System.in);
    String input =in.next();
    return input;
    }

    public static void guess(char[] target,char input,char[] result){
        for(int i=0;i<target.length;i++){
            if(target[i]==input){
                result[i]=input;
            }
        }
    }
    
    public static String arrayToString (char[] array){
        StringBuilder sb = new StringBuilder(array.length*2);
        for(char o : array){
            sb.append(o).append(",");
        }
        sb.deleteCharAt(sb.length()-1);
        return sb.toString();
    }
    

    [/code]

    点赞 评论

相关推荐 更多相似问题