如何对该程序的其余部分进行编码,以便用户猜测是否为真?

时间:2014-02-20 04:08:52

标签: java loops random sequence

我正在制作这个程序,生成这些字符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);
                        }

1 个答案:

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