Недавно я начал изучать Java и имел множество проблем. Я пробовал поиск на веб-сайте, но я не могу получить ответ, который мне нужен. Извиняюсь, если есть ответ, и ошибка с моей стороны.
Сначала взгляните на мой код:
import java.util.Random;
public class Test {
public static void main (String args[]) {
Random num = new Random();
int[][] multi = new int [3][];
int test = 1; // comments for stackoverflow questions
int test2 = 10; // how can i create something that will range from 1-9?
int test3 = test2-test; // trying this has always generated 0-9 instead
multi[0] = new int [] {num.nextInt(test3), num.nextInt(test3), num.nextInt(test3)};
multi[1] = new int [] {num.nextInt(test3), num.nextInt(10), num.nextInt(10)};
multi[2] = new int [] {test3, test3, num.nextInt(10)};
// PLEASE IGNORE THE 2D ARRAYS, it just something I am testing on
int rows = 3;
int columns = 3;
for(int i=0; i<rows; i++) {
for (int j=0; j<columns; j++) {
System.out.print(multi[i][j] + "\t");
}
System.out.println();
}
}
}
Я пытаюсь имитировать джек-пот, в котором я хочу генерировать числа от 1 до 9 во всем 2D-массиве, который я создал. Однако я не знаю, как генерировать числа от 1 до 9, у меня есть только диапазоны 0-10 и 0-9
Моя идея состоит в том, что, как только я закончу этот 2D-массив диапазонов 1-9, я мог бы использовать определенное количество операторов if-else, чтобы заставить пользователя выиграть джек-пот всякий раз, когда центральная строка или диагональные строки имеют 3 одинаковых числа.
Я также попытался использовать:
int test3 = num.nextInt(test2-test+1)-test;
Это будет генерировать числа между 1-9, но если бы я использовал все это, он всегда будет генерировать одинаковые числа для меня, в противном случае это дает исключение из-за отрицательных чисел.
если вам нужно только случайное число между включенными 1 и 9, это должно помочь:
Random r = new Random();
int num = r.nextInt(9) + 1;
Чтобы создать значение от 1 до 9:
Random random = new Random();
int n = random.nextInt(9) + 1;
Чтобы применить это в своем случае:
multi[0] = new int []
{num.nextInt(9) + 1, num.nextInt(9) + 1, num.nextInt(9) + 1};
Random.nextInt()
всегда возвращает значение не менее 1? ;) Я предлагаю вам прочитать Java API, он очень хорош для изучения того, что вы можете делать с его стандартными библиотеками. docs.oracle.com/javase/7/docs/api/java/util/...
Вы можете генерировать случайное число следующим образом:
Math.rand() * i // Generate number between 0 and i-1
Или
Math.rand() * i + 1 // Generate number between 1 and i