diff --git a/src/game/lib/util/record_util.js b/src/game/lib/util/record_util.js
index 7b68b7a..dd1dd9f 100644
--- a/src/game/lib/util/record_util.js
+++ b/src/game/lib/util/record_util.js
@@ -16,9 +16,11 @@ RecordUtil.getRecordValueText = function(record, appID) {
}
RecordUtil.getRecordUnit = function(appID) {
- if(appID == 104)
+ if(appID == 104) // dodge
return " 초";
- else if(appID < 100)
+ else if(appID == 52 || appID == 53) // word flyingsaucer
+ return " 점";
+ else if(appID < 100) // typing
return " 타";
else
return " 점";
diff --git a/src/game/typing/lib/extract_word_manager.js b/src/game/typing/lib/extract_word_manager.js
index 75585b0..6cdce49 100644
--- a/src/game/typing/lib/extract_word_manager.js
+++ b/src/game/typing/lib/extract_word_manager.js
@@ -3,27 +3,74 @@ function ExtractWordManager() {
}
ExtractWordManager.prototype.initVariables = function() {
- this.koreanWordList = [];
- this.koreanWordList[0] = koreanBasicWordList;
- this.koreanWordList[1] = koreanLeftUpperWordList;
- this.koreanWordList[2] = koreanRightUpperWordList;
- this.koreanWordList[3] = koreanSecondFingerWordList;
- this.koreanWordList[4] = koreanLeftLowerWordList;
- this.koreanWordList[5] = koreanRightLowerWordList;
- this.koreanWordList[6] = koreanLeftUpperDoubleWordList;
- this.koreanWordList[7] = koreanRightUpperDoubleWordList;
- // testContent = koreanWordList;
- // testContent = koreanSentenceList;
+ this.easyWordList = [];
+ this.hardWordList = [];
- this.englishWordList = [];
- this.englishWordList[0] = englishBasicWordList;
- this.englishWordList[1] = englishLeftUpperWordList;
- this.englishWordList[2] = englishRightUpperWordList;
- this.englishWordList[3] = englishSecondFingerWordList;
- this.englishWordList[4] = englishLeftLowerWordList;
- this.englishWordList[5] = englishRightLowerWordList;
- // testContent = englishWordList;
- // testContent = englishSentenceList;
+ if(isKoreanTypingApp()) {
+ this.easyWordList[0] = this.pickOutDifficulty(koreanBasicWordList, ExtractWordManager.DIFFICULTY_EASY);
+ this.easyWordList[1] = this.pickOutDifficulty(koreanLeftUpperWordList, ExtractWordManager.DIFFICULTY_EASY);
+ this.easyWordList[2] = this.pickOutDifficulty(koreanRightUpperWordList, ExtractWordManager.DIFFICULTY_EASY);
+ this.easyWordList[3] = this.pickOutDifficulty(koreanSecondFingerWordList, ExtractWordManager.DIFFICULTY_EASY);
+ this.easyWordList[4] = this.pickOutDifficulty(koreanLeftLowerWordList, ExtractWordManager.DIFFICULTY_EASY);
+ this.easyWordList[5] = this.pickOutDifficulty(koreanRightLowerWordList, ExtractWordManager.DIFFICULTY_EASY);
+ this.easyWordList[6] = this.pickOutDifficulty(koreanLeftUpperDoubleWordList, ExtractWordManager.DIFFICULTY_EASY);
+ this.easyWordList[7] = this.pickOutDifficulty(koreanRightUpperDoubleWordList, ExtractWordManager.DIFFICULTY_EASY);
+ // for(var i = 0; i < this.easyWordList.length; i++) {
+ // console.log("this.easyWordList[" + i + "] length : " + this.easyWordList[i].length);
+ // console.log("this.easyWordList[" + i + "] : " + this.easyWordList[i]);
+ // }
+
+ this.hardWordList[0] = this.pickOutDifficulty(koreanBasicWordList, ExtractWordManager.DIFFICULTY_HARD);
+ this.hardWordList[1] = this.pickOutDifficulty(koreanLeftUpperWordList, ExtractWordManager.DIFFICULTY_HARD);
+ this.hardWordList[2] = this.pickOutDifficulty(koreanRightUpperWordList, ExtractWordManager.DIFFICULTY_HARD);
+ this.hardWordList[3] = this.pickOutDifficulty(koreanSecondFingerWordList, ExtractWordManager.DIFFICULTY_HARD);
+ this.hardWordList[4] = this.pickOutDifficulty(koreanLeftLowerWordList, ExtractWordManager.DIFFICULTY_HARD);
+ this.hardWordList[5] = this.pickOutDifficulty(koreanRightLowerWordList, ExtractWordManager.DIFFICULTY_HARD);
+ this.hardWordList[6] = this.pickOutDifficulty(koreanLeftUpperDoubleWordList, ExtractWordManager.DIFFICULTY_HARD);
+ this.hardWordList[7] = this.pickOutDifficulty(koreanRightUpperDoubleWordList, ExtractWordManager.DIFFICULTY_HARD);
+ // for(var i = 0; i < this.hardWordList.length; i++) {
+ // console.log("this.hardWordList[" + i + "] length : " + this.hardWordList[i].length);
+ // console.log("this.hardWordList[" + i + "] : " + this.hardWordList[i]);
+ // }
+ } else {
+ this.easyWordList[0] = this.pickOutDifficulty(englishBasicWordList, ExtractWordManager.DIFFICULTY_EASY);
+ this.easyWordList[1] = this.pickOutDifficulty(englishLeftUpperWordList, ExtractWordManager.DIFFICULTY_EASY);
+ this.easyWordList[2] = this.pickOutDifficulty(englishRightUpperWordList, ExtractWordManager.DIFFICULTY_EASY);
+ this.easyWordList[3] = this.pickOutDifficulty(englishSecondFingerWordList, ExtractWordManager.DIFFICULTY_EASY);
+ this.easyWordList[4] = this.pickOutDifficulty(englishLeftLowerWordList, ExtractWordManager.DIFFICULTY_EASY);
+ this.easyWordList[5] = this.pickOutDifficulty(englishRightLowerWordList, ExtractWordManager.DIFFICULTY_EASY);
+ // for(var i = 0; i < this.easyWordList.length; i++) {
+ // console.log("this.easyWordList[" + i + "] length : " + this.easyWordList[i].length);
+ // console.log("this.easyWordList[" + i + "] : " + this.easyWordList[i]);
+ // }
+
+ this.hardWordList[0] = this.pickOutDifficulty(englishBasicWordList, ExtractWordManager.DIFFICULTY_HARD);
+ this.hardWordList[1] = this.pickOutDifficulty(englishLeftUpperWordList, ExtractWordManager.DIFFICULTY_HARD);
+ this.hardWordList[2] = this.pickOutDifficulty(englishRightUpperWordList, ExtractWordManager.DIFFICULTY_HARD);
+ this.hardWordList[3] = this.pickOutDifficulty(englishSecondFingerWordList, ExtractWordManager.DIFFICULTY_HARD);
+ this.hardWordList[4] = this.pickOutDifficulty(englishLeftLowerWordList, ExtractWordManager.DIFFICULTY_HARD);
+ this.hardWordList[5] = this.pickOutDifficulty(englishRightLowerWordList, ExtractWordManager.DIFFICULTY_HARD);
+ // for(var i = 0; i < this.hardWordList.length; i++) {
+ // console.log("this.hardWordList[" + i + "] length : " + this.hardWordList[i].length);
+ // console.log("this.hardWordList[" + i + "] : " + this.hardWordList[i]);
+ // }
+ }
+}
+
+ExtractWordManager.prototype.pickOutDifficulty = function(wordList, difficultyForLevel) {
+ var pickOutWordList = [];
+
+ var count = wordList.length;
+ var index = 0;
+ for(var i = 0; i < count; i++) {
+ var word = wordList[i];
+ if(this.isValidWordForLevel(word, difficultyForLevel)) {
+ pickOutWordList[index] = word;
+ index++;
+ }
+ }
+
+ return pickOutWordList;
}
@@ -42,6 +89,8 @@ ExtractWordManager.prototype.isValidWordForLevel = function(word, difficultyForL
maxWordLength = ExtractWordManager.DIFFICULTY_EASY_KOREAN_WORD_LENGTH;
} else {
maxWordLength = ExtractWordManager.DIFFICULTY_EASY_ENGLISH_WORD_LENGTH;
+ // console.log("wordLength : " + wordLength);
+ // console.log("maxWordLength : " + maxWordLength);
}
if(wordLength <= maxWordLength)
@@ -50,12 +99,14 @@ ExtractWordManager.prototype.isValidWordForLevel = function(word, difficultyForL
return false;
} else {
var minWordLength = 0;
+ // console.log("wordLength : " + wordLength);
if(isKoreanTypingApp()) {
minWordLength = ExtractWordManager.DIFFICULTY_EASY_KOREAN_WORD_LENGTH;
} else {
minWordLength = ExtractWordManager.DIFFICULTY_EASY_ENGLISH_WORD_LENGTH;
}
+ // console.log("minWordLength : " + minWordLength);
if(wordLength > minWordLength)
return true;
@@ -68,172 +119,39 @@ ExtractWordManager.prototype.isValidWordForLevel = function(word, difficultyForL
ExtractWordManager.prototype.getWord = function(wordLevel, difficultyForLevel) {
// console.log("wordLevel : " + wordLevel);
// console.log("difficultyForLevel : " + difficultyForLevel);
- var word = "";
- var wordLength = 0;
- var count = 0;
- while(word == "" || !this.isValidWordForLevel(word, difficultyForLevel)) {
- if(isKoreanTypingApp())
- word = this.getRandomWord(this.koreanWordList[wordLevel]);
- else
- word = this.getRandomWord(this.englishWordList[wordLevel]);
- // console.log(word);
- count++;
- if(count > 100) {
- console.log("warning : infinity loop!!!");
- return "???";
- }
- }
+ var word = "";
+ if(difficultyForLevel == ExtractWordManager.DIFFICULTY_EASY)
+ word = this.spliceRandomWord(this.easyWordList[wordLevel]);
+ else
+ word = this.spliceRandomWord(this.hardWordList[wordLevel]);
+
return word;
}
-ExtractWordManager.prototype.getRandomWord = function(wordList) {
+ExtractWordManager.prototype.spliceRandomWord = function(wordList) {
+ // console.log("slice before : " + wordList);
var randomIndex = Math.floor(Math.random() * wordList.length);
- return wordList[randomIndex];
+ word = wordList.splice(randomIndex, 1);
+ // console.log("slice after : " + wordList);
+ return word;
}
-ExtractWordManager.prototype.removeWord = function(wordLevel, word) {
+ExtractWordManager.prototype.giveBackWord = function(word, wordLevel, difficultyForLevel) {
// console.log("remove : " + wordLevel + ", " + word);
+
+ // console.log("push before : " + this.easyWordList[wordLevel]);
+ if(difficultyForLevel == ExtractWordManager.DIFFICULTY_EASY)
+ word = this.easyWordList[wordLevel].push(word);
+ else
+ word = this.hardWordList[wordLevel].push(word);
+ // console.log("push after : " + this.easyWordList[wordLevel]);
}
-
-
-
-
-ExtractWordManager.prototype.getContents = function() {
- return this.contents;
-}
-
-ExtractWordManager.prototype.add = function(arr) {
- this.contents = this.contents.concat(arr);
-}
-
-ExtractWordManager.prototype.slice = function(start, end) {
- this.contents = this.contents.slice(start, end);
-}
-
-ExtractWordManager.prototype.getShuffledArray = function(arr) {
- return Phaser.ArrayUtils.shuffle(arr);
-}
-
-ExtractWordManager.prototype.fillLeftRightBasicKey = function() {
- var length = this.contents.length;
- // console.log(length);
-
- for(var i = length - 1; i > -1; i--) {
- var char = this.contents[i];
- // console.log(char);
- if(this.isKoreanConsonant(char)) {
- this.contents.splice(i + 1, 0, "ㅓ");
- } else if(this.isKoreanVowel(char)) {
- this.contents.splice(i, 0, "ㄹ");
- } else if(this.isEnglishLeftHand(char)) {
- this.contents.splice(i + 1, 0, "j");
- } else if(this.isEnglishRightHand(char)) {
- this.contents.splice(i, 0, "f");
- }
- }
-}
-
-ExtractWordManager.prototype.isKoreanConsonant = function(char) {
- if(char.length != 1)
- return false;
-
- if(ExtractWordManager.KOREAN_LETTER_CHO.indexOf(char) > -1)
- return true;
- else if(ExtractWordManager.KOREAN_LETTER_JONG.indexOf(char) > -1)
- return;
-
- return false;
-}
-
-ExtractWordManager.prototype.isKoreanVowel = function(char) {
- if(char.length != 1)
- return false;
-
- if(ExtractWordManager.KOREAN_LETTER_JUNG.indexOf(char) > -1)
- return true;
-
- return false;
-}
-
-ExtractWordManager.prototype.isEnglishLeftHand = function(char) {
- if(char.length != 1)
- return false;
-
- if(ExtractWordManager.ENGLISH_LETTER_LEFT.indexOf(char) > -1)
- return true;
-
- return false;
-}
-
-ExtractWordManager.prototype.isEnglishRightHand = function(char) {
- if(char.length != 1)
- return false;
-
- if(ExtractWordManager.ENGLISH_LETTER_RIGHT.indexOf(char) > -1)
- return true;
-
- return false;
-}
-
-
-ExtractWordManager.prototype.makePracticeContents = function(arr, repeatCount) {
- this.init();
- this.add(arr);
- for(var i = 0; i < repeatCount; i++) {
- this.add(this.getShuffledArray(arr));
- }
- this.fillLeftRightBasicKey();
-}
-
-ExtractWordManager.prototype.makeTestContents = function(arr) {
- this.init();
- this.add(this.getShuffledArray(arr));
-}
-
-
-
-ExtractWordManager.shuffledArray = function(arr) {
- return Phaser.ArrayUtils.shuffle(arr);
-}
-
-
-ExtractWordManager.KOREAN_LETTER_CHO = [
- "ㄱ", "ㄲ", "ㄴ", "ㄷ", "ㄸ", "ㄹ", "ㅁ", "ㅂ", "ㅃ", "ㅅ",
- "ㅆ", "ㅇ", "ㅈ", "ㅉ", "ㅊ", "ㅋ", "ㅌ", "ㅍ", "ㅎ"
-];
-
-ExtractWordManager.KOREAN_LETTER_JUNG = [
- "ㅏ", "ㅐ", "ㅑ", "ㅒ", "ㅓ", "ㅔ", "ㅕ", "ㅖ", "ㅗ", "ㅘ",
- "ㅙ", "ㅚ", "ㅛ", "ㅜ", "ㅝ", "ㅞ", "ㅟ", "ㅠ", "ㅡ", "ㅢ", "ㅣ"
-];
-
-ExtractWordManager.KOREAN_LETTER_JONG = [
- "", "ㄱ", "ㄲ", "ㄳ", "ㄴ", "ㄵ", "ㄶ", "ㄷ", "ㄹ", "ㄺ",
- "ㄻ", "ㄼ", "ㄽ", "ㄾ", "ㄿ", "ㅀ", "ㅁ", "ㅂ", "ㅄ", "ㅅ",
- "ㅆ", "ㅇ", "ㅈ", "ㅊ", "ㅋ", "ㅌ", "ㅍ", "ㅎ"
-];
-
-ExtractWordManager.ENGLISH_LETTER_LEFT = [
- "q", "w", "e", "r", "t",
- "a", "s", "d", "f", "g",
- "z", "x", "c", "v", "b"
-];
-
-ExtractWordManager.ENGLISH_LETTER_RIGHT = [
- "y", "u", "i", "o", "p",
- "h", "j", "k", "l",
- "n", "m"
-];
-
-
-
-
ExtractWordManager.DIFFICULTY_EASY = 0;
ExtractWordManager.DIFFICULTY_HARD = 1
ExtractWordManager.DIFFICULTY_EASY_KOREAN_WORD_LENGTH = 2;
-ExtractWordManager.DIFFICULTY_EASY_ENGLISH_WORD_LENGTH = 3;
\ No newline at end of file
+ExtractWordManager.DIFFICULTY_EASY_ENGLISH_WORD_LENGTH = 4;
\ No newline at end of file
diff --git a/src/game/typing/word_flyingsaucer/flyingsaucer.js b/src/game/typing/word_flyingsaucer/flyingsaucer.js
index a8fc4be..fa5f3aa 100644
--- a/src/game/typing/word_flyingsaucer/flyingsaucer.js
+++ b/src/game/typing/word_flyingsaucer/flyingsaucer.js
@@ -273,7 +273,7 @@ FlyingSaucer.prototype.checkWord = function(inputText) {
if(this.word == inputText) {
this.gameLevelManager.clearWord(this.wordLevel, this.getLandingRatio());
- this.extractWordManager.removeWord(this.wordLevel, this.word);
+ this.extractWordManager.giveBackWord(this.word, this.wordLevel, this.difficultyForLevel);
this.setActive(false);
this.setVisible(false);
this.setWord("");
diff --git a/src/game/typing/word_flyingsaucer/game.js b/src/game/typing/word_flyingsaucer/game.js
index 16ba27f..1bcfe59 100644
--- a/src/game/typing/word_flyingsaucer/game.js
+++ b/src/game/typing/word_flyingsaucer/game.js
@@ -35,6 +35,15 @@ var WordFlyingSaucer = {
(function() { this.gameOver(); }).bind(this)
);
+ // keyboard shortcut
+ this.keyboardShortcut = new KeyboardShortcut();
+ this.keyboardShortcut.addCallback(
+ Phaser.KeyCode.ESC, // keyCode
+ null, // keyDownHandler
+ (function() { this.back(); }).bind(this), // keyUpHandler
+ "keyboard_test" // callerClassName
+ );
+
// game stage
this.drawBackground();
diff --git a/src/game/typing/word_list/english_basic.js b/src/game/typing/word_list/english_basic.js
index 15b9898..a38e59b 100644
--- a/src/game/typing/word_list/english_basic.js
+++ b/src/game/typing/word_list/english_basic.js
@@ -7,10 +7,11 @@ var englishBasicWordList = [
"all",
"alaska",
"salad",
+ "salal",
"dash",
"sag",
"lash",
"has",
"dad",
- "falls"
+ "falla"
];
diff --git a/src/game/typing/word_list/korean_left_upper.js b/src/game/typing/word_list/korean_left_upper.js
index 2aef3f3..24ee2eb 100644
--- a/src/game/typing/word_list/korean_left_upper.js
+++ b/src/game/typing/word_list/korean_left_upper.js
@@ -67,7 +67,6 @@ var koreanLeftUpperWordList = [
"장기",
"장난감",
"저리다",
- "적이",
"정어리",
"젖니",
"지다",
diff --git a/src/web/client/word_flyingsaucer.html b/src/web/client/word_flyingsaucer.html
index f1f619a..c4c2fbb 100644
--- a/src/web/client/word_flyingsaucer.html
+++ b/src/web/client/word_flyingsaucer.html
@@ -42,7 +42,7 @@
-
+