Add: english_upper_lower

This commit is contained in:
2018-08-25 18:35:00 +09:00
parent 8c37a337c1
commit 89eb5af931
8 changed files with 172 additions and 130 deletions
+1 -1
View File
@@ -47,7 +47,7 @@ class AnnounceBox {
text text
); );
announceText.addColor("#ff0000", 0); announceText.addColor("#ff0000", 0);
announceText.stroke = "#fff"; announceText.stroke = "#330000";
} }
@@ -0,0 +1,54 @@
var englishUpperLowerWordList = [
"a",
"b",
"c",
"d",
"e",
"f",
"g",
"h",
"i",
"j",
"k",
"l",
"m",
"n",
"o",
"p",
"q",
"r",
"s",
"t",
"u",
"v",
"w",
"x",
"y",
"z",
"A",
"B",
"C",
"D",
"E",
"F",
"G",
"H",
"I",
"J",
"K",
"L",
"M",
"N",
"O",
"P",
"Q",
"R",
"S",
"T",
"U",
"V",
"W",
"X",
"Y",
"Z"
];
+10 -4
View File
@@ -22,8 +22,7 @@ class TypingPractice {
this.typingScore = new TypingScore(); this.typingScore = new TypingScore();
let STAGE_TIMER_SEC = 5; this.stageTimer = new StageTimer( TypingPractice.STAGE_TIMER_SEC, () => {
this.stageTimer = new StageTimer( STAGE_TIMER_SEC, () => {
self.isOnStage = false; self.isOnStage = false;
// self.goResult(); // self.goResult();
@@ -39,7 +38,7 @@ class TypingPractice {
let TYPING_CONTENT_Y = 200; let TYPING_CONTENT_Y = 200;
textStyleBasic.font = "bold 84px Arial"; textStyleBasic.font = "bold 84px Times New Roman";
this.textTypingContent = game.add.text(game.world.centerX, TYPING_CONTENT_Y, "", textStyleBasic) this.textTypingContent = game.add.text(game.world.centerX, TYPING_CONTENT_Y, "", textStyleBasic)
.setShadow(3, 3, 'rgba(0, 0, 0, 1)', 2) .setShadow(3, 3, 'rgba(0, 0, 0, 1)', 2)
.addColor(TypingPractice.COLOR_CONTENT_INPUT, 0); .addColor(TypingPractice.COLOR_CONTENT_INPUT, 0);
@@ -207,6 +206,7 @@ class TypingPractice {
case "english_basic": case "english_basic":
testContent = englishBasicWordList; testContent = englishBasicWordList;
/*
testContent = [ testContent = [
"a", "a",
"C", "C",
@@ -223,6 +223,7 @@ class TypingPractice {
"k", "k",
"N", "N",
]; ];
*/
break; break;
case "english_left_upper": case "english_left_upper":
testContent = englishLeftUpperWordList; testContent = englishLeftUpperWordList;
@@ -239,6 +240,9 @@ class TypingPractice {
case "english_right_lower": case "english_right_lower":
testContent = englishRightLowerWordList; testContent = englishRightLowerWordList;
break; break;
case "english_upper_lower":
testContent = englishUpperLowerWordList;
break;
case "english_word": case "english_word":
testContent = englishWordList; testContent = englishWordList;
break; break;
@@ -286,6 +290,7 @@ class TypingPractice {
showHighlightKey() { showHighlightKey() {
let typingText = this.typingRandomContents[this.typingIndex]; let typingText = this.typingRandomContents[this.typingIndex];
console.log(typingText);
if(typingText === undefined) if(typingText === undefined)
return; return;
@@ -294,6 +299,7 @@ class TypingPractice {
moveHands() { moveHands() {
let typingText = this.typingRandomContents[this.typingIndex]; let typingText = this.typingRandomContents[this.typingIndex];
console.log(typingText);
if(typingText === undefined) if(typingText === undefined)
return; return;
@@ -377,7 +383,7 @@ TypingPractice.TYPING_COUNT_PLUS_ENTER = 1;
TypingPractice.OFFSET_RIGHT_ALIGN = 10; TypingPractice.OFFSET_RIGHT_ALIGN = 10;
TypingPractice.WORD_COUNT_FOR_STAGE = 10; TypingPractice.STAGE_TIMER_SEC = 60;
TypingPractice.COLOR_CONTENT_INPUT = "#dddddd"; TypingPractice.COLOR_CONTENT_INPUT = "#dddddd";
TypingPractice.COLOR_BRACKET = "#dddd70"; TypingPractice.COLOR_BRACKET = "#dddd70";
+3 -3
View File
@@ -51,7 +51,7 @@ class TypingTest {
this.textTypingRecordsDone = []; this.textTypingRecordsDone = [];
for(let i = 0; i < TypingTest.TYPING_CONTENT_DONE_COUNT; i++) { for(let i = 0; i < TypingTest.TYPING_CONTENT_DONE_COUNT; i++) {
this.textTypingContentsDone[i] = game.add.text( this.textTypingContentsDone[i] = game.add.text(
game.world.centerX, TYPING_CONTENT_Y - TYPING_OFFSET_Y - i * 50, game.world.centerX, TYPING_CONTENT_Y + TYPING_OFFSET_Y + i * 50,
"", textStyleBasic "", textStyleBasic
) )
// .setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2) // .setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2)
@@ -63,7 +63,7 @@ class TypingTest {
SCORE_POSITION_X = 700; SCORE_POSITION_X = 700;
this.textTypingRecordsDone[i] = game.add.text( this.textTypingRecordsDone[i] = game.add.text(
SCORE_POSITION_X, TYPING_CONTENT_Y - TYPING_OFFSET_Y - i * 50, SCORE_POSITION_X, TYPING_CONTENT_Y + TYPING_OFFSET_Y + i * 50,
"", textStyleBasic "", textStyleBasic
) )
// .setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2) // .setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2)
@@ -75,7 +75,7 @@ class TypingTest {
this.textTypingContentPreview = []; this.textTypingContentPreview = [];
for(let i = 0; i < TypingTest.TYPING_CONTENT_PREVIEW_COUNT; i++) { for(let i = 0; i < TypingTest.TYPING_CONTENT_PREVIEW_COUNT; i++) {
this.textTypingContentPreview[i] = game.add.text( this.textTypingContentPreview[i] = game.add.text(
game.world.centerX, TYPING_CONTENT_Y + TYPING_OFFSET_Y + i * 50, game.world.centerX, TYPING_CONTENT_Y - TYPING_OFFSET_Y - i * 50,
"", textStyleBasic "", textStyleBasic
) )
// .setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2) // .setShadow(3, 3, 'rgba(0, 0, 0, 0.5)', 2)
+77 -77
View File
@@ -1,90 +1,90 @@
var koreanSentenceList = [ var koreanSentenceList = [
"가는 말이 고와야 오는 말도 곱다", "가는 말이 고와야 오는 말도 곱다.",
"가랑비에 옷 젖는줄 모른다", "가랑비에 옷 젖는줄 모른다.",
"가만히 있으면 중간이나 간다", "가만히 있으면 중간이나 간다.",
"가지 많은 나무에 바람 잘 날 없다", "가지 많은 나무에 바람 잘 날 없다.",
"간에 붙었다 쓸개에 붙는다", "간에 붙었다 쓸개에 붙는다.",
"같은 값이면 다홍치마", "같은 값이면 다홍치마",
"개구리 올챙이 시절 모른다", "개구리 올챙이 시절 모른다.",
"개 같이 벌어서 정승같이 산다", "개 같이 벌어서 정승같이 산다.",
"개똥도 약에 쓰려면 없다", "개똥도 약에 쓰려면 없다.",
"개똥밭에 굴러도 이승이 좋다", "개똥밭에 굴러도 이승이 좋다.",
"계란으로 바위치기", "계란으로 바위치기",
"고양이 목에 방울 달기", "고양이 목에 방울 달기",
"공든 탑이 무너지랴", "공든 탑이 무너지랴",
"구더기 무서워서 장 못 담그랴", "구더기 무서워서 장 못 담그랴",
"구르는 돌에는 이끼가 끼지 않는다", "구르는 돌에는 이끼가 끼지 않는다.",
"구슬이 서 말이라도 꿰어야 보배", "구슬이 서 말이라도 꿰어야 보배",
"굴러 온 돌이 박힌 돌 뺀다", "굴러 온 돌이 박힌 돌 뺀다.",
"길이 아니면 가지 말고 말이 아니면 듣지 말라", "길이 아니면 가지 말고 말이 아니면 듣지 말라.",
"까마귀 날자 배 떨어진다", "까마귀 날자 배 떨어진다.",
"낮 말은 새가 듣고 밤 말은 쥐가 듣는다", "낮 말은 새가 듣고 밤 말은 쥐가 듣는다.",
"늦게 배운 도둑질이 날 새는 줄 모른다", "늦게 배운 도둑질이 날 새는 줄 모른다.",
"다람쥐 쳇바퀴 돌리듯", "다람쥐 쳇바퀴 돌리듯",
"달면 삼키고 쓰면 뱉는다", "달면 삼키고 쓰면 뱉는다.",
"닭 잡아먹고 오리발 내민다", "닭 잡아먹고 오리발 내민다.",
"닭 쫓던 개 지붕 쳐다본다", "닭 쫓던 개 지붕 쳐다본다.",
"도둑을 맞으려면 개도 안 짖는다", "도둑을 맞으려면 개도 안 짖는다.",
"도둑이 제 발 저린다", "도둑이 제 발 저린다.",
"돌다리도 두들겨 보고 건너라", "돌다리도 두들겨 보고 건너라.",
"떡 줄 사람은 생각도 않는데 김칫국부터 마신다", "떡 줄 사람은 생각도 않는데 김칫국부터 마신다.",
"똥 묻은 개가 겨 묻은 개 나무란다", "똥 묻은 개가 겨 묻은 개 나무란다.",
"똥이 무서워서 피하나 더러워서 피하지", "똥이 무서워서 피하나 더러워서 피하지.",
"뛰는 놈 위에 나는 놈 있다", "뛰는 놈 위에 나는 놈 있다.",
"말 한마디에 천냥 빚을 갚는다", "말 한마디에 천냥 빚을 갚는다.",
"못된 송아지 엉덩이에 뿔난다", "못된 송아지 엉덩이에 뿔난다.",
"못 먹는 감 찔러나 본다", "못 먹는 감 찔러나 본다.",
"미꾸라지 한 마리가 온 웅덩이를 흐린다", "미꾸라지 한 마리가 온 웅덩이를 흐린다.",
"믿는 도끼에 발등 찍히다", "믿는 도끼에 발등 찍히다.",
"밑 빠진 독에 물 붓기", "밑 빠진 독에 물 붓기.",
"바늘 도둑이 소 도둑 된다", "바늘 도둑이 소 도둑 된다.",
"방귀 뀐 놈이 성낸다", "방귀 뀐 놈이 성낸다.",
"백지장도 맞들면 낫다", "백지장도 맞들면 낫다.",
"뱁새가 황새 따라가면 다리가 찢어진다", "뱁새가 황새 따라가면 다리가 찢어진다.",
"번데기 앞에서 주름잡기", "번데기 앞에서 주름잡기",
"부뚜막의 소금도 집어 넣어야 짜다", "부뚜막의 소금도 집어 넣어야 짜다.",
"비온 뒤 땅이 굳는다", "비온 뒤 땅이 굳는다.",
"빈 수레가 더 요란하다", "빈 수레가 더 요란하다.",
"빈대 잡다 초가삼간 태운다", "빈대 잡다 초가삼간 태운다.",
"사공이 많으면 배가 산으로 간다", "사공이 많으면 배가 산으로 간다.",
"서당개 삼년이면 풍월을 읊는다", "서당개 삼년이면 풍월을 읊는다.",
"세 살 버릇 여든까지 간다", "세 살 버릇 여든까지 간다.",
"소 잃고 외양간 고친다", "소 잃고 외양간 고친다.",
"소 뒷걸음질 치다 쥐 잡기", "소 뒷걸음질 치다 쥐 잡기",
"소문 난 잔치 먹을 것 없다", "소문 난 잔치 먹을 것 없다.",
"손바닥도 마주쳐야 소리가 난다", "손바닥도 마주쳐야 소리가 난다.",
"신선놀음에 도끼자루 썩는 줄 모른다", "신선놀음에 도끼자루 썩는 줄 모른다.",
"십년이면 강산도 변한다", "십년이면 강산도 변한다.",
"아랫돌 빼서 윗돌 괴기", "아랫돌 빼서 윗돌 괴기",
"얌전한 고양이 부뚜막에 먼저 오른다", "얌전한 고양이 부뚜막에 먼저 오른다.",
"안 되는 놈은 뒤로 자빠져도 코가 깨진다", "안 되는 놈은 뒤로 자빠져도 코가 깨진다.",
"어물전 망신은 꼴뚜기가 시킨다", "어물전 망신은 꼴뚜기가 시킨다.",
"열길 물 속은 알아도 한길 사람 속은 모른다", "열길 물 속은 알아도 한길 사람 속은 모른다.",
"열 번 찍어 안 넘어가는 나무 없다", "열 번 찍어 안 넘어가는 나무 없다.",
"오르지 못할 나무는 쳐다보지도 말라", "오르지 못할 나무는 쳐다보지도 마라.",
"오얏나무 아래에서 갓을 고쳐 쓰지 마라", "오얏나무 아래에서 갓을 고쳐 쓰지 마라.",
"원수는 외나무 다리에서 만난다", "원수는 외나무 다리에서 만난다.",
"원숭이도 나무에서 떨어진다", "원숭이도 나무에서 떨어진다.",
"윗 물이 맑아야 아랫물도 맑다", "윗물이 맑아야 아랫물도 맑다.",
"자라 보고 놀란 가슴 솥뚜껑 보고 놀란다", "자라 보고 놀란 가슴 솥뚜껑 보고 놀란다.",
"자랄 나무는 떡잎부터 알아본다", "자랄 나무는 떡잎부터 알아본다.",
"잘 되면 제 탓이요 못 되면 조상 탓이라", "잘 되면 제 탓이요 못 되면 조상 탓이라",
"쥐구멍에도 볕 들 날 있다", "쥐구멍에도 볕 들 날 있다.",
"지렁이도 밟으면 꿈틀한다", "지렁이도 밟으면 꿈틀한다.",
"천리길도 한 걸음부터", "천리길도 한 걸음부터.",
"칼로써 흥한자 칼로써 망한다", "칼로써 흥한자 칼로써 망한다.",
"콩으로 메주를 쑨다 하여도 곧이듣지 않는다", "콩으로 메주를 쑨다 하여도 곧이듣지 않는다.",
"콩 심은 데 콩 나고 팥 심은 데 팥 난다", "콩 심은 데 콩 나고 팥 심은 데 팥 난다.",
"털어서 먼지 안 나는 사람 없다", "털어서 먼지 안 나는 사람 없다.",
"팔은 안으로 굽는다", "팔은 안으로 굽는다.",
"피는 물보다 진하다", "피는 물보다 진하다.",
"하늘이 무너저도 솟아날 구멍은 있다", "하늘이 무너저도 솟아날 구멍은 있다.",
"하룻강아지 범 무서운줄 모른다", "하룻강아지 범 무서운줄 모른다.",
"호랑이도 제 말 하면 온다", "호랑이도 제 말 하면 온다.",
"호랑이에게 물려가도 정신만 차리면 살 수 있다", "호랑이에게 물려가도 정신만 차리면 살 수 있다.",
"호랑이를 잡으려면 호랑이굴로 가야 한다", "호랑이를 잡으려면 호랑이굴로 가야 한다.",
"호미로 막을걸 가래로 막는다", "호미로 막을걸 가래로 막는다.",
"호박에 줄 긋는다고 수박되나", "호박에 줄 긋는다고 수박되나.",
"혹 때러 갔다 혹 붙이고 온다", "혹 때러 갔다 혹 붙이고 온다.",
"흥정은 붙이고 싸움은 말리랬다" "흥정은 붙이고 싸움은 말리랬다."
]; ];
+1
View File
@@ -45,6 +45,7 @@
<script src="../../game/typing/alphabet_list/english_right_lower.js"></script> <script src="../../game/typing/alphabet_list/english_right_lower.js"></script>
<script src="../../game/typing/alphabet_list/english_right_upper.js"></script> <script src="../../game/typing/alphabet_list/english_right_upper.js"></script>
<script src="../../game/typing/alphabet_list/english_second_finger.js"></script> <script src="../../game/typing/alphabet_list/english_second_finger.js"></script>
<script src="../../game/typing/alphabet_list/english_upper_lower.js"></script>
<script src="../../game/typing/alphabet_list/english_sentence.js"></script> <script src="../../game/typing/alphabet_list/english_sentence.js"></script>
<script src="../../game/typing/alphabet_list/english_word.js"></script> <script src="../../game/typing/alphabet_list/english_word.js"></script>
+5 -24
View File
@@ -17,27 +17,8 @@ INSERT INTO `active_app` (`ActiveAppID`, `MaestroID`, `AppID`) VALUES
(14, 1, 14), (14, 1, 14),
(15, 1, 15), (15, 1, 15),
(16, 1, 16), (16, 1, 16),
(17, 1, 29), (17, 1, 16),
(18, 1, 30), (18, 1, 29),
(19, 1, 39), (19, 1, 30),
(20, 1, 40), (20, 1, 39),
(21, 2, 101), (21, 1, 40);
(22, 2, 102),
(23, 2, 1),
(24, 2, 2),
(25, 2, 3),
(26, 2, 4),
(27, 2, 5),
(28, 2, 6),
(29, 2, 7),
(30, 2, 8),
(31, 2, 11),
(32, 2, 12),
(33, 2, 13),
(34, 2, 14),
(35, 2, 15),
(36, 2, 16),
(37, 2, 29),
(38, 2, 30),
(39, 2, 39),
(40, 2, 40);
+21 -21
View File
@@ -1,7 +1,7 @@
USE moty; USE moty;
INSERT INTO `app` (`AppID`, `AppName`, `KoreanName`, `AppType`, `Status`, `HowToPlay`) VALUES INSERT INTO `app` (`AppID`, `AppName`, `KoreanName`, `AppType`, `Status`, `HowToPlay`) VALUES
(1, 'practice_korean_basic', '기본 자리', 1, 1, '왼손 검지를 F 자판위에,\\n오른손 검지를 J 자판위에 올린채\\n손을 움직이지 말고 글자를 입력하세요.'), (1, 'practice_korean_basic', '기본 자리', 1, 1, '왼손 검지를 [F] 자판위에,\\n오른손 검지를 [J] 자판위에 올린채\\n손을 움직이지 말고 글자를 입력하세요.'),
(2, 'practice_korean_left_upper', '왼손 윗글쇠', 1, 1, '왼손 윗글쇠 연습.\\n항상 양 손은 기본 자리 위치에 두고 시작합니다.'), (2, 'practice_korean_left_upper', '왼손 윗글쇠', 1, 1, '왼손 윗글쇠 연습.\\n항상 양 손은 기본 자리 위치에 두고 시작합니다.'),
(3, 'practice_korean_second_finger', '검지 글쇠', 1, 1, '기본 자리에 손을 두고, 양 손 검지 손가락으로\\n키보드 안쪽의 글쇠를 눌러주세요.'), (3, 'practice_korean_second_finger', '검지 글쇠', 1, 1, '기본 자리에 손을 두고, 양 손 검지 손가락으로\\n키보드 안쪽의 글쇠를 눌러주세요.'),
(4, 'practice_korean_right_upper', '오른손 윗글쇠', 1, 1, '오른손 윗글쇠 연습.\\n항상 양 손은 기본 자리 위치에 두고 시작합니다.'), (4, 'practice_korean_right_upper', '오른손 윗글쇠', 1, 1, '오른손 윗글쇠 연습.\\n항상 양 손은 기본 자리 위치에 두고 시작합니다.'),
@@ -11,33 +11,33 @@ INSERT INTO `app` (`AppID`, `AppName`, `KoreanName`, `AppType`, `Status`, `HowTo
(8, 'practice_korean_right_upper_double', '오른손 쌍모음', 1, 1, '오른손 쌍모음. 왼손 새끼손가락으로\\n쉬프트키를 누르고 오른손 윗글쇠를 누르세요.'), (8, 'practice_korean_right_upper_double', '오른손 쌍모음', 1, 1, '오른손 쌍모음. 왼손 새끼손가락으로\\n쉬프트키를 누르고 오른손 윗글쇠를 누르세요.'),
(9, 'practice_korean_word', '', 1, 1, '한글 단어 입력으로 타자를 연습합니다.'), (9, 'practice_korean_word', '', 1, 1, '한글 단어 입력으로 타자를 연습합니다.'),
(10, 'practice_korean_sentence', '', 1, 1, '한글 문장 입력으로 타자를 연습합니다.'), (10, 'practice_korean_sentence', '', 1, 1, '한글 문장 입력으로 타자를 연습합니다.'),
(11, 'practice_english_basic', 'Basic', 2, 1, '왼손 검지를 F 자판위에,\\n오른손 검지를 J 자판위에 올린채\\n손을 움직이지 말고 글자를 입력하세요.'), (11, 'practice_english_basic', 'Basic', 2, 1, '왼손 검지를 [F] 자판위에,\\n오른손 검지를 [J] 자판위에 올린채\\n손을 움직이지 말고 글자를 입력하세요.'),
(12, 'practice_english_left_upper', 'Left upper', 2, 1, '왼손 윗글쇠 연습.\\n항상 양 손은 기본 자리 위치에 두고 시작합니다.'), (12, 'practice_english_left_upper', 'Left upper', 2, 1, '왼손 윗글쇠 연습.\\n항상 양 손은 기본 자리 위치에 두고 시작합니다.'),
(13, 'practice_english_second_finger', 'Second finger', 2, 1, '기본 자리에 손을 두고, 양 손 검지 손가락으로\\n키보드 안쪽의 글쇠를 눌러주세요.'), (13, 'practice_english_second_finger', 'Second finger', 2, 1, '기본 자리에 손을 두고, 양 손 검지 손가락으로\\n키보드 안쪽의 글쇠를 눌러주세요.'),
(14, 'practice_english_right_upper', 'Right upper', 2, 1, '오른손 윗글쇠 연습.\\n항상 양 손은 기본 자리 위치에 두고 시작합니다.'), (14, 'practice_english_right_upper', 'Right upper', 2, 1, '오른손 윗글쇠 연습.\\n항상 양 손은 기본 자리 위치에 두고 시작합니다.'),
(15, 'practice_english_left_lower', 'Left lower', 2, 1, '왼손 밑글쇠 연습.\\n항상 양 손은 기본 자리 위치에 두고 시작합니다.'), (15, 'practice_english_left_lower', 'Left lower', 2, 1, '왼손 밑글쇠 연습.\\n항상 양 손은 기본 자리 위치에 두고 시작합니다.'),
(16, 'practice_english_right_lower', 'Right lower', 2, 1, '오른손 밑글쇠 연습.\\n항상 양 손은 기본 자리 위치에 두고 시작합니다.'), (16, 'practice_english_right_lower', 'Right lower', 2, 1, '오른손 밑글쇠 연습.\\n항상 양 손은 기본 자리 위치에 두고 시작합니다.'),
(17, 'practice_english_capital', 'Upper, Lower Case', 2, 1, '대문자, 소문자 연습.\\n대문자를 입력할 때에는 반대편 손\\n새끼손가락으로 [shift] 키를 누르세요.'),
(19, 'practice_english_word', '', 2, 1, '영문 단어 입력으로 타자를 연습합니다.'), (19, 'practice_english_word', '', 2, 1, '영문 단어 입력으로 타자를 연습합니다.'),
(20, 'practice_english_sentence', '', 2, 1, '영문 문장 입력으로 타자를 연습합니다.'), (20, 'practice_english_sentence', '', 2, 1, '영문 문장 입력으로 타자를 연습합니다.'),
(21, 'test_korean_basic', '기본 자리', 11, 1, '예문을 빨리 입력한 후,\\n엔터 [Enter 또는 Return] 키를 누르세요.'), (21, 'test_korean_basic', '기본 자리', 11, 1, ''),
(22, 'test_korean_left_upper', '왼손 윗글쇠', 11, 1, '예문을 빨리 입력한 후,\\n엔터 [Enter 또는 Return] 키를 누르세요.'), (22, 'test_korean_left_upper', '왼손 윗글쇠', 11, 1, ''),
(23, 'test_korean_second_finger', '검지 글쇠', 11, 1, '예문을 빨리 입력한 후,\\n엔터 [Enter 또는 Return] 키를 누르세요.'), (23, 'test_korean_second_finger', '검지 글쇠', 11, 1, ''),
(24, 'test_korean_right_upper', '오른손 윗글쇠', 11, 1, '예문을 빨리 입력한 후,\\n엔터 [Enter 또는 Return] 키를 누르세요.'), (24, 'test_korean_right_upper', '오른손 윗글쇠', 11, 1, ''),
(25, 'test_korean_left_lower', '왼손 밑글쇠', 11, 1, '예문을 빨리 입력한 후,\\n엔터 [Enter 또는 Return] 키를 누르세요.'), (25, 'test_korean_left_lower', '왼손 밑글쇠', 11, 1, ''),
(26, 'test_korean_right_lower', '오른손 밑글쇠', 11, 1, '예문을 빨리 입력한 후,\\n엔터 [Enter 또는 Return] 키를 누르세요.'), (26, 'test_korean_right_lower', '오른손 밑글쇠', 11, 1, ''),
(27, 'test_korean_left_lower_double', '왼손 쌍자음', 11, 1, '예문을 빨리 입력한 후,\\n엔터 [Enter 또는 Return] 키를 누르세요.'), (27, 'test_korean_left_lower_double', '왼손 쌍자음', 11, 1, ''),
(28, 'test_korean_right_lower_double', '오른손 쌍모음', 11, 1, '예문을 빨리 입력한 후,\\n엔터 [Enter 또는 Return] 키를 누르세요.'), (28, 'test_korean_right_lower_double', '오른손 쌍모음', 11, 1, ''),
(29, 'test_korean_word', '시험 - 단어', 11, 1, '예문을 빨리 입력한 후,\\n엔터 [Enter 또는 Return] 키를 누르세요.'), (29, 'test_korean_word', '시험 - 단어', 11, 1, '단어를 빠르게 입력하세요.'),
(30, 'test_korean_sentence', '시험 - 문장', 11, 1, '예문을 빨리 입력한 후,\\n엔터 [Enter 또는 Return] 키를 누르세요.'), (30, 'test_korean_sentence', '시험 - 문장', 11, 1, '문장을 빠르게 입력하세요.'),
(31, 'test_english_basic', 'Basic', 12, 1, '예문을 빨리 입력한 후,\\n엔터 [Enter 또는 Return] 키를 누르세요.'), (31, 'test_english_basic', 'Basic', 12, 1, ''),
(32, 'test_english_left_upper', 'Left upper', 12, 1, '예문을 빨리 입력한 후,\\n엔터 [Enter 또는 Return] 키를 누르세요.'), (32, 'test_english_left_upper', 'Left upper', 12, 1, ''),
(33, 'test_english_second_finger', 'Second finger', 12, 1, '예문을 빨리 입력한 후,\\n엔터 [Enter 또는 Return] 키를 누르세요.'), (33, 'test_english_second_finger', 'Second finger', 12, 1, ''),
(34, 'test_english_right_upper', 'Right upper', 12, 1, '예문을 빨리 입력한 후,\\n엔터 [Enter 또는 Return] 키를 누르세요.'), (34, 'test_english_right_upper', 'Right upper', 12, 1, ''),
(35, 'test_english_left_lower', 'Left lower', 12, 1, '예문을 빨리 입력한 후,\\n엔터 [Enter 또는 Return] 키를 누르세요.'), (35, 'test_english_left_lower', 'Left lower', 12, 1, ''),
(36, 'test_english_right_lower', 'Right lower', 12, 1, '예문을 빨리 입력한 후,\\n엔터 [Enter 또는 Return] 키를 누르세요.'), (36, 'test_english_right_lower', 'Right lower', 12, 1, ''),
(39, 'test_english_word', 'Word test', 12, 1, '예문을 빨리 입력한 후,\\n엔터 [Enter 또는 Return] 키를 누르세요.'), (39, 'test_english_word', 'Word test', 12, 1, '단어를 빠르게 입력하세요.'),
(40, 'test_english_sentence', 'Sentence test', 12, 1, '예문을 빨리 입력한 후,\\n엔터 [Enter 또는 Return] 키를 누르세요.'), (40, 'test_english_sentence', 'Sentence test', 12, 1, '문장을 빠르게 입력하세요.'),
(50, 'typing_venezia', '베네치아', 50, 0, '물에 잠기지 않도록 잘 준비하세요.'), (50, 'typing_venezia', '베네치아', 50, 0, '물에 잠기지 않도록 잘 준비하세요.'),
(101, 'space_invaders', '외계인 침공', 100, 1, '외계인이 나타났다!\\n마우스 왼쪽 버튼으로\\n외계인을 클릭해서 물리쳐 주세요.'), (101, 'space_invaders', '외계인 침공', 100, 1, '외계인이 나타났다!\\n마우스 왼쪽 버튼으로\\n외계인을 클릭해서 물리쳐 주세요.'),
(102, 'card_matching', '카드 짝 맞추기', 100, 0, '같은 그림의 카드를 맞춰주세요.'); (102, 'card_matching', '카드 짝 맞추기', 100, 0, '같은 그림의 카드를 맞춰주세요.');