پودمان:Legals: تفاوت میان نسخه‌ها

بدون خلاصۀ ویرایش
بدون خلاصۀ ویرایش
بدون خلاصۀ ویرایش
خط ۵۴: خط ۵۴:
-- Source: https://stackoverflow.com/questions/35572435/how-do-you-do-the-fisher-yates-shuffle-in-lua
-- Source: https://stackoverflow.com/questions/35572435/how-do-you-do-the-fisher-yates-shuffle-in-lua
function FYShuffle(tInput, indexList)
function FYShuffle(tInput, indexList)
    -- چک کردن معتبر بودن indexList
    if not indexList or #indexList ~= #tInput then
        error("indexList is nil or does not match the length of tInput")
    end
     local tReturn = {}
     local tReturn = {}
    local tCopy = {table.unpack(tInput)}  -- ایجاد یک کپی از tInput برای جلوگیری از تغییرات ناخواسته در آن
     for i = #tInput, 1, -1 do
     for i = #tInput, 1, -1 do
         local j = indexList[#tInput - i + 1]
         local j = indexList[#tInput - i + 1]
         tInput[i], tInput[j] = tInput[j], tInput[i]
         tCopy[i], tCopy[j] = tCopy[j], tCopy[i]
         table.insert(tReturn, tInput[i])
         table.insert(tReturn, tCopy[i])
     end
     end
     return tReturn
     return tReturn
end
end




return p
return p