Size: a a a

2021 June 12

U

UsernameAK in pro.lua
а теперь прочитай предыдущий вопрос
источник

U

UsernameAK in pro.lua
явно подразумевается вопрос по апи игры)
источник
2021 June 13

z

zeroxthree in pro.lua
Дратути.
источник

U

User in pro.lua
Здравствуйте, интересует вопрос, как сделать чтобы в случайных местах в строке вставлялся символ, допустим

aaaaaaaaaaaaa -> aa.aaa.a.a.aa.aaa.a
источник

RS

Rostislav Shiryakov in pro.lua
символ может появляться на первом или последнем месте? несколько символов могут появляться подряд?
источник

G

GNU/Vsevolod in pro.lua
local function rand_insert(str, count, ch)
 return table.concat(setmetatable({i = 1}, {
   __len = function() return #str + count end,
   __index = function(t, idx)
     if math.random() < count / (#str + count) then
       return ch
     else
       local c = str:sub(t.i, t.i)
       t.i = t.i + 1
       return c == '' and ch or c
     end
   end
 }))
end

local result = rand_insert('aaaaaaaaaaaaa', 6, '.')
источник

U

User in pro.lua
спасибо, скоро буду тестировать
источник

CP

Companion Philipp in pro.lua
Жесть
источник

U

User in pro.lua
да
источник

RS

Rostislav Shiryakov in pro.lua
то есть это валидное решение aaaaaaaaaaaaa -> .aaaaaa.aa.a..a..aaa ?
источник

U

User in pro.lua
ага
источник

RS

Rostislav Shiryakov in pro.lua
а новых символов сколько может появиться? или это как в примере выше должно задаваться?
источник

U

User in pro.lua
рандом
источник

RS

Rostislav Shiryakov in pro.lua
даже миллион?
источник

U

User in pro.lua
почему бы и нет :)
источник

RS

Rostislav Shiryakov in pro.lua
сорри, я просто сам тоже хочу это решить, я не придираюсь
источник

U

User in pro.lua
сейчас дошло решение, вроде

через каждый символ рандомно выбирается 0,1 или 2 символа добавить
источник

RS

Rostislav Shiryakov in pro.lua
у меня вот так вышло

local input = "aaaaaaaaaaaaa"
local input_length = string.len(input)
local min_dots = 1
local max_dots = input_length - 1 -- just for convenience
math.randomseed(os.clock() * 1000000)
local number_of_dots = math.random(min_dots, max_dots)
local output_table = {}
for character in string.gmatch(input, ".") do table.insert(output_table, character) end
for i = 1, number_of_dots do table.insert(output_table, ".") end
for i = #output_table, 2, -1 do
 local j = math.random(i)
 output_table[i], output_table[j] = output_table[j], output_table[i]
end
local output = table.concat(output_table)
pprint(input .. " -> " .. output)
источник

S

Snusmumriken in pro.lua
Ну простой вариант — что-то такое:

function trashify(str)
 for i = 0, math.random(#str) do
   local slice = math.random(#str)
   local left, right = str:sub(0, slice - 1), str:sub(slice)
   str = left .. "." .. right
 end
 return str
end
источник

S

Snusmumriken in pro.lua
Правда тут есть некоторая неравномерность, потому что появляется более высокая вероятность что новая точка будет вставлена в уже имеющуюся кучу точек.
источник