- Регистрация
- 10 Июн 2023
- Сообщения
- 551
Итак. Способ, который я опишу дальше, придуман лично мной. Начнём.
Я предлагаю хранить все значения рандома в массиве. То есть, у нас будет вот такой массив.
Индекс соответствует значению, да? Дальше мы просто генерируем случайное значение от 0 до длины массива и получаем по этому индексу значение. Но что мешает нам два раза сгенерировать один и тот же индекс? Ничего.
Сейчас я и расскажу, как я предлагаю сделать уникальное значение рандома. Каждый раз, когда выпадает какое-то значение мы будем сдвигать элемент вперёд и отнимать от длины массива определенное число. Получится вот такой код:
Объясню: После того как мы получили случайное значение из массива, мы это значение удаляем и ставим в самый конец, а затем отнимаем 1 от переменной с длины. Получается приблизительно так:
В идеале сделать это циклом, либо же повторяющейся функцией.
Если что-то непонятно - пишите.
Я предлагаю хранить все значения рандома в массиве. То есть, у нас будет вот такой массив.
Код:
Индекс | Значение
1 | 1
2 | 2
3 | 3
4 | 4
5 | 5
6 | 6
Сейчас я и расскажу, как я предлагаю сделать уникальное значение рандома. Каждый раз, когда выпадает какое-то значение мы будем сдвигать элемент вперёд и отнимать от длины массива определенное число. Получится вот такой код:
Форматирование (BB-код):
# - пояснения в коде, их никуда переписывать не надо.
Событие игрок заходит в игру
Если переменная НЕ существует(randomArray) {
Создать массив(randomArray) #Переменная сохраненная
Получить длину массива(randomArray, randomArrayLength) #randomArrayLength - сохраненная
}
Установить значение переменной; случайное число(randomValue, 0, randomArrayLength)
Получить значение массива(randomArray, randomValue, randomArrayValue)
Удалить элемент массива(randomArray, randomValue)
Добавить в конец массива(randomArray, randomArrayValue)
Установить значение переменной -=(randomArrayLength)
В идеале сделать это циклом, либо же повторяющейся функцией.
Если что-то непонятно - пишите.