我正在制作这个程序,生成这些字符CMFBOL的随机4字符序列。我需要这个程序来接受用户输入,检查他们的猜测是否在正确的位置作为字母CMFBOL中随机生成的序列,并为正确位置的字符返回1,而在错误的位置返回0。这是我到目前为止所拥有的。为了进一步阐述我的程序将要做什么,随机生成器生成一个序列,例如CFBM,它将该字符序列存储在一个字符串中,并提示用户猜测这些字符的序列。如果他们的猜测字母位于正确的位置,它将打印1.如果他们的猜测包含正确的字符但位置错误,则它将为0.例如,随机生成器生成CMFB,并提示用户猜测。用户键入CLBO,程序吐出10.C表示处于正确位置,0表示用户猜测B但不在正确位置。
else if (anotherScanner.hasNext("c|C"))
{
c = anotherScanner.next();
//usersSelection = true;
System.out.println("");
System.out.println("COLOR CHALLENGE");
System.out.println("Valid color letters are:");
System.out.println("CMFBOL for Cyan Magenta Fushia BabyBlue Orange Lemon");
System.out.println("1) Guess:");
Random randomss = new Random();
String acronColor = "CMFBOL";
final int length = 4;
char let1 = acronColor.charAt(randomss.nextInt(length));
char let2 = acronColor.charAt(randomss.nextInt(length));
char let3 = acronColor.charAt(randomss.nextInt(length));
char let4 = acronColor.charAt(randomss.nextInt(length));
String acronColorRand = (""+let1+let2+let3+let4);
}
答案 0 :(得分:0)
你看起来像个新手,所以这里有一些关于你的代码应该是什么样子的逻辑。 尝试并了解它的作用并根据需要进行改进。
public static void main(String ... args){
........
//some code here hopefully you alreday have
if (anotherScanner.hasNext("c|C"))
{
c = anotherScanner.next();
//usersSelection = true;
String acronColor = "CMFBOL";
System.out.println("COLOR CHALLENGE\n " +
"Valid color letters are:\n" + acronColor +
" for Cyan Magenta Fushia BabyBlue Orange Lemon");
System.out.println("1) Guess:");
Random randomss = new Random();
final int length = 4;
StringBuilder s = new StringBuilder();
for(int i = 0; i < 4; i++){
s.append(acronColor.charAt(randomss.nextInt(length)));
}
String acronColorRand = s.toString().toUpperCase();
System.out.println(eval(guess, acronColorRand));
}
}
private String eval(String guess, String random){
StringBuilder s = new StringBuilder();
guess = guess.toUpperCase();
for(int i = 0; i < random.length(); i++){
char r = (guess.charAt(i) == random.charAt(i)) ? '1' : '0';
s.append(r);
}
return s.toString();
}