Fix: inputLetter jongsung single bug

This commit is contained in:
2019-05-17 09:10:00 +09:00
parent 39c17546a9
commit 16af857c3b
2 changed files with 41 additions and 22 deletions
+6
View File
@@ -134,6 +134,9 @@ StringUtil.isMultiAlphabetJungsung = function(alphabet) {
}; };
StringUtil.getMultiAlphabetFromJungsung = function(alphabet) { StringUtil.getMultiAlphabetFromJungsung = function(alphabet) {
if(!StringUtil.isMultiAlphabetJungsung(alphabet))
return alphabet;
var multiJungsungList = new Object(); var multiJungsungList = new Object();
multiJungsungList['ㅘ'] = ['ㅗ', 'ㅏ']; multiJungsungList['ㅘ'] = ['ㅗ', 'ㅏ'];
multiJungsungList['ㅙ'] = ['ㅗ', 'ㅐ']; multiJungsungList['ㅙ'] = ['ㅗ', 'ㅐ'];
@@ -157,6 +160,9 @@ StringUtil.isMultiAlphabetJongsung = function(alphabet) {
}; };
StringUtil.getMultiAlphabetFromJongsung = function(alphabet) { StringUtil.getMultiAlphabetFromJongsung = function(alphabet) {
if(!StringUtil.isMultiAlphabetJongsung(alphabet))
return alphabet;
var multiJongsungList = new Object(); var multiJongsungList = new Object();
multiJongsungList['ㄲ'] = ['ㄱ', 'ㄱ']; multiJongsungList['ㄲ'] = ['ㄱ', 'ㄱ'];
multiJongsungList['ㄳ'] = ['ㄱ', 'ㅅ']; multiJongsungList['ㄳ'] = ['ㄱ', 'ㅅ'];
+35 -22
View File
@@ -234,7 +234,7 @@ var TypingTest = {
var typingTextMan = new TypingTextManager(); var typingTextMan = new TypingTextManager();
var typingPracticeContents = this.getTypingTestContents(); var typingPracticeContents = this.getTypingTestContents();
var typingPracticeContents = [ "십년이면 강산도 변한다." , "십년이면 강산도 변한다.", "십년이면 강산도 변한다." ]; // for debug // var typingPracticeContents = [ "십년이면 강산도 변한다." , "십년이면 강산도 변한다.", "십년이면 강산도 변한다." ]; // for debug
// var typingPracticeContents = [ "꿰뚫다" , "워머신", "홧김에" ]; // for debug // var typingPracticeContents = [ "꿰뚫다" , "워머신", "홧김에" ]; // for debug
// console.log(typingPracticeContents); // console.log(typingPracticeContents);
typingTextMan.makeTestContents(typingPracticeContents); typingTextMan.makeTestContents(typingPracticeContents);
@@ -386,16 +386,16 @@ var TypingTest = {
if(event.keyCode == Phaser.Keyboard.ENTER || if(event.keyCode == Phaser.Keyboard.ENTER ||
event.keyCode == Phaser.Keyboard.SPACEBAR) { event.keyCode == Phaser.Keyboard.SPACEBAR) {
console.log("### enter ###"); // console.log("### enter ###");
console.log("this.typingIndex : " + this.typingIndex); // console.log("this.typingIndex : " + this.typingIndex);
console.log("inputContent : " + inputContent); // console.log("inputContent : " + inputContent);
console.log("typingContent : " + typingContent); // console.log("typingContent : " + typingContent);
if(inputContent === typingContent) { if(inputContent === typingContent) {
this.calculateTypingRecord(typingContent); this.calculateTypingRecord(typingContent);
console.log("this.typingIndex : " + this.typingIndex); // console.log("this.typingIndex : " + this.typingIndex);
console.log("this.typingContentLength : " + this.typingContentLength); // console.log("this.typingContentLength : " + this.typingContentLength);
if(this.typingIndex == this.typingContentLength - 1) { if(this.typingIndex == this.typingContentLength - 1) {
this.isGameOver = true; this.isGameOver = true;
this.gameOver(); this.gameOver();
@@ -495,10 +495,10 @@ var TypingTest = {
var typingLetter = ""; var typingLetter = "";
var typingNextLetter = ""; var typingNextLetter = "";
console.log("-----"); // console.log("-----");
console.log("inputConent : '" + inputContent + "'"); // console.log("inputConent : '" + inputContent + "'");
console.log("inputIndex : " + inputIndex); // console.log("inputIndex : " + inputIndex);
console.log("misspelledIndex : " + misspelledIndex); // console.log("misspelledIndex : " + misspelledIndex);
if(inputIndex < 0) if(inputIndex < 0)
inputLetter = ""; inputLetter = "";
@@ -510,9 +510,9 @@ var TypingTest = {
if(misspelledIndex <= typingContent.length) if(misspelledIndex <= typingContent.length)
typingNextLetter = typingContent[misspelledIndex + 1]; typingNextLetter = typingContent[misspelledIndex + 1];
console.log("inputLetter : '" + inputLetter + "'"); // console.log("inputLetter : '" + inputLetter + "'");
console.log("typingLetter : '" + typingLetter + "'"); // console.log("typingLetter : '" + typingLetter + "'");
console.log("typingNextLetter : '" + typingNextLetter + "'"); // console.log("typingNextLetter : '" + typingNextLetter + "'");
// var typingAlphabet = ""; // var typingAlphabet = "";
var inputLetterAlphabets = StringUtil.toKoreanAlphabets(inputLetter); var inputLetterAlphabets = StringUtil.toKoreanAlphabets(inputLetter);
@@ -626,6 +626,7 @@ var TypingTest = {
// 입력할 글자에 종성이 있을 경우 // 입력할 글자에 종성이 있을 경우
else if(StringUtil.hasJongsung(typingLetter)) { else if(StringUtil.hasJongsung(typingLetter)) {
console.log("has jongsung");
var typingLetterJongsung = StringUtil.jongsung(typingLetter); var typingLetterJongsung = StringUtil.jongsung(typingLetter);
// 입력한 글자의 종성과 입력할 글자의 종성이 같은 경우 // 입력한 글자의 종성과 입력할 글자의 종성이 같은 경우
@@ -633,10 +634,11 @@ var TypingTest = {
highlightKey = StringUtil.chosung(typingNextLetter); highlightKey = StringUtil.chosung(typingNextLetter);
// 입력한 글자의 종성이 입력할 글자와 다를 경우 // 입력한 글자의 종성이 입력할 글자와 다를 경우
else { else {
var inputJongsungAlphabets = StringUtil.getMultiAlphabetFromJongsung(StringUtil.jongsung(inputLetter));
var typingJongsungAlphabets = StringUtil.getMultiAlphabetFromJongsung(StringUtil.jongsung(typingLetter));
// 입력할 글자의 종성이 합성자음일 경우 // 입력할 글자의 종성이 합성자음일 경우
if(StringUtil.isMultiAlphabetJongsung(typingLetterJongsung)) { if(StringUtil.isMultiAlphabetJongsung(typingLetterJongsung)) {
var inputJongsungAlphabets = StringUtil.getMultiAlphabetFromJongsung(StringUtil.jongsung(inputLetter));
var typingJongsungAlphabets = StringUtil.getMultiAlphabetFromJongsung(StringUtil.jongsung(typingLetter));
// 입력할 글자의 종성과 입력한 글자의 종성이 같은 경우 // 입력할 글자의 종성과 입력한 글자의 종성이 같은 경우
if(typingLetterJongsung == StringUtil.jongsung(inputLetter)) if(typingLetterJongsung == StringUtil.jongsung(inputLetter))
highlightKey = StringUtil.chosung(typingNextLetter); highlightKey = StringUtil.chosung(typingNextLetter);
@@ -647,12 +649,23 @@ var TypingTest = {
} }
// 입력할 글자의 종성이 단자음일 경우 : 알바 -> 앏 // 입력할 글자의 종성이 단자음일 경우 : 알바 -> 앏
else { else {
if(StringUtil.jongsung(typingLetter) == inputJongsungAlphabets[0] && StringUtil.chosung(typingNextLetter) == inputJongsungAlphabets[1]) var inputLetterJongsung = StringUtil.jongsung(inputLetter);
highlightKey = StringUtil.jungsung(typingNextLetter); // console.log("*** single jongsung");
// else if(StringUtil.jongsung(inputLetter) == inputJongsungAlphabets[0]) // console.log("inputLetter : " + inputLetter);
// highlightKey = inputJongsungAlphabets[1]; // console.log("StringUtil.jongsung(inputLetter) : " + StringUtil.jongsung(inputLetter));
else // console.log("inputLetterJongsung : " + inputLetterJongsung);
highlightKey = "Backspace";
if(StringUtil.isMultiAlphabetJongsung(inputLetterJongsung)) {
var inputJongsungAlphabets = StringUtil.getMultiAlphabetFromJongsung(StringUtil.jongsung(inputLetter));
// console.log("inputJongsungAlphabets : " + inputJongsungAlphabets);
if(StringUtil.jongsung(typingLetter) == inputJongsungAlphabets[0] && StringUtil.chosung(typingNextLetter) == inputJongsungAlphabets[1])
highlightKey = StringUtil.jungsung(typingNextLetter);
else
highlightKey = "Backspace";
}
else {
highlightKey = StringUtil.chosung(typingNextLetter);
}
} }
} }
} }