|
Постоянный
Регистрация: 11.07.2019
Сообщений: 702
С нами:
3601315
Репутация:
148
|
|
Сообщение от Andrinall
Lua:
Код:
local
text
=
"[ b][ b][ b]FFF[c][c][c]"
math
.
randomseed
(
os
.
clock
(
)
)
text
=
text
:
gsub
(
"%[ b%]"
,
math
.
random
(
0
,
9
)
)
:
gsub
(
"%[c%]"
,
string
.
char
(
math
.
random
(
32
,
127
)
)
print
(
text
)
Писал с телефона, если где косякнул - сорян.
upd: [c] в этом коде заменяется на рандом символ из таблицы ascii, a не на рандом букву
Немного поправлю и дополню свой код, раз уж зашёл с пк и вижу сообщение, что он не рабочий.
Lua:
Код:
local
text
=
"[ b][ b][ b]FFF[c][c][c]"
math
.
randomseed
(
os
.
time
(
)
)
for
i
=
1
,
text
:
find
(
"[[ b]]+"
)
do
text
=
text
:
gsub
(
"%[ b%]"
,
math
.
random
(
0
,
9
)
,
1
)
end
for
i
=
1
,
text
:
find
(
"[[c]]+"
)
do
local
symbol
=
string
.
char
(
(
{
math
.
random
(
65
,
90
)
,
math
.
random
(
97
,
122
)
}
)
[
math
.
random
(
2
)
]
)
text
=
text
:
gsub
(
"%[c%]"
,
symbol
,
1
)
end
print
(
text
)
Сообщение от Спойлер
Lua:
Код:
local
text
=
"[ b][ b][ b]FFF[c][c][c]"
math
.
randomseed
(
os
.
time
(
)
)
for
i
=
1
,
text
:
find
(
"[[ b]]+"
)
do
-- проходимся по тексту кол-во раз, сколько было найдено совпадение с паттерном
text
=
text
:
gsub
(
"%[ b%]"
,
math
.
random
(
0
,
9
)
,
1
)
-- заменяем каждое совпадение на псевдослучайное число
end
for
i
=
1
,
text
:
find
(
"[[c]]+"
)
do
local
symbol
=
string
.
char
(
(
{
math
.
random
(
65
,
90
)
,
math
.
random
(
97
,
122
)
}
)
[
math
.
random
(
2
)
]
)
--[[
в, скажем так, безымянную таблицу кидаем 2 псевдослучайных числа,
это номера символов верхнего и нижнего регистров в ASCII Table, выбирается 1 символ верхнего и 1 нижнего регистров
далее из этих двух псевдослучайных чисел выбираем одно и переводим в символ функцией string.char()
]]
text
=
text
:
gsub
(
"%[c%]"
,
symbol
,
1
)
-- заменяем каждое совпадение на псевдослучайный символ ;)
end
print
(
text
)
-- выводим получившийся текст
Можно это всё сделать отдельной функцией
Lua:
Код:
function
randomCode
(
txt
)
if
not
txt
or
#
txt
==
0
then
return
""
end
math
.
randomseed
(
os
.
time
(
)
)
for
i
=
1
,
txt
:
find
(
"[[ b]]+"
)
do
txt
=
txt
:
gsub
(
"%[ b%]"
,
math
.
random
(
0
,
9
)
,
1
)
end
for
i
=
1
,
txt
:
find
(
"[[c]]+"
)
do
local
symbol
=
string
.
char
(
(
{
math
.
random
(
65
,
90
)
,
math
.
random
(
97
,
122
)
}
)
[
math
.
random
(
2
)
]
)
txt
=
txt
:
gsub
(
"%[c%]"
,
symbol
,
1
)
end
return
txt
end
И да, код рабочий:

|