local words = {"Enjoy", "Rosetta", "Code"} for h = 1, 3 do local threads = {} for i = 1, 3 do threads[i] = coroutine.create(|| -> print(words[i])) end local called = {false, false, false} local j = 0 while j < 3 do local k = math.random(1, 3) if !called[k] then coroutine.resume(threads[k]) called[k] = true j += 1 end end print() end