은, 는, 이, 가 알아내기
유니코드에서 한글은 십진수로 44032 에서 55203 까지 ..
유니코드에서 한글 패턴을 분석해보면,
1. 초성 19자 : ㄱ ㄲ ㄴ ㄷ ㄸ ... 순서
2. 중성 21자 : ㅏ ㅐ ㅑ ㅒ ... 순서
3. 종성 28자 : (없음) ㄱ ㄲ ㄳ ㄴ ㄵ ... 순서
따라서 19 x 21 x 28 = 11172 = 55203 - 44032 + 1 자의 한글 구성.
이들 한글 초 / 중 / 종성 으로 코드를 구성할 때.
초성 - 중성 - 종성 순으로 코드를 구성.
즉 코드 44032 는 ' 가 ' 이고 44033 은 ' 각 ' 44034 는 ' 갂 '
'가' 에 종성 붙이는게 끝이나면.. 개 -> 객 -> .... 이런식
따라서 어떤 글자의 코드에서 44032 빼고 21 x 28로 나누면
0 ~~ 18 사이 숫자를 얻게되고, 이는 초성의 순서와 같음.
마찬가지로 44032 빼고 21 x 28로 나누고 그 나머지를 다시 28로 나눈 몫은 0 ~ 20 으로 이는 중성
마지막으로 44032 빼고 21 x 28로 나누고 그 나머지를 다시 28로 나눈 나머지는 0 ~ 27 이고 이는 종성
따라서... 종성을 알고 싶다면,
int end = ( ( szText - 44032 ) % ( 21 x 28 ) ) % 28;
가바로 end 는 종성 순서... 0 이면 종성 없음.
종성 순서에 따라 배열로 만들어두고 '은' '는' '이' '가' 를 결정하면 끝..
뭐 쉽죠? ^^
'게임 개발' 카테고리의 다른 글
FreeType2 개요 번역 (0) | 2010.03.17 |
---|---|
Scaleform GFx 분석 (0) | 2010.03.17 |
Winen - Memory Dump Tool (0) | 2010.01.27 |
Adobe Flash 관련 정보 (0) | 2009.07.18 |
PEDasm 의 신버전 v0.3.3 (0) | 2009.07.12 |