import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
public class ArraysEx1 {
public static void main(String[] args) {
ArrayList<Integer> randNumbers = new ArrayList<>();
Random random = new Random();
String input;
int number;
Scanner sc = new Scanner(System.in);
do {
System.out.println("Please press enter to begin");
input = sc.nextLine();
}while (!input.equals(""));//loop while user doesn't press ENTER
for (int i = 0; i < 4; i++){
randNumbers.add(random.nextInt(10) + 1);//loop to fill the randNumbers arraylist with random numbers
}
/*
randNumbers.add(3);
randNumbers.add(2);
randNumbers.add(9);
randNumbers.add(9);
*/
System.out.println("My random numbers: " + randNumbers.toString());
int counter = 0;
int bulls = 0;
int eyes = 0;
do {
System.out.println("Please enter 4 numbers between 1-10");
number = sc.nextInt();
if (number > 0 && number <= 10){
//System.out.println("index of rand: " + randNumbers.indexOf(number));
//System.out.println("count: " + counter);
if (randNumbers.indexOf(number) == counter){
eyes++;
System.out.println("eyes++");
}else if (randNumbers.contains(number)){
bulls++;
System.out.println("bulls++");
}
counter++;
System.out.println("Number " + counter + " introduced. " + (4 - counter) + " more to go.");
}else {
System.out.println("Wrong number.");
}
}while (counter < 4);//loop for user to introduce valid numbers
System.out.println("You scored " + bulls + " bulls and " + eyes + " eyes.");
}
}
Попробуйте этот кусок кода. Обратите внимание, что я использовал ArrayList, а не массив, так как он предлагает методы, такие как .contains () и .indexof ().
ПРЕДУПРЕЖДЕНИЕ: код не будет выполнен, если массив randNumbers содержит два равных числа, например массив 3-2-9-9, который комментируется, когда вы вводите 9-9-9-9 в качестве угаданных чисел. Это потому, что метод .indexof ():
Возвращает индекс первого вхождения указанного элемента в этом списке или -1, если этот список не содержит элемент.
Значение кода не учитывает последние 9, поскольку он будет сравнивать индекс счетчика (3) с first вхождением 9 в randNumbers, которое равно 2, делая его ложным и не увеличивая глаза считать.
Поскольку у меня мало времени, и у вас есть это задание, и простое его копирование мало чему вас научит, я оставлю вам решение по этому конкретному c делу ( Я уже говорил вам, что не так, не будет трудно решить).