SergOz, твоя задача решается следующим образом: 
1) Тебе нужен массив на 9 чисел. По умолчанию в них будут значения 1, 2, 3, 4, 5, 6, 7, 8, 9. 
2) Тебе нужна переменная, которая будет хранить длину массива. 
 
Для генерации случайного числа выполняем следующее: 
1) Генерируем случайный индекс от 0 до РазмерМассива - 1. 
2) Смотрим элемент в массиве под данным индексом и запоминаем его в результат. 
3) Копируем последний элемент массива в тот, что выпал случайно. 
4) Уменьшаем размер массива на один. 
 
Привожу пример. 
Массив: 1 2 3 4 5 6 7 8 9 
Размер массива: 9 
 
Генерируем случайный индекс от 0 до (9 - 1) = 4. 
Под индексом 4 у нас значение 5. 5 → первый результат. Копируем в этот элемент значение последнего (9) и уменьшаем длину массива на один. 
 
Массив: 1 2 3 4 9 6 7 8 
Размер массива: 8. 
 
Как видишь, после указанной операции у нас массив чисел, в котором уже гарантированно нет ранее сгенерированного числа. 
Повторяем процедуру. Случайный индекс от 0 до (8 - 1) = 2. 
 
В результат помещаем ещё одно число (3), которое заменяем на 8 в массиве. 
 
Массив: 1 2 8 4 9 6 7 
Размер массива: 7. 
 
Случайный индекс: 6. В результат помещаем 7, заменяем 7 на 7 и уменьшаем размер массива на один. 
 
Массив: 1 2 8 4 9 6 
Размер массива: 6. 
 
На ЕРМ тебе понадобятся: 
 
!#VA(uniqueNumbers[9]:y); Массив, в котором хранятся уникальные числа 
!!VR(uniqueNumbers):C1/2/3/4/5/6/7/8/9; сразу же его заполни 
!!VR(sampleSize:y):S9; начальный размер массива 
 
Сгенерировать случайный индекс можно командой R0/мин/макс. 
Если нужно сгенерировать число от 0 до 9 - 1, можно сгенерировать от 1 до 9, а затем вычесть 1. 
 
!!VR(randomInd:y):R0/1/(sampleSize) -1; получили случайный индекс. 
!!VR(randomItemPtr:y):S(@uniqueNumbers) +(randomInd); Random item pointer — указатель на случайный элемент в переводе 
Вычисляется как индекс начала массива + смещение в массиве. Если у тебя массив y50..y58, то 50 — его начальный индекс. 
@uniqueNumbers и компилируется в начальный индекс массива 
 
само значение по указателю можно получить так: y(randomItemPtr) 
 
Попробуй поэкспериментировать. Если не выйдет, приведу полный код.
			 
			
			
  
Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов 
Поддержать проект 
			
		 |