Я занимаюсь физическими упражнениями, когда мне нужно сделать игру «Лото».Как сравнить существующие числа из файла со случайным числом?
Я генерироваться 6 случайных чисел (rand1
, rand2
, rand3
, rand4
, rand5
, rand6
), и теперь я должен сравнить их с моими существующими номерами, которые сохраняются в файле f
. Я хочу сравнить каждое случайное число за раз с номерами, которые я сохранил в своем файле.
Это то, что я до сих пор:
public class lottoEx{
public static void main(String[] args)throws Exception{
userNumbers(4, 5, 7, 9, 11, 19);
drawNumbers();
}
public static void userNumbers(int num1, int num2, int num3, int num4, int num5, int num6)throws Exception{ //USER NUMBERS
File f = new File("lotto.dat");
PrintStream output = new PrintStream(f);
output.println(num1 + " " + num2 + " " + num3 + " " + num4 + " " + num5 + " " + num6);
Scanner read = new Scanner(f);
System.out.print("Your numbers: ");
while(read.hasNext()){
System.out.print(read.nextInt() + " ");
}
}
public static void drawNumbers()throws Exception{ //RANDOM NUMBERS
Random rand = new Random();
int rand1 = rand.nextInt(19)+1;
int rand2 = rand.nextInt(19)+1;
int rand3 = rand.nextInt(19)+1;
int rand4 = rand.nextInt(19)+1;
int rand5 = rand.nextInt(19)+1;
int rand6 = rand.nextInt(19)+1;
Thread.sleep(2000);
System.out.println();
System.out.println();
System.out.print("The lotto numbers are: ");
Thread.sleep(2000);
System.out.print(rand1 + " " + rand2 + " " + rand3 + " " + rand4 + " " + rand5 + " " + rand6);
doCompare(rand1, rand2, rand3, rand4, rand5, rand6);
winCheck();
}
public static void doCompare(int rand1, int rand2, int rand3, int rand4, int rand5, int rand6)throws Exception{
Scanner scan = new Scanner("lotto.dat");
Set<Integer> set = new HashSet<>();
while(scan.hasNextInt()){
set.add(scan.nextInt());
}
System.out.println(set);
if(set.contains(rand1)){
System.out.println("Match on rand1");
}
}
public static void winCheck()throws Exception{
//code goes here
}
}
Похоже, что нечто неправильно, поскольку он сравнивает только случайное число с первым номером в моем файле? Я сейчас застрял. Надеюсь, кто-то может мне помочь! :-)
Он содержит только 6 номеров: -10 7 5 11 19 – user3703289
Вы должны рассмотреть возможность использования массива для хранения значений. – ifloop
Замечание: вам не нужно использовать 'BufferedReader + FileReader' в качестве аргумента для сканера. Вы можете просто передать имя_файла. – TheLostMind