music_quiz: answer 정규화 도입 (대소문자/공백 무시)
- mq:answer/normalize: storage 의 norm.in 을 한 글자씩 떼어내 소문자화 + 공백 제거 후 norm.acc 에 누적. char 단위 반복은 'data modify ... set string from ... <start> <end>' (1.20+) 로, 결합은 매크로 ($(acc)$(c)) 로 수행하는 pure-datapack 구현. - process: 큐의 text 를 정규화한 결과를 judge.input 으로 사용 - judge: answer.title 정규화 후 judge.answer 로 사용 - iter_aliases: alias 각 항목 정규화 후 비교 원본 songs.mcfunction 의 title/alias 표기는 그대로 유지 (display 및 정규화 입력으로 모두 사용됨). 입력이 'Lose My Mind' / 'lose my mind' / 'LOSEMYMIND' / 'losemymind' 어떤 형태든 동일한 정규형으로 떨어져 매치.
This commit is contained in:
13
music_quiz/data/mq/function/answer/normalize.mcfunction
Normal file
13
music_quiz/data/mq/function/answer/normalize.mcfunction
Normal file
@@ -0,0 +1,13 @@
|
||||
# 입력 문자열 정규화 — 소문자 변환 + 공백 제거 (대소문자/공백 무시 비교용)
|
||||
#
|
||||
# 입력 : storage mq:tmp norm.in (원본 문자열)
|
||||
# 출력 : storage mq:tmp norm.acc (정규화 결과)
|
||||
#
|
||||
# 호출 예:
|
||||
# data modify storage mq:tmp norm.in set from storage mq:main answer.title
|
||||
# function mq:answer/normalize
|
||||
# # 이후 storage mq:tmp norm.acc 에 결과
|
||||
#
|
||||
# 동작: norm.in 을 한 글자씩 떼어내며 normalize/step 으로 재귀
|
||||
data modify storage mq:tmp norm.acc set value ""
|
||||
function mq:answer/normalize/step
|
||||
Reference in New Issue
Block a user