Подсказки в моей игре с угадыванием чисел не могут определить порядок чисел, как я могу это сделать? 1000 *? - PullRequest
0 голосов
/ 06 марта 2020

Ниже приведен код, который я сейчас использую для воссоздания игры-угадывания Java под названием Fermi в Eclipse Window Builder. В основном у меня будет три случайных, но различных целых числа в диапазоне от 0 до 9, а затем пользователь введет три целых числа, чтобы угадать ответ. Если число было угадано правильно, и оно в правильном месте, это Ферми. Если это правильный номер, но он не в том месте, это пико. И если предполагаемое число не совпадает ни с одним из чисел, это нано.

public void generateNum() {
        num1 = (int) ((Math.random() * ((max - min) + 1)) + min);
        //System.out.println(num1);
        num2 = (int) ((Math.random() * ((max - min) + 1)) + min);
        while (num1 == num2) {
            num2 = (int) ((Math.random() * ((max - min) + 1)) + min);
        }
        //System.out.println(num2);
        num3 = (int) ((Math.random() * ((max - min) + 1)) + min);
        while ((num3 == num1) || (num3 == num2)) {
            num3 = (int) ((Math.random() * ((max - min) + 1)) + min);
        }
        //System.out.println(num3);
    }

    public String giveHints(int guess1, int guess2, int guess3) {
        // hint 1
        if (guess1 == num1) {
            hint1 = " fermi";
        }

        if ((guess1 == num2) && (guess2 != num2)) {
            hint1 = " pico";
        }

        else if ((guess1 == num3) && (guess3 != num3)) {
            hint1 = " pico";
        }

        else if ((guess3 == num3) && (guess1 == num3)) {
            hint1 = " nano";
        }

        if ((guess1 != num1) && (guess1 != num2) && (guess1 != num3)) {
            hint1 = " nano";
        }

        else if ((guess1 == num2) && (guess2 == num2)) {
            hint1 = " nano";
        }

        // hint 2
        if (guess2 == num2) {
            hint2 = " fermi";
        }

        if ((guess2 == num1) && (guess1 != num1)) {
            hint2 = " pico";
        }

        else if ((guess2 == num3) && (guess3 != num3)){
            hint2 = " pico";
        }

        else if ((guess2 == num1) && (guess1 == num1)) {
            hint2 = " nano";
        }

        else if ((guess3 == num3) && (guess2 == num3)) {
            hint2 = " nano";
        }

        if ((guess2 != num1) && (guess2 != num2) && (guess2 != num3)) {
            hint2 = " nano";
        }

        // hint 3
        if (guess3 == num3) {
            hint3 = " fermi";
        }

        if ((guess3 == num1) && (guess1 != num1)) {
            hint3 = " pico";
        }

        else if ((guess3 == num1) && (guess1 == num1)) {
            hint3 = " nano";
        }

        else if ((guess3 == num2) && (guess2 == num2)) {
            hint3 = " nano";
        }

        else if ((guess3 == num2) && (guess2 != num2)) {
            hint3 = " pico";
        }

        if ((guess3 != num1) && (guess3 != num2) && (guess3 != num3)) {
            hint3 = " nano";
        }

        return "\n" + guess1 + " " + guess2 + " " + guess3 + " -" + hint1 + hint2 + hint3;
    }

Однако фермис, пико и нано, составляющие подсказку, НЕ должны быть в том же порядке, что и их соответствующие вошли догадки. Например, если пользователь угадывает 1,2,3 и получает подсказку Fermi, Nano, Nano, это не означает, что 1 находится в правильном положении (Fermi). Это означает только то, что одно из введенных чисел (1, 2 или 3) находится в правильном положении.

Я не совсем уверен, как я смогу выполнить sh эту работу над тем, что У меня есть сейчас, и любые советы или простые предложения будут оценены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...