บทนำ
มันค่อนข้างเหมือนกับรูปแบบแป้นพิมพ์ DVORAKแต่ยากกว่ามาก
มาพูดถึงคีย์บอร์ดเกาหลีกันก่อนดีกว่า อย่างที่คุณเห็นในWikipediaมีคีย์ Kor / Eng เพื่อเปลี่ยนระหว่างชุดคีย์เกาหลีและอังกฤษ
บางครั้งคนเกาหลีพิมพ์ผิด: พวกเขาพยายามเขียนเป็นภาษาเกาหลีบนแป้นพิมพ์แบบ qwerty หรือภาษาอังกฤษบนแป้นพิมพ์สองชุด
ดังนั้นนี่คือปัญหา: หากมีตัวอักษรภาษาเกาหลีพิมพ์อยู่ในแป้นพิมพ์สองชุดให้แปลงเป็นอักขระตัวอักษรที่พิมพ์ด้วยแป้นพิมพ์แบบ qwerty หากตัวอักษรที่กำหนดให้พิมพ์เป็น qwerty ให้เปลี่ยนเป็นคีย์บอร์ดสองชุด
คีย์บอร์ดสองชุด
นี่คือรูปแบบแป้นพิมพ์สองชุด:
ㅂㅈㄷㄱㅅㅛㅕㅑㅐㅔ
ㅁㄴㅇㄹㅎㅗㅓㅏㅣ
ㅋㅌㅊㅍㅠㅜㅡ
และด้วยปุ่ม Shift:
ㅃㅉㄸㄲㅆㅛㅕㅑㅒㅖ
การเปลี่ยนแปลงแถวบนสุดในขณะที่คนอื่นไม่ทำ
เกี่ยวกับตัวละครเกาหลี
ถ้ามันจบลงที่นี่มันอาจจะง่าย แต่ไม่ใช่ เมื่อคุณพิมพ์
dkssud, tprP!
เอาท์พุทไม่ได้แสดงในลักษณะนี้:
ㅇㅏㄴㄴㅕㅇ, ㅅㅔㄱㅖ!
แต่ด้วยวิธีนี้:
안녕, 세계!(means Hello, World!)
และทำให้สิ่งต่าง ๆ ยากขึ้นมาก
ตัวอักษรเกาหลีแยกออกเป็นสามส่วน: 'Choseong (พยัญชนะ)', 'Jungseong (Vowel)' และ 'Jongseong (พยัญชนะท้ายพยางค์: ว่างเปล่า)' และคุณต้องแยกมันออก
โชคดีที่มีวิธีการทำเช่นนั้น
วิธีการแยก
มี 19 Choseong, 21 Jungseong, และ 28 Jongseong (ว่างเปล่า), และ 0xAC00 คือ '가', อักขระตัวแรกของตัวละครเกาหลี เมื่อใช้สิ่งนี้เราสามารถแยกตัวอักษรเกาหลีออกเป็นสามส่วน นี่คือลำดับของแต่ละตำแหน่งในแป้นพิมพ์สองชุด
เลือกเพื่อ:
ㄱㄲㄴㄷㄸㄹㅁㅂㅃㅅㅆㅇㅈㅉㅊㅋㅌㅍㅎ
r R s e E f a q Q t T d w W c z x v g
สั่งจองซอง:
ㅏㅐㅑㅒㅓㅔㅕㅖㅗㅘㅙㅚㅛㅜㅝㅞㅟㅠㅡㅢㅣ
k o i O j p u P h hk ho hl y n nj np nl b m ml l
คำสั่ง jongseong:
()ㄱㄲㄳㄴㄵㄶㄷㄹㄺㄻㄼㄽㄾㄿㅀㅁㅂㅄㅅㅆㅇㅈㅊㅋㅌㅍㅎ
()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
สมมติว่า(unicode value of some character) - 0xAC00เป็นKorean_codeและดัชนีของ Choseong, Jungseong, Jongseong คือCho, ,JungJong
จากนั้นKorean_codeเป็น(Cho * 21 * 28) + Jung * 28 + Jong
นี่คือรหัสจาวาสคริปต์ที่แยกตัวอักษรเกาหลีออกจากเว็บไซต์เกาหลีนี้เพื่อความสะดวกของคุณ
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]);
เมื่อประกอบแล้ว
- โปรดทราบว่า
ㅘ,ㅙ,ㅚ,ㅝ,ㅞ,ㅟ,ㅢคือการรวมกันของ jungseongs อื่น ๆ
ㅗ+ㅏ=ㅘ, ㅗ+ㅐ=ㅙ, ㅗ+ㅣ=ㅚ, ㅜ+ㅓ=ㅝ, ㅜ+ㅔ=ㅞ, ㅜ+ㅣ=ㅟ, ㅡ+ㅣ=ㅢ
- Choseong เป็นสิ่งที่จำเป็น ซึ่งหมายความว่าถ้า
frkจะได้รับซึ่งเป็นㄹㄱㅏก็สามารถเปลี่ยนแปลงได้ในวิธีที่สอง: และㄺㅏㄹ가จากนั้นคุณต้องแปลงมันเป็นวิธีที่เลือกไว้ หากjjjrjrได้รับซึ่งเป็นㅓㅓㅓㄱㅓㄱนำㅓs ไม่ได้มีอะไรที่สามารถ CHOSEONG แต่ที่สี่ㅓมีㄱที่สามารถ CHOSEONGㅓㅓㅓ걱จึงเปลี่ยนเป็น
ตัวอย่างอื่น: 세계( tprP) สามารถเปลี่ยนเป็น섹ㅖ( (ㅅㅔㄱ)(ㅖ)) ได้ แต่เนื่องจากจำเป็นต้องเลือกดังนั้นจึงเปลี่ยนเป็น세계( (ㅅㅔ)(ㄱㅖ))
ตัวอย่าง
อินพุต 1
안녕하세요
เอาท์พุท 1
dkssudgktpdy
อินพุต 2
input 2
เอาท์พุท 2
ㅑㅞㅕㅅ 2
อินพุต 3
힘ㄴㄴ
เอาท์พุท 3
glass
อินพุต 4
아희(Aheui) is esolang which you can program with pure Korean characters.
เอาท์พุท 4
dkgml(모뎌ㅑ) ㅑㄴ ㄷ내ㅣ뭏 조ㅑ초 ㅛㅐㅕ ㅊ무 ㅔ갷ㄱ므 쟈소 ㅔㅕㄱㄷ ㅏㅐㄱㄷ무 촘ㄱㅁㅊㅅㄷㄱㄴ.
อินพุต 5
dkssud, tprP!
เอาท์พุท 5
안녕, 세계!
อินพุต 6
ㅗ디ㅣㅐ, 째깅! Hello, World!
เอาท์พุท 6
hello, World! ㅗ디ㅣㅐ, 째깅!
รหัสที่สั้นที่สุดชนะ (เป็นไบต์)
กฎใหม่เพื่อความสะดวกของคุณ
คุณสามารถปิดอักขระที่ไม่มีตัวอักษรAคู่ในคีย์บอร์ดสองชุด เพื่อAheuiที่Aㅗ뎌ㅑจะตกลง แต่ถ้าคุณเปลี่ยนAheuiเป็น모뎌ㅑคุณจะได้รับ -5 คะแนนดังนั้นคุณสามารถรับ 5 ไบต์
คุณสามารถแยกสอง jungseongs (เหมือนㅘจะㅗ+ㅏ) เหมือนrhkไป고ㅏหรือเพื่อhow ㅗㅐㅈแต่ถ้าคุณรวม (ชอบrhkไป과หรือhowไปㅙㅈ) คุณสามารถสร้างรายได้เพิ่มเติม -5 จุด
fjfauอาจจะตีความว่าเป็นหรือ럶ㅕ 럴며เราจะแก้ไขปัญหานี้อย่างไร
tprPการทดสอบในกรณีที่ 5: สิ่งนี้เปลี่ยนเป็นㅅㅔㄱㅖที่เลือกㅅคืออะไรㅔคือจองซองและㄱจองซอง ดังนั้นสิ่งนี้ไม่ควรเปลี่ยนเป็น섷ㅖ(จัดกลุ่มเหมือน(ㅅㅔㄱ)(ㅖ)) แทนที่จะเป็น세계(จัดกลุ่มชอบ(ㅅㅔ)(ㄱㅖ)) ใช่ไหม ในความคิดเห็นก่อนหน้านี้คุณรัฐมันเป็นตีความโดยพิมพ์ดังนั้นผมจะคาดหวังที่จะกลายเป็นㅅㅔㄱ 섷หรือพิมพ์ภาษาเกาหลีจากขวาไปซ้ายแทนซ้ายไปขวา
lหลังจากสัญลักษณ์เกาหลีmlㅣ