0 0

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

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

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

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

问题补充:非常感谢大侠的帮忙,以后我会多多努力学习java的,这个给了我很大的信心!!! 
 
2012年3月11日 09:20

1个答案 按时间排序 按投票排序

0 0

采纳的答案

你试试看

	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();
	}

2012年3月12日 11:23

相关推荐

Global site tag (gtag.js) - Google Analytics