Giriş
DVORAK Klavye düzenine benziyor , ancak çok daha zor.
Önce Korece klavye hakkında konuşalım. Wikipedia'da görebileceğiniz gibi , Korece ve İngilizce anahtar kümeleri arasında geçiş yapmak için bir Kor / Eng anahtarı vardır.
Koreliler bazen yanlış yazıyorlar: qwerty klavyede Korece veya iki setli klavyede İngilizce yazmaya çalışıyorlar.
Yani, sorun şu: iki setli klavyede yazılmış Korece karakterler verilirse, qwerty klavyede yazılmış alfabetik karakterlere dönüştürün. Qwerty ile yazılmış alfabetik karakterler verildiyse, bunu iki setli klavyeyle değiştirin.
İki Setli Klavye
İşte iki setli klavye düzeni:
ㅂㅈㄷㄱㅅㅛㅕㅑㅐㅔ
ㅁㄴㅇㄹㅎㅗㅓㅏㅣ
ㅋㅌㅊㅍㅠㅜㅡ
ve üst karakter tuşuyla:
ㅃㅉㄸㄲㅆㅛㅕㅑㅒㅖ
diğerleri değil sadece üst sıra değişir.
Korece Karakterler Hakkında
burada biterse, kolay olabilir, ama hayır. Yazdığınızda
dkssud, tprP!
çıktı şu şekilde gösterilmez:
ㅇㅏㄴㄴㅕㅇ, ㅅㅔㄱㅖ!
ama bu şekilde:
안녕, 세계!(means Hello, World!)
ve işleri daha da zorlaştırıyor.
Korece Karakterler üç bölüme ayrılır: 'Choseong (ünsüz)', 'Jungseong (Ünlü)' ve 'Jongseong (hecenin sonunda ünsüz: boş olabilir)' ve ayırmanız gerekir.
Neyse ki, bunu yapmanın bir yolu var.
Nasıl ayrılabilir
19 Choseong, 21 Jungseong ve 28 Jongseong (boşluklu) var ve 0xAC00 Korece karakterlerin ilk karakteri olan '가'. Bunu kullanarak Korece karakterleri üç parçaya ayırabiliriz. İşte her birinin sırası ve iki setli klavyedeki konumu.
choseong sipariş:
ㄱㄲㄴㄷㄸㄹㅁㅂㅃㅅㅆㅇㅈㅉㅊㅋㅌㅍㅎ
r R s e E f a q Q t T d w W c z x v g
jungseong sipariş:
ㅏㅐㅑㅒㅓㅔㅕㅖㅗㅘㅙㅚㅛㅜㅝㅞㅟㅠㅡㅢㅣ
k o i O j p u P h hk ho hl y n nj np nl b m ml l
jongseong sipariş:
()ㄱㄲㄳㄴㄵㄶㄷㄹㄺㄻㄼㄽㄾㄿㅀㅁㅂㅄㅅㅆㅇㅈㅊㅋㅌㅍㅎ
()r R rt s sw sg e f fr fa fq ft fx fv fg a q qt t T d w c z x v g
Diyelim diyelim (unicode value of some character) - 0xAC00
olduğunu Korean_code
ve CHOSEONG, Jungseong endeksi, Jongseong olduğunu Cho
, Jung
, Jong
.
Sonra Korean_code
ise(Cho * 21 * 28) + Jung * 28 + Jong
Rahatınız için Korece karakteri bu Korece web sitesinden ayıran javascript kodu .
var rCho = [ "ㄱ", "ㄲ", "ㄴ", "ㄷ", "ㄸ", "ㄹ", "ㅁ", "ㅂ", "ㅃ", "ㅅ", "ㅆ", "ㅇ", "ㅈ", "ㅉ", "ㅊ", "ㅋ", "ㅌ", "ㅍ", "ㅎ" ];
var rJung =[ "ㅏ", "ㅐ", "ㅑ", "ㅒ", "ㅓ", "ㅔ", "ㅕ", "ㅖ", "ㅗ", "ㅘ", "ㅙ", "ㅚ", "ㅛ", "ㅜ", "ㅝ", "ㅞ", "ㅟ", "ㅠ", "ㅡ", "ㅢ", "ㅣ" ];
var rJong = [ "", "ㄱ", "ㄲ", "ㄳ", "ㄴ", "ㄵ", "ㄶ", "ㄷ", "ㄹ", "ㄺ", "ㄻ", "ㄼ", "ㄽ", "ㄾ","ㄿ", "ㅀ", "ㅁ", "ㅂ", "ㅄ", "ㅅ", "ㅆ", "ㅇ", "ㅈ", "ㅊ", "ㅋ", "ㅌ", "ㅍ", "ㅎ" ];
var cho, jung, jong;
var sTest = "탱";
var nTmp = sTest.charCodeAt(0) - 0xAC00;
jong = nTmp % 28; // Jeongseong
jung = ((nTmp - jong) / 28 ) % 21 // Jungseong
cho = ( ( (nTmp - jong) / 28 ) - jung ) / 21 // Choseong
alert("Choseong:" + rCho[cho] + "\n" + "Jungseong:" + rJung[jung] + "\n" + "Jongseong:" + rJong[jong]);
Monte edildiğinde
- Not
ㅘ
,ㅙ
,ㅚ
,ㅝ
,ㅞ
,ㅟ
,ㅢ
diğer jungseongs bir kombinasyonudur.
ㅗ+ㅏ=ㅘ, ㅗ+ㅐ=ㅙ, ㅗ+ㅣ=ㅚ, ㅜ+ㅓ=ㅝ, ㅜ+ㅔ=ㅞ, ㅜ+ㅣ=ㅟ, ㅡ+ㅣ=ㅢ
- Choseong gerekli. Bu
frk
, verilirse,ㄹㄱㅏ
iki şekilde değişebileceği anlamına gelir :ㄺㅏ
veㄹ가
. Sonra, choseong olan bir şekilde dönüştürmek zorunda. Eğerjjjrjr
verilen hangiㅓㅓㅓㄱㅓㄱ
liderㅓ
ler CHOSEONG edilebilir bir şey yok, ama dördüncüㅓ
vardırㄱ
o içine değişti böylece, o CHOSEONG edilebilirㅓㅓㅓ걱
.
Başka bir örnek: 세계
( tprP
). 섹ㅖ
( (ㅅㅔㄱ)(ㅖ)
) Olarak değiştirilebilir , ancak choseong gerekli olduğundan, 세계
( (ㅅㅔ)(ㄱㅖ)
) olarak değiştirilir
Örnekler
girdi 1
안녕하세요
çıktı 1
dkssudgktpdy
girdi 2
input 2
çıktı 2
ㅑㅞㅕㅅ 2
girdi 3
힘ㄴㄴ
çıktı 3
glass
girdi 4
아희(Aheui) is esolang which you can program with pure Korean characters.
çıktı 4
dkgml(모뎌ㅑ) ㅑㄴ ㄷ내ㅣ뭏 조ㅑ초 ㅛㅐㅕ ㅊ무 ㅔ갷ㄱ므 쟈소 ㅔㅕㄱㄷ ㅏㅐㄱㄷ무 촘ㄱㅁㅊㅅㄷㄱㄴ.
girdi 5
dkssud, tprP!
çıktı 5
안녕, 세계!
girdi 6
ㅗ디ㅣㅐ, 째깅! Hello, World!
çıktı 6
hello, World! ㅗ디ㅣㅐ, 째깅!
En kısa kod kazanır. (bayt cinsinden)
Size kolaylık sağlamak için yeni kural
A
İki setli klavyede benzerleri olmayan karakterleri kapatabilirsiniz . böylece Aheui
için Aㅗ뎌ㅑ
sorun yok. Değiştirmek Ama eğer Aheui
üzere 모뎌ㅑ
, alabilirsiniz -5 noktası, sen 5 bayt kazanabilmesi için.
Sen (gibi iki jungseongs ayırabilirsiniz ㅘ
için ㅗ+ㅏ
). gibi rhk
hiç 고ㅏ
veya how
hiç ㅗㅐㅈ
. Eğer (gibi birleştirin Ama eğer rhk
hiç 과
ya how
kadar ㅙㅈ
), ek -5 puan kazanabilirsiniz.
fjfau
olarak yorumlanabilir . Bunu nasıl çözeriz? 럶ㅕ
럴며
tprP
testi durumda 5: Bu dönüşümler ㅅㅔㄱㅖ
, ㅅ
bir CHOSEONG olan, ㅔ
bir Jungseong ve ㄱ
bir jongseong olup. Yani bu dönüşmek should't 섷ㅖ
(gibi gruplandırılmış (ㅅㅔㄱ)(ㅖ)
) yerine 세계
(gibi gruplandırılmış (ㅅㅔ)(ㄱㅖ)
)? Daha önceki bir yorumda, yazarak yorumlandığını belirtiyorsunuz, bu yüzden ㅅㅔㄱ
dönüşmeyi bekliyordum 섷
. Veya Korece yazım soldan sağa değil sağdan sola mı?
l
sonraml
Koreli sembolü içinㅣ
.