Если условие выполнено, снова запустите функцию [LUA] - PullRequest
0 голосов
/ 01 сентября 2018

У меня есть простая функция, чтобы заполнить массив случайными числами

local function fillArray()
    local rand = math.random( 1,8 )
    if has_value(weaponOrder, rand) then
        -- I WANT TO RESTART FUNCTION HERE
        return false
    end
    return rand
end
for i = 1,8 do
    order[i] = fillArray()
end

Я хочу, чтобы условие выполнялось (еще одна функция - has_value, чтобы проверить, существует ли число снова), чтобы снова запустить функцию и вернуть другой результат.

1 Ответ

0 голосов
/ 01 сентября 2018

Использование repeat-until выписка.

local function fillArray()
  local rand
  repeat
    rand = math.random( 1,8 )
  until not has_value(weaponOrder, rand)
  return rand
end
...