Сложно найти игру, где бы не использовался генератор случайных чисел.
Поэтому напишу его простейшую реализацию.
Что используем:
Класс Math пакета java.lang
Для генерации случайных чисел используем метод 'Math.random()'
Для округления чисел метод 'Math.ceil()'
Метод 'Math.random()' возвращает случайное число типа double в диапазоне от 0,0 до 0,999. Желаемый диапазон можно расширить при помощи умножения на случайное число. Например, умножив на 10, можно создать случайное число от 0,0 до 9,999. После этого, если округлить полученное число при помощи метода 'Math.ceil()', то полученное целое число попадает в диапазон от 1 до 10.
И так как это будет выглядеть в простейшем виде:
float random = (float) Math.random() ;
//System.out.println( "Случайное число: " + random ) ;
Log.d("Div","Случайное число: " + random);
float multiplied = random * 10 ;
//System.out.println( "Умноженное на 10: " + multiplied ) ;
Log.d("Div","Умноженное на 10: " + multiplied);
int randomInt = (int) Math.ceil( multiplied ) ;
//System.out.println( "Случайное целое: " + randomInt ) ;
Log.d("Div","Случайное целое: " + randomInt);
В результате будет выведено:
Случайное число: 0.4544757
Умноженное на 10: 4.544757
Случайное целое: 5
При помощи метода Math.random() можно сгенерировать последовательность из шести неповторяющихся целых чисел в диапазоне от 1 до 49 включительно, чтобы смоделировать выпадение номеров в лотерее.
1. Создайте целочисленный массив из 50 элементов, а затем заполните элементы с 1 по 49 целыми числами от 1 до 49.
int[] nums = new int[50] ;
for( int i = 1 ; i < 50 ; i++ ) { nums[i] = i ; }
2. Перемешайте значения в элементах массива от 1 до 49.
for( int i = 1 ; i < 50 ; i++ )
{
int r = (int) Math.ceil( Math.random() * 49 ) ;
int temp = nums[i] ;
nums[i] = nums[r] ;
nums[r] = temp ;
}
3. Выведите только те значения, которые содержатся в элементах от 1
до 6.
for ( int i = 1 ; i < 7 ; i++ )
{
//System.out.print( Integer.toString( nums[i]) + " " );
Log.d("Div", Integer.toString( nums[i]) + " ");
}
Вывод:
35 40 8 13 27 36
Для чего чаще всего применяется, для поведения персонажей (выбора игровыми персонажами из многих возможных вариантов) и игровых действий в целом, а также генерировании мирового игрового пространства и ландшафта.
Статья простенькая, но я не мог пропустить эту тему.