-- 이 모듈은 {{Roman}}을(를) 구현한다. 국부적 p = {} -- {{overline}} 템플리트를 구현하는 기능 입니다. 국부적 기능을 하다 도를 넘다(s) 돌아오다 mw.우스트링.형식을 갖추다( '<span style="text-thread:overline;"%s</span'', s ) 종지부를 찍다 -- 주어진 숫자 표에 대한 로마 숫자 가져오기.두 문자열 모두 반환 -- 숫자와 처리 완료 후의 숫자 값. 국부적 기능을 하다 게틀렛츠(숫자, t) 국부적 되받아치다 = {} 을 위해 _, v 에 아이페어(t) 하다 국부적 발랄하게 하다, 글자 = 짐을 풀다(v) 하는 동안에 숫자 >= 발랄하게 하다 하다 숫자 = 숫자 - 발랄하게 하다 table.insert(되받아치다, 글자) 종지부를 찍다 종지부를 찍다 돌아오다 table.classat(되받아치다), 숫자 종지부를 찍다 -- 모듈의 주 컨트롤 흐름. 국부적 기능을 하다 _주요(아그) -- 입력을 가져오고 입력이 비어 있으면 아무것도 표시하지 않고 종료하십시오. 만일 아그[1] == 못을 박다 그때 돌아오다 종지부를 찍다 국부적 숫자 = 톤넘버(아그[1]) 만일 아닌 숫자 또는 숫자 < 0 또는 숫자 == 수학.수학. 그때 착오('잘못된 숫자 ' .. 아그[1], 2) 그렇지 않으면 숫자 == 0 그때 돌아오다 'N' 종지부를 찍다 -- 숫자가 너무 커서 로마 숫자로 표현할 수 없는 경우 메시지를 반환하십시오. 만일 숫자 >= 5000000 그때 돌아오다 아그[2] 또는 '없음' 종지부를 찍다 국부적 되받아치다 = '' -- 숫자의 많은 부분을 위한 로마 숫자를 찾으십시오. -- 2016년 4월 23일 - 큰 로마인을 받아들이기 위해 >= 4000으로 수정했다.'IV' -- if 문장이 엄격하게 필요한 것은 아니지만 알고리즘을 만든다. -- 적은 숫자에 더 효율적임. 만일 숫자 >= 4000 그때 국부적 비그로맨스 = { { 1000000, 'M' }, { 900000, 'CM' }, { 500000, 'D' }, { 400000, 'CD' }, { 100000, 'C' }, { 90000, 'XC' }, { 50000, 'L' }, { 40000, 'XL' }, { 10000, 'X' }, { 9000, 'IX' }, { 5000, 'V' }, { 4000, 'IV' }, } 국부적 빅레터즈 빅레터즈, 숫자 = 게틀렛츠(숫자, 비그로맨스) 되받아치다 = 도를 넘다(빅레터즈) 종지부를 찍다 -- 로마자의 큰 임계값보다 작은 숫자에 대한 로마 숫자를 찾으십시오. 국부적 스몰로맨스 = { { 1000, 'M' }, { 900, 'CM' }, { 500, 'D' }, { 400, 'CD' }, { 100, 'C' }, { 90, 'XC' }, { 50, 'L' }, { 40, 'XL' }, { 10, 'X' }, { 9, 'IX' }, { 5, 'V' }, { 4, 'IV' }, { 1, '나' } } 국부적 스몰레터즈 = 게틀렛츠( 숫자, 스몰로맨스 ) 되받아치다 = 되받아치다 .. 스몰레터즈 만일 아그.분수 == '그렇다' 그때 -- 숫자의 소수 부분들에 대한 로마 숫자를 찾아라. -- 숫자가 정수가 아닌 경우 반올림과 같도록 1/1728(최소 단위)의 절반을 추가하십시오. -- 최소 단위 이상 또는 1 - 최소 단위 이상이어야 함 - 두 개의 "반" 기호를 받거나 기호가 전혀 없는 것을 피하기 위해 숫자 = 숫자 - 수학을 하다.(숫자) 만일 숫자 ~= 0 그때 숫자 = math.max(1.1/1728, math.min(1727.1/1728, 숫자 + 1/3456)) 종지부를 찍다 국부적 분수로맨스 = { { 1/2, 'S' }, { 5/12, "''':'''•''':'''" }, { 1/3, "'''::'''" }, { 1/4, "''':'''•" }, { 1/6, "''':'''" }, { 1/12, '•' }, { 1/24, 'Є' }, { 1/36, 'ƧƧ' }, { 1/48, 'Ɔ' }, { 1/72, 'Ƨ' }, { 1/144, '''' }, { 1/288, '℈' }, { 1/1728, '»' }, } 국부적 fractalLetters = 게틀렛츠(숫자, 분수로맨스) 되받아치다 = 되받아치다 .. fractalLetters 종지부를 찍다 돌아오다 되받아치다 종지부를 찍다 기능을 하다 p.본래의(액자에 넣다) -- #invoke를 통해 호출될 경우 호출에 전달되는 아그를 사용하십시오. -- 템플릿 또는 #messages로 전달된 아그(arg)가 존재하는지 여부.그렇지 않으면 -- 디버그 콘솔에서 직접 아그가 전달되는 것으로 가정 - 또는 다른 루아 모듈에서. 국부적 종이접기 만일 액자에 넣다 == mw.getCurrentFrame() 그때 종이접기 = 액자에 넣다:getParent().아그 을 위해 k, v 에 쌍들(액자에 넣다.아그) 하다 종이접기 = 액자에 넣다.아그 부숴뜨리다 종지부를 찍다 다른 종이접기 = 액자에 넣다 종지부를 찍다 -- 공백을 자르고 빈 인수 제거 국부적 아그 = {} 을 위해 k, v 에 쌍들(종이접기) 하다 만일 타자를 치다( v ) == '끈' 그때 v = mw.문자 메시지를 보내다.다듬다(v) 종지부를 찍다 만일 v ~= '' 그때 아그[k] = v 종지부를 찍다 종지부를 찍다 - 아무것도 주어지지 않으면 퇴장소 만일 아그 == 못을 박다 또는 아그 == {} 그때 돌아오다 종지부를 찍다 -- 수학 식을 지정하면 숫자로 단순화 만일 타자를 치다(아그[1]) == '끈' 그때 아그[1] = mw.내분의.파서 기능.생략하다(아그[1]) 종지부를 찍다 돌아오다 _주요(아그) 종지부를 찍다 돌아오다 p