У меня есть базовая таблица, содержащая случайные числа от 32 до 512. Я хочу иметь возможность увеличивать и уменьшать значение каждого числа на 10, если только наименьшее число в таблице не равно = 32 или наибольшее не равно = 512.
Я использую метод зажима, чтобы ограничить свои числа заданными значениями, и все работает, однако все числа будут уменьшены до самого низкого значения вместо приостановки функции, если самое низкое число в таблице равно 32.Таким образом, они все пойдут на 32 или 512, вместо того, чтобы остановиться, где бы они ни находились, когда одно из чисел достигнет 32 или 512.
if math.min(table.unpack(sequences.c1Sequence.data)) >= 32 and math.max(table.unpack(sequences.c1Sequence.data)) <= 512 then
for i, v in ipairs(sequences.c1Sequence.data) do
sequences.c1Sequence.data[i] = util.clamp(v + (10*d), 32, 512)
end
end
Чтобы уточнить, что «d» это либо 1, либо -1 каждый разфункция вызывается, поэтому я = i +/- 10 в зависимости от того, что входит.
Функция зажима:
util.clamp = function(n, min, max)
return math.min(max,(math.max(n,min)))
end
А таблица просто:
data = {33, 122, 97, 64, 222, 314, 90, 39, 63, 44, 312, 502, 34, 409, 111, 212}
Или любой другой случайный диапазон числа.
Я ожидаю, что когда любое число в диапазоне = 32 или 512, функция не будет ничего делать, и числа останутся одни.Вместо этого они все (если функция продолжает получать -1 много раз) переходят к 32 или (если функция продолжает получать +1) к 512. Случайность не сохраняется.
Приветствия:)