処理2

前回の続きです。

「っしゃ」の入力パターンその2。

 

「ltusilya」と入力した場合を考えてみます。

 

パターンの定義は前回を参照してください。

 

初期パターン

Index Alphabet Remainder
0
ssha
1 ssya  
2 ltu しゃ
3 xtu しゃ
4 ltsu しゃ
5 xtsu しゃ
6 ssi
7 sshi
8 cci

「l」をタイプ

Index Alphabet Remainder
2
tu しゃ
4
tsu しゃ

前回と同様に「l」をタイプすることで

Alphabetの先頭文字が「l」のパターンだけ抽出されます。

抽出後、Alphabetは先頭文字(l)が削除された状態になります。

 

続けて「t」、「u」とタイプすると以下の状態になります。

 

Index Alphabet Remainder
2
しゃ

Alphabetが空になったパターンが発生したので、

入力成功となります。

 

ただし、「っしゃ」をタイプするパターンとして

「ltu」とタイプしたので、残りの「しゃ」を処理する必要があります。

 

残りの文字はRemainderに設定されてるので、

タイプ成功後、Remainderを処理すればいいわけです。

 

続けて入力パターンの様子を見ていきましょう。

次は「しゃ」なので新しいパターン一覧を取得します。

(「しゃ」のパターン一覧は前回を参照)

 

初期パターン

Index Alphabet Remainder
0
sya
1 sha  
2 si
3 shi
4 ci

「si」をタイプ

Index Alphabet Remainder
2

Remainder「ゃ」のパターン一覧を取得。

 

初期パターン

Index Alphabet Remainder
0
lya
1 xya  

「lya」をタイプして入力完了です。

 

この様に大抵の入力パターンは今までに説明した

データ構造と処理を利用すれば対応できます。

 

が、実はこのままじゃ対応できないパターンが存在します。

「ん」を含むパターンです。

 

タイピングアルゴリズムのラスボスです(^^;)

現時点で、自分も美しい方法では倒せていません。

 

次回以降で「ん」の処理をする上で問題になる点と、

今までのデータ構造と処理を応用して対応する方法を解説します。

 

次へ

2010.10.05