Java 编程求帮助为猜字母游戏添加游戏等级。游戏等级设为三等:5、7和9,
代表所需要猜测的字母个数。游戏开始时,由玩家选择游戏等级(5,7,9)。如果选择7,则会随机产生7个字符,然后玩家输入一个字符串包含7个字符,看这7个字符和随机产生的7个...
代表所需要猜测的字母个数。游戏开始时,由玩家选择游戏等级(5,7,9)。如 果选择7,则会随机产生7个字符,然后玩家输入一个字符串包含7个字符,看这7个字符和随机产生的7个字符比较,看是否正确,并统计分数。另外,如果输入 其它,重新提示输入游戏等级。系统交互情况如图-1所示:
展开
1个回答
展开全部
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);
}
}
不谢~
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询