Java Пока L oop создает случайные числа - PullRequest
0 голосов
/ 02 марта 2020

Искал здесь ответ, но не мог найти то, что искал. Итак, я новичок в изучении Java и хотел сделать небольшую игру в лото, где у вас есть 6 случайных чисел от 1 до 99 и еще 6 случайных чисел. Я пытаюсь создать какое-то время l oop, которое печатает все 12 чисел, сравнивает их, равны они или нет, и печатает количество попыток, чтобы все числа были правильными. Если они совпадают, l oop должен закончиться. Теперь я застрял, потому что числа генерируются только один раз. Таким образом, он генерирует числа 2х6 и просто продолжает использовать их вечно, и я не могу найти решение. Есть идеи?

public class vorgegebeneZahlen {

public static int givenNumb1 = (int) (Math.random() * 99 + 1);
public static int givenNumb2 = (int) (Math.random() * 99 + 1);
public static int givenNumb3 = (int) (Math.random() * 99 + 1);
public static int givenNumb4 = (int) (Math.random() * 99 + 1);
public static int givenNumb5 = (int) (Math.random() * 99 + 1);
public static int givenNumb6 = (int) (Math.random() * 99 + 1);

public static int lottoNumb1 = (int) (Math.random() * 99 + 1);
public static int lottoNumb2 = (int) (Math.random() * 99 + 1);
public static int lottoNumb3 = (int) (Math.random() * 99 + 1);
public static int lottoNumb4 = (int) (Math.random() * 99 + 1);
public static int lottoNumb5 = (int) (Math.random() * 99 + 1);
public static int lottoNumb6 = (int) (Math.random() * 99 + 1);

public static void printNumber() {

    System.out.println("Your given numbers are:");
    System.out.println(givenNumb1 + " " + givenNumb2 + " " + givenNumb3 + " " + givenNumb4 + " " + givenNumb5 + " " + givenNumb6 + "\n");

    System.out.println("Your lotto numbers are:");
    System.out.println(lottoNumb1 + " " + lottoNumb2 + " " + lottoNumb3 + " " + lottoNumb4 + " " + lottoNumb5 + " " + lottoNumb6 + "\n");

}

public static int count = 0;

public static void play() {
    while (lottoNumb1 != givenNumb1 && lottoNumb2 != givenNumb2 && lottoNumb3 != givenNumb3 && lottoNumb4 != givenNumb4 && lottoNumb5 != givenNumb5 && lottoNumb6 != givenNumb6) {
        System.out.println( (count+1) + ". ");
        generateNumber();
        Vergleich.compare();
        count++;
    }
}

тогда у меня есть класс для сравнения

public class Vergleich {

public static void compare() {

    if (lottoNumb1 == givenNumb1 && lottoNumb2 == givenNumb2 && lottoNumb3 == givenNumb3 && lottoNumb4 == givenNumb4 && lottoNumb5 == givenNumb5 && lottoNumb6 == givenNumb6) {
        System.out.println("All numbers match, you won!" + "\n");
    } else {
        System.out.println("Numbers don't match, try again!" + "\n");
    }
}

1 Ответ

0 голосов
/ 02 марта 2020

Вы можете упростить вашу программу, используя массивы (вместо отдельных переменных для каждого из заданных чисел и номеров лото) и Random (вместо Math.random), например,

import java.util.Arrays;
import java.util.Random;

public class Main {
    static int n = 6;
    static int[] givenNumbers = new int[n];
    static int[] lottoNumbers = new int[n];
    static Random random = new Random();

    public static void generateNumbers() {
        for (int i = 0; i < n; i++) {
            givenNumbers[i] = random.nextInt(100);
            lottoNumbers[i] = random.nextInt(100);
        }
    }

    public static void printNumbers() {
        System.out.println("Your given numbers are:" + Arrays.toString(givenNumbers));
        System.out.println("Your lotto numbers are:" + Arrays.toString(lottoNumbers));
    }

    public static void main(String[] args) {
        generateNumbers();
        printNumbers();
    }
}

Выходные данные :

Your given numbers are:[58, 9, 68, 33, 53, 6]
Your lotto numbers are:[24, 74, 74, 48, 51, 54]
...