2010/09/04 - タイピングソフトのアルゴリズム

シャドールームさんのところでいくつかタイピングゲームの複数入力の方法について話題が出ていたのでWeather Typingのやり方を少しだけ書いてみる。 Weather Tytpingの自動ローマ字入力はオートマトンを使っている。シャドールームさんで紹介されてたHow To Become A Typerさんが「Tsuikyo 2.0 – 鎚鏡弐」で書いているのと同じ方法ですかね。以下の絵は,いつかタイピングソフトの作り方ページを作るときのために作ったネタだけど,多分今後も作らないだろうし,丁度良いので載せてみる。 2010090401

図は「しゃ」という問題文があったときの例。まず「しゃ」という問題がきたら,あらかじめ上のようなオートマトンを作成しておく。作り方はなんでもいいけど「しゃ」と上のオートマトンをテーブルで用意しておいてもいい。で画面に表示する文字列を作るときは,現在の設定に従ってオートマトンを処理する。例えば「CよりはSを使う」「SHよりはSYを使う」「LYAやXYAは使わない」設定であればS→1→7→Eを通って「SHA」を表示する。次にゲーム中ユーザ入力がきた場合,設定と画面表示を更新しながらオートマトンを処理していく。例えば「CILYA」と入力したときは2へ行って「SよりはCを使う」設定に変更。3→5へ行って「LYAやXYAを使う」設定に変更。最後に9→Eへ行って完了。上の矢印以外の入力が来たらミス扱い。 上の例は「しゃ」だが,問題文が長くなったらオートマトンをつなげていくだけ。例えば「しゃしゃ」だったら上のを2個つなぐだけでOK。「ん」「っ」が入ってくるとだいぶややこしくなるが,基本的には上のやり方でやればいい感じの自動入力ができる。 なお,TODでは多分「SHよりはSYを使う」のような系統立てた入力設定ではなく「SHAよりはSYAを使う」「SHUよりはSYUを使う」みたいな細かい入力設定になっているっぽい。「ん」の扱いも変。Weather TypingはTODを超えることを目指して作っていたので,この辺はTODより改善できているはず。

コメントする