又是我。那就对了。回到更多新秀错误。嘿。
我想知道是否有办法做到这一点,因为我的尝试运气不好,需要其他人的帮助...比我更有能力解决问题。
我希望具有这样的功能:
local function numberAddWithinRange(numberStart, add, min, max)
local x;numberStart = numberStart + add;
if numberStart<min then
x = min + (numberStart*(numberStart>0 and -1 or 1)); -- - numberStart;
return numberAddWithinRange(max, -x, min, max);
elseif numberStart>max then
x = min + (numberStart*(numberStart>0 and -1 or 1));-- - numberStart;
print("X is:", x);
return numberAddWithinRange(min, x, min, max);
else
x = numberStart;
end;
return x;
end;
这可以, 排序。
您知道,我想做的是,当我将245乘以20,范围为25和50时,它将一遍又一遍地从25-> 50、25-> 50一直添加到它到达使用所有“溢出”数字的地步,然后返回剩余的数字。 (如果max == 50,则51变为26,然后继续添加,依此类推)
但是,我的功能似乎无法正确执行,无论是夜间还是无法解决的问题。
作为参考,“ after2”应等于“ startNum”,但不是。
local startNum = 200;
local after = numberAddWithinRange(startNum, 400, 33, 127);
local after2 = numberAddWithinRange(after, -400, 33, 127);
print(after, after2, after2==startNum)
无论是在Google还是在stackoverflow上,我都到处看看,但没有找到任何可以帮助我的东西。 我可能只是愚蠢...但是希望有人可以帮助我。
我也知道我可以这样做:
local gn = function(num, add, min, max)
for i=add<0 and -1 or 1, add do
num = num + (1 * (add<0 and -1 or 1));
if num > max then
num = min;
elseif num < min then
num = max;
end;
end;
return num;
end;
但是,在我看来,这将是非常低效的,因此任何知识渊博的人:请帮助。