2021.04.24 - [이미지맥스, lua/루아 lua] - [lua] 루아에서 랜덤한 문자열을 생성하기


앞서 랜덤한 문자열을 정해진 규칙에 따라 생성해보았습니다. 가령 문자 10자 + 숫자 3자 같은 방법으로 말이죠.

이에 문자열 자동 생성을 보다 더 랜덤한 규칙으로 생성하고 싶어졌습니다.


대문자, 소문자, 숫자 캐릭터를 생성하는 부분을 각각 함수화 하고 이 함수를 랜덤으로 실행하는 방법을 통해 랜덤한 문자가 포함된 테이블을 생성합니다.

이렇게 생성한 테이블에 저장된 문자(캐릭터)들을 조합하여 문자열(스트링)으로 만들어주면 완료입니다!


-- Make Random String
function makeChar1(charsTable)
    local char = string.char(math.random(0x410x5A))
    table.insert(charsTablechar)
end

function makeChar2(charsTable)
    local char = string.char(math.random(0x610x7A))
    table.insert(charsTablechar)
end

function makeNum(charsTable)
    local char = string.char(math.random(0x300x39))
    table.insert(charsTablechar)
end

function combineString(charsTable)
    local combine = ''
    for i = 1, #charsTable1 do
        combine = combine..charsTable[i]
    end
    return combine
end

-- sample
randomChars = {}
for i = 141 do
    make_what = math.random(1,3)
    if make_what == 1 then
        makeChar1(randomChars)
    elseif make_what == 2 then
        makeChar2(randomChars)
    elseif make_what == 3 then
        makeNum(randomChars)
    end
end
newString = combineString(randomChars)
print(newString)


이미지맥스라면 이렇게 생성한 문자열을 키보드입력함수 Keybd() 를 이용하여 타이핑하신다면 금상첨화입니다.


더 재밌습니다.


답글