• R/O
  • SSH
  • HTTPS

hyakutyping: コミット


コミットメタ情報

リビジョン398 (tree)
日時2010-05-03 04:59:28
作者satofumi

ログメッセージ

歴史的仮名遣いの文字を現代仮名遣いに変換するよう修正

変更サマリ

差分

--- trunk/cpp_lua/scripts/db_local.lua (revision 397)
+++ trunk/cpp_lua/scripts/db_local.lua (revision 398)
@@ -3,9 +3,6 @@
33 -- Satofumi KAMIMURA
44 -- $Id$
55
6--- \todo 効率的な SQL の書き方を検討する
7--- \todo API を見直す
8-
96 require("lsqlite3")
107
118
--- trunk/cpp_lua/scripts/startup.lua (revision 397)
+++ trunk/cpp_lua/scripts/startup.lua (revision 398)
@@ -46,6 +46,7 @@
4646 _G.title_y_ = 70
4747 _G.menu_y_ = 160
4848
49+_G.waka_id_size_ = 1
4950 _G.waka_id_array_ = {}
5051
5152
--- trunk/cpp_lua/scripts/display_waka.lua (revision 397)
+++ trunk/cpp_lua/scripts/display_waka.lua (revision 398)
@@ -247,7 +247,7 @@
247247 end
248248
249249
250--- ローマ字用の入力サンプルの表示
250+-- 入力サンプルの表示
251251 function display_waka_input_sample(waka_id, input_ku, current_text,
252252 is_roman, view_ku)
253253
@@ -259,7 +259,8 @@
259259
260260 -- 入力するべき文字列の生成
261261 if view_ku >= input_ku + 4 then
262- local input_sample_text = waka_data_kana_[waka_id][4 + input_ku]
262+ local input_sample_text =
263+ waka_handler_convert_old_kana(waka_data_kana_[waka_id][input_ku + 4])
263264 if current_sample_text_ ~= input_sample_text then
264265 current_sample_text_ = input_sample_text
265266
@@ -275,6 +276,9 @@
275276 waka_layer_:push_front(input_sample_label_)
276277 end
277278 end
279+ if view_ku < input_ku + 4 then
280+ waka_layer_:remove(input_sample_label_)
281+ end
278282
279283 if not is_roman then
280284 -- ローマ字入力でなければ、戻る
@@ -287,7 +291,8 @@
287291 if current_roman_text_ ~= current_text then
288292 current_roman_text_ = current_text
289293
290- local sample_text = waka_data_kana_[waka_id][input_ku + 4]
294+ local sample_text =
295+ waka_handler_convert_old_kana(waka_data_kana_[waka_id][input_ku + 4])
291296 local miss_detected = false
292297 sample_text, miss_detected =
293298 waka_handler_input_sample(sample_text, current_text)
--- trunk/cpp_lua/scripts/practice_menu.lua (revision 397)
+++ trunk/cpp_lua/scripts/practice_menu.lua (revision 398)
@@ -21,9 +21,7 @@
2121 -- 入力開始が最も遅い和歌が 1 つ含まれるようにする
2222 -- !!! 残りを 乱数で配置後、ID の並びをシャッフルする
2323 -- !!! waka_handler の関数で処理する
24- --waka_id_array_ = waka_handler_shuffle(waka_handler_practice_waka(6))
25- --waka_id_array_ = { 1, 2, 3, 4, 5, 6 }
26- --waka_id_array_ = { 1, 2 }
24+ --waka_id_array_ = waka_handler_shuffle(waka_handler_practice_waka(waka_id_size_))
2725 waka_id_array_ = { 1 }
2826 end
2927
@@ -30,7 +28,7 @@
3028
3129 function practice_menu_set_waka_weak()
3230 -- 入力開始が遅い順に和歌 ID を格納し、シャッフルする
33- waka_id_array_ = waka_handler_shuffle(waka_handler_slow_waka(5))
31+ waka_id_array_ = waka_handler_shuffle(waka_handler_slow_waka(waka_id_size_))
3432 end
3533
3634
--- trunk/cpp_lua/scripts/waka_handler.lua (revision 397)
+++ trunk/cpp_lua/scripts/waka_handler.lua (revision 398)
@@ -7,10 +7,34 @@
77 require("db_local")
88
99
10+-- 歴史的仮名使いを現代仮名使いに変換する
11+function waka_handler_convert_old_kana(text)
12+
13+ local original = Utf8(text)
14+ local original_size = original:size()
15+ local converted = ""
16+
17+ for i = 0, original_size do
18+ local ch = original:ch(i)
19+
20+ if ch == Utf8("ゐ"):ch(0) then
21+ converted = converted .. Utf8("い"):toStdString()
22+ elseif ch == Utf8("ゑ"):ch(0) then
23+ converted = converted .. Utf8("え"):toStdString()
24+ else
25+ converted = converted .. original:substr(i, 1):toStdString()
26+ end
27+ end
28+
29+ return converted
30+end
31+
32+
1033 -- 入力された文字列が、和歌の文字列と一致しているかを返す
1134 function waka_handler_input_completed(waka_id, input_ku, converted_text)
1235
13- local expected = Utf8(waka_data_kana_[waka_id][4 + input_ku])
36+ local expected = Utf8(waka_handler_convert_old_kana(
37+ waka_data_kana_[waka_id][4 + input_ku]))
1438 local actual = Utf8(converted_text)
1539
1640 if actual:size() ~= expected:size() then
旧リポジトリブラウザで表示