모듈:연습장: 두 판 사이의 차이
둘러보기로 이동
검색으로 이동
백괴게임>Riemann (새 문서: -- 모듈 연습장입니다.) |
백괴게임>Riemann (조사 모듈 포팅 테스트.) |
||
1번째 줄: | 1번째 줄: | ||
-- 모듈 연습장입니다. | -- 모듈 연습장입니다. | ||
local p = {} | |||
p.josa = function(frame) | |||
local arg = frame.args | |||
return _josa(arg) | |||
end | |||
function _josa(args) | |||
local result = {{'은', '는', '은(는)'}, {'이', '가', '이(가)'}, {'을', '를', '을(를)'}, {'으로', '로', '(으)로'}, {'과', '와', '과(와)'}, {'아', '야', '아(야)'}, {'이', '', '(이)'}} | |||
if args[1] == '은는' then | |||
tp = 1 | |||
elseif args[1] == '이가' then | |||
tp = 2 | |||
elseif args[1] == '을를' then | |||
tp = 3 | |||
elseif args[1] == '으로' then | |||
tp = 4 | |||
elseif args[1] == '과와' then | |||
tp = 5 | |||
elseif args[1] == '아야' then | |||
tp = 6 | |||
elseif args[1] == '이' then | |||
tp = 7 | |||
end | |||
local fin = mw.ustring.sub(mw.ustring.toNFD(args[2]), -1, -1) | |||
local fnum = mw.ustring.codepoint(fin) | |||
local code | |||
if (fnum == 4527 or fnum == 12601) then | |||
code = 10 | |||
elseif ((4520 <= fnum and fnum <= 4546) or (12593 <= fnum and fnum <= 12622)) then | |||
code = 1 | |||
elseif ((4449 <= fnum and fnum <= 4469) or (12623 <= fnum and fnum <= 12643)) then | |||
code = 2 | |||
else | |||
code = 3 | |||
end | |||
if tp == 4 then | |||
if code == 1 then | |||
josa = result[4][1] | |||
elseif code == 2 or code == 10 then | |||
josa = result[4][2] | |||
else josa = result[4][3] | |||
end | |||
else | |||
if code == 1 or code == 10 then | |||
josa = result[tp][1] | |||
elseif code == 2 then | |||
josa = result[tp][2] | |||
else josa = result[tp][3] | |||
end | |||
end | |||
return table.concat({args[2], josa}) | |||
end | |||
return p |
2018년 8월 8일 (수) 14:33 판
- 장기간에 걸쳐 수정이 필요한 경우 별도로 모듈페이지를 만드는 것을 추천합니다.
- 다음 문서가 도움이 될 수 있습니다.
- 다른 이름공간에 대한 연습은 아래에서 가능합니다.
- 낙서장을 비우려면 여기 를 클릭하세요.
위 설명은 모듈:연습장/설명문서의 내용을 가져와 보여주고 있습니다. (편집 | 역사) 이 모듈에 대한 수정 연습과 시험은 연습장 (만들기 | 미러)과 시험장 (만들기)에서 할 수 있습니다. 분류는 /설명문서에 넣어주세요. 이 모듈에 딸린 문서. |
-- 모듈 연습장입니다.
local p = {}
p.josa = function(frame)
local arg = frame.args
return _josa(arg)
end
function _josa(args)
local result = {{'은', '는', '은(는)'}, {'이', '가', '이(가)'}, {'을', '를', '을(를)'}, {'으로', '로', '(으)로'}, {'과', '와', '과(와)'}, {'아', '야', '아(야)'}, {'이', '', '(이)'}}
if args[1] == '은는' then
tp = 1
elseif args[1] == '이가' then
tp = 2
elseif args[1] == '을를' then
tp = 3
elseif args[1] == '으로' then
tp = 4
elseif args[1] == '과와' then
tp = 5
elseif args[1] == '아야' then
tp = 6
elseif args[1] == '이' then
tp = 7
end
local fin = mw.ustring.sub(mw.ustring.toNFD(args[2]), -1, -1)
local fnum = mw.ustring.codepoint(fin)
local code
if (fnum == 4527 or fnum == 12601) then
code = 10
elseif ((4520 <= fnum and fnum <= 4546) or (12593 <= fnum and fnum <= 12622)) then
code = 1
elseif ((4449 <= fnum and fnum <= 4469) or (12623 <= fnum and fnum <= 12643)) then
code = 2
else
code = 3
end
if tp == 4 then
if code == 1 then
josa = result[4][1]
elseif code == 2 or code == 10 then
josa = result[4][2]
else josa = result[4][3]
end
else
if code == 1 or code == 10 then
josa = result[tp][1]
elseif code == 2 then
josa = result[tp][2]
else josa = result[tp][3]
end
end
return table.concat({args[2], josa})
end
return p