Случайная генерация чисел, без повторов.
|
|
Интернет | Дата: Вторник, 29 Декабря 2015, 18:52 | Сообщение # 1 |
постоянный участник
Сейчас нет на сайте
| Есть у меня например 16 экземпляров одного объекта, мне нужно для каждого сгенерировать число от 1 до 16 без повторов, если использовать обычные функции рандома (irandom(), irandom_range()) то обязательно будет 2-3 экземпляра с повторяющимся числом.
|
|
| |
JackNazaryan | Дата: Вторник, 29 Декабря 2015, 19:36 | Сообщение # 2 |
старожил
Сейчас нет на сайте
| Интернет, не вариант создать массив и хранить там уже заюзанные числа?
|
|
| |
lvovand | Дата: Вторник, 29 Декабря 2015, 19:37 | Сообщение # 3 |
старожил
Сейчас нет на сайте
| задай массив от 1 до 16 и когда объекту число назначаешь, то выбирай случайно из этого массива, а из массива это число убери, и следующему объекту уже будет выборка из 15 ну и т.д.
Разработка и продвижение сайтов. Дизайн
|
|
| |
Интернет | Дата: Вторник, 29 Декабря 2015, 20:08 | Сообщение # 4 |
постоянный участник
Сейчас нет на сайте
| Цитата lvovand ( ) задай массив от 1 до 16 и когда объекту число назначаешь, то выбирай случайно из этого массива, а из массива это число убери, и следующему объекту уже будет выборка из 15 ну и т.д. то есть по такому принципу r[0]=1,r[1]=2,r[2]=3........r[14]=15,r[15]=16, потом r=irandom_range(rt[0],rt[15]) if r=rt[0]{ irandom_range(rt[1],rt[15])} else{ if r=rt[1]{ irandom_range(rt[2],rt[15])} и тд. Так что ли?
|
|
| |
OpenGOO | Дата: Вторник, 29 Декабря 2015, 20:54 | Сообщение # 5 |
почти ветеран
Сейчас нет на сайте
| Создаем список (ds_list_create) заполняем список числами от 1 до 16 и перемешиваем (ds_list_shuffle)
Мои проекты: - Свободный и открытый клон World Of Goo - TrueEngine2D (2D игровой фреймворк основанный на FreeBASIC)
[GameMaker: Studio v1.4.9999]
|
|
| |
007PRO | Дата: Среда, 30 Декабря 2015, 14:24 | Сообщение # 6 |
частый гость
Сейчас нет на сайте
| В GameMaker: Studio есть функция randomize(); Вызывай её сначала, а потом генерируй случайные числа. Будет без повторов, каждый раз - разные
Сообщение отредактировал 007PRO - Среда, 30 Декабря 2015, 14:26 |
|
| |