import?java.util.*;
public?class?test?{

private?static?Scanner?in?=?new?Scanner(System.in);
public?static?void?main(String?args[])?{
int?level,?guessCount?=?0;
String?inputStr,?guessStr?=?"";
showMsg("欢迎尝试猜字母游戏!");
showMsg("请输入游戏级别(5、7、9)");
level?=?getLevel(in.next());
guessStr?=?getGuessStr(level);
showMsg("游戏开始,请输入你所猜的"?+?level?+?
"个字符序列:(exit-退出,?guess-作弊)");
while?(!"exit".equals(inputStr?=?in.next()))?{
if?("guess".equals(inputStr))?{
showMsg("偷偷告诉你,答案是:"?+?guessStr);
}?else?if?(guessStr.equals(inputStr.toUpperCase()))?{
showMsg("恭喜你猜对了!正确答案是:"?+?guessStr);
return;
}?else?{
showGuessState(guessStr,?inputStr.toUpperCase(),?++guessCount);
}
}
}
private?static?void?showGuessState(String?guessStr,?String?inputStr,?int?guessCount)?{
int?letterRight?=?0,?positionRight?=?0;
for?(int?i=0;i<guessStr.length();i++)?{
char?s?=?guessStr.charAt(i);
if?(inputStr.contains(s?+?""))?{
letterRight++;
if?(s?==?inputStr.charAt(i))?{
positionRight++;
}
}
}

showMsg("你猜对"?+?letterRight?+?"个字符,"
+?"其中"?+?positionRight?+?"个字符的位置正确!"
+?"(总次数-"?+?guessCount?+?",?exit-退出)");
}
//获取字符串
private?static?String?getGuessStr(int?level)?{
String?guessStr?=?"";
Random?random?=?new?Random();
for?(int?i=0;i<level;i++)?{
char?str?=?(char)?('A'?+?random.nextInt(26));
if?(guessStr.contains(str?+?""))?{
i--;
}?else?{
guessStr?+=?str;
}
}
return?guessStr;
}
//获取游戏等级
private?static?int?getLevel(String?inputStr)?{
switch?(inputStr)?{
case?"5":
return?5;
case?"7":
return?7;
case?"9":
return?9;
default:
showMsg("请重新输入游戏等级:");
return?getLevel(in.next());
}
}
//控制台输出带前缀

private?static?void?showMsg(String?msg)?{
System.out.println("GuessingGame>"?+?msg);
}
}
不谢~


