説明

手書き学習支援プログラムおよび手書き文字認識プログラム

【課題】早いタイミングで不正解を通知する。
【解決手段】ゲーム装置10はCPUコア42を含む。CPUコア42は、正解が予め判明している問題をスピーカ22a等から出力し、この問題に関連する手書き文字入力操作をタッチパネル20を通してストローク単位で受け付ける。かかる受け付けの度に認識処理を行い、行われた認識処理の結果が正解文字と一致するか否かを判別し、不一致と判別されたとき、受け付けられた手書き文字入力操作のストローク数が正解文字の最大ストローク数を上回るか否かをさらに判別する。そして上回ると判別されたとき、LCD14等を通して不正解を通知する。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、手書き学習支援プログラムおよび手書き文字認識プログラムに関し、特にたとえば、正解が予め判明している問題を表示し、表示問題に関連する手書き文字入力操作をタッチパネルを通して受け付け、受け付けられた入力操作に対応する手書き文字を認識し、認識された文字が正解か否かを判別し、そして判別結果を通知することによってユーザの学習を支援する、学習支援プログラムに関し、また、手書き文字入力操作をタッチパネルを通して受け付け、受け付けられた入力操作に対応する手書き文字を認識し、認識された文字が特定文字か否かを判別する、文字認識プログラムに関する。
【背景技術】
【0002】
従来の学習支援装置としては、特許文献1に開示されたものが知られている。この従来技術では、問題表示から正誤通知に至る一連の処理は一定の周期で行われる。この周期を学習者の習熟度に応じて調整することで、学習効果を高めようとしている。
【0003】
一方、従来の手書き文字認識装置としては、特許文献2に開示されたものが知られている。この従来技術は、手書き数字入力操作をストローク単位で受け付け、受け付けの度に数字認識処理を行う。入力される数字は、最大で2桁であり、数字認識処理は、現時点までに受け付けられた全てのストロークに基づいて行われる。こうすることで、より自然な入力操作を実現し、また認識速度を向上させようとしている。
【特許文献1】特開2004−309627号公報
【特許文献2】特許第3560361号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、特許文献1の従来技術は、入力が不正解である場合に、一定時間が経過するまで不正解を知ることができない。このため、待ち時間が長く、効果的な学習が行えなかった。
【0005】
一方、特許文献2の従来技術は、2桁以下の数字を主な認識対象としており、特に英大文字,英小文字等も含む任意の文字列について、高い認識精度が得られるとは限らない。
【0006】
それゆえに、この発明の第1の目的は、早いタイミングで不正解を知ることができる、手書き学習支援プログラムを提供することである。
【0007】
この発明の第2の目的は、文字認識の精度を高めることができる、手書き文字認識プログラムを提供することである。
【課題を解決するための手段】
【0008】
請求項1の発明に従う手書き学習支援プログラムは、タッチパネル(20:実施例で相当する参照符号。以下同じ)と、文字毎の最大ストローク数を記憶した記憶手段(104a)とを有するコンピュータ装置(10)のプロセサ(42)に、正解が予め判明している問題を出力する問題出力ステップ(S1)、問題出力ステップによって出力された問題に関連する手書き文字入力操作をタッチパネルを通してストローク単位で受け付ける受付ステップ(S7,S31)、受付ステップによる受け付けの度に認識処理を行う認識ステップ(S15,S47,S57)、認識ステップによって行われた認識処理の結果が正解文字と一致するか否かを判別する正解判別ステップ(S17,S49,S59)、正解判別ステップの判別結果が否定的であるとき受付ステップによって受け付けられた手書き文
字入力操作のストローク数が正解文字の最大ストローク数を上回るか否かを判別するストローク数判別ステップ(S19,S53,S55)、およびストローク数判別ステップの判別結果が肯定的であるとき不正解を通知する不正解通知ステップ(S21,S37)を実行させる。
【0009】
請求項1の発明では、問題は、問題出力ステップによって出力される。出力された問題に関連する手書き文字入力操作は、受付ステップによって、タッチパネルを通してストローク単位で受け付けられる。認識ステップは、受付ステップによる受け付けの度に認識処理を行う。認識ステップによって行われた認識処理の結果が正解文字と一致するか否かは、正解判別ステップによって判別される。ストローク数判別ステップは、正解判別ステップの判別結果が否定的であるとき受付ステップによって受け付けられた手書き文字入力操作のストローク数が、正解文字の最大ストローク数を上回るか否かを判別する。不正解通知ステップは、ストローク数判別ステップの判別結果が肯定的であるとき、不正解を通知する。
【0010】
請求項1の発明によれば、手書き文字入力操作をストローク単位で受け付け、受け付けの度に認識処理を行い、認識処理の結果が正解文字と一致しないとき、受け付けられた手書き文字入力操作のストローク数が正解文字の最大ストローク数を上回るか否かを判別して、かかる判別結果が肯定的であるとき不正解を通知するので、早いタイミングで不正解を通知できる。
【0011】
請求項2の発明に従う手書き学習支援プログラムは、請求項1に従属し、正解文字は第1正解文字および当該第1正解文字に後続する第2正解文字を含む。正解判別ステップは、認識ステップによって行われた認識処理の結果が第1正解文字と一致するか否かを判別する第1正解判別ステップ(S17)、および第1正解判別ステップの判別結果が肯定的となった後に認識ステップによって行われた認識処理の結果が第2正解文字と一致するか否かを判別する第2正解判別ステップ(S49)を含む。第1正解判別ステップは、第2正解判別ステップの判別結果が否定的であり、かつ受付ステップによって受け付けられた手書き文字入力操作のストローク数が第1正解文字の最大ストローク数以下であるとき、すでに第1正解文字と一致すると判別されたストロークの全てと当該第2正解判別ステップによって判別されたストロークとを含めたストロークを認識ステップによって認識させ、当該認識処理の結果が第1正解文字と一致するか否かを判別する第3正解判別ステップ(S59)を含む。
【0012】
請求項2の発明に従えば、正解文字に第1正解文字および当該第1正解文字に後続する第2正解文字が含まれる場合の判別処理では、まず認識処理の結果が第1正解文字と一致するか否かを判別し、続いてこの第1判別処理の結果が肯定的となった後に行われた認識処理の結果が第2正解文字と一致するか否かを判別する。そして、この第2判別処理の結果が否定的であり、かつ受け付けられた手書き文字入力操作のストローク数が第1正解文字の最大ストローク数以下であれば、第1判別処理ですでに第1正解文字と一致すると判別されたストロークの全てと、第2判別処理の対象となったストロークとを含めたストロークを認識し、この認識処理の結果が第1正解文字と一致するか否かをさらに判別する(第3判別処理)。
【0013】
このように、第1および第2判別処理を実行した後、受け付けられた手書き文字入力操作のストローク数が第1正解文字の最大ストローク数以下であれば第3判別処理をさらに実行するので、第2判別処理の対象となったストロークが第1正解文字の一部であればそれがわかる。この結果、手書き入力文字が正解文字と一致するか否かの判別精度が高まり、ひいては不正解の通知タイミングが早まる。
【0014】
請求項3の発明に従う手書き学習支援プログラムは、請求項2に従属し、第2正解判別ステップは、第3正解判別ステップの判別が行われたとき、第1正解判別ステップで第1正解文字と一致すると判別されたストロークの少なくとも一部と当該第1正解判別ステップで第1正解文字と一致すると判別されたストロークの後に入力されたストロークとを含めたストロークを認識ステップによって認識させ、当該認識処理の結果が第2正解文字と一致するか否かを判別することを特徴とする。
【0015】
請求項3の発明では、第3判別処理が実行されたとき、第1正解文字と一致すると判別されたストロークの少なくとも一部と、第1正解文字と一致すると判別されたストロークの後に入力されたストロークとを含むストロークを認識ステップによって認識させ、当該認識処理の結果が第2正解文字と一致するか否かをさらに判別する(第4判別処理)。
【0016】
このように、第3判別処理と共に第4判別処理をさらに行うので、第1正解文字の一部とされたストロークが第2正解文字の一部であればそれがわかる。この結果、手書き入力文字が正解文字と一致するか否かの判別精度が一層高まり、ひいては不正解の通知タイミングがさらに早まる。
【0017】
請求項4の発明に従う手書き学習支援プログラムは、請求項2または3に従属し、ストローク数判別ステップは、第2正解判別ステップの判別結果が否定的であるとき受付ステップによって受け付けられた手書き文字入力操作のストローク数が第1特定文字および第2特定文字の合計最大ストローク数を上回るか否かを判別する合計ストローク数判別ステップ(S53)を含み、不正解通知ステップは合計ストローク数判別ステップの判別結果が肯定的であるとき通知処理を実行する。
【0018】
請求項4の発明では、認識処理の結果が第2特定文字と一致しないとき、受け付けられた手書き文字入力操作のストローク数が第1特定文字および第2特定文字の合計最大ストローク数を上回るか否かを判別して、かかる判別結果が肯定的であるとき不一致を通知するので、より早いタイミングで不一致を通知できる。
【0019】
請求項5の発明に従う手書き学習支援プログラムは、請求項2ないし4のいずれかに従属し、第1正解判別ステップの判別結果が肯定的であり、かつ第2正解判別ステップの判別結果が肯定的であった後に、次の手書き文字入力操作が行われた場合、第1正解判別ステップは、第2正解文字を第1正解文字として、認識ステップによって行われた認識処理の結果を判別し、第2正解判別ステップは、新たな正解文字を第2正解文字として、認識ステップによって行われた認識処理の結果を判別する。
【0020】
請求項5の発明によれば、任意の文字列を2文字単位で1文字ずつシフトしつつ認識することができる。
【0021】
請求項6の発明に従う手書き学習支援プログラムは、請求項1ないし5のいずれかに従属し、プロセサに、受付ステップによって最後に受付処理が実行されてからの経過時間が所定時間を超えたか否かを判別する経過時間判別ステップ(S9,S33)をさらに実行させる。不正解通知ステップは、経過時間判別ステップの判別結果が肯定的であるときさらに通知処理を実行する。
【0022】
請求項6の発明では、受付ステップによって最後に受付処理が実行されてからの経過時間が所定時間を超えたか否かは、経過時間判別ステップによって判別される。通知処理は、経過時間判別ステップの判別結果が肯定的であるときにも実行される。
【0023】
請求項6の発明によれば、不慣れな学習者は、一文字ずつ正誤を確認しながら入力でき
る。
【0024】
請求項7の発明に従う手書き文字認識プログラムは、タッチパネル(20)を有するコンピュータ装置(10)のプロセサ(42)に、手書き文字入力操作をタッチパネルを通してストローク単位で受け付ける受付ステップ(S7,S31)、受付ステップによる受け付けの度に認識処理を行う認識ステップ(S15,S47,S57)、および認識ステップによって行われた認識処理の結果が特定文字と一致するか否かを判別する一致判別ステップ(S17,S49,S59)を実行させる。特定文字は、第1特定文字および当該第1特定文字に後続する第2特定文字を含む。一致判別ステップは、認識ステップによって行われた認識処理の結果が第1特定文字と一致するか否かを判別する第1一致判別ステップ(S17)、および第1一致判別ステップの判別結果が肯定的となった後に認識ステップによって行われた認識処理の結果が第2特定文字と一致するか否かを判別する第2一致判別ステップ(S49)を含む。第1一致判別ステップは、第2一致判別ステップの判別結果が否定的であるとき認識ステップによって行われた全ての認識処理の結果が第1特定文字と一致するか否かを判別する第3一致判別ステップ(S59)を含む。
【0025】
請求項7の発明では、手書き文字入力操作は、受付ステップによって、タッチパネルを通してストローク単位で受け付けられる。認識ステップは、受付ステップによる受け付けの度に認識処理を行う。認識ステップによって行われた認識処理の結果が特定文字と一致するか否かは、一致判別ステップによって判別される。
【0026】
特定文字には、第1特定文字および当該第1特定文字に後続する第2特定文字が含まれる。一致判別ステップの判別処理では、認識ステップによって行われた認識処理の結果が第1特定文字と一致するか否かが第1一致判別ステップによって判別され、第1一致判別ステップの判別結果が肯定的となった後に認識ステップによって行われた認識処理の結果が第2特定文字と一致するか否かは、第2一致判別ステップによって判別される。この第2一致判別ステップの判別結果が否定的であり、かつ受け付けられた手書き文字入力操作のストローク数が第1特定文字の最大ストローク数以下であれば、第1判別処理ですでに第1特定文字と一致すると判別されたストロークの全てと、第2判別処理の対象となったストロークとを含めたストロークを認識し、この認識処理の結果が第1特定文字と一致するか否かをさらに判別する(第3判別処理)。
【0027】
このように、第1および第2判別処理を実行した後、受け付けられた手書き文字入力操作のストローク数が第1特定文字の最大ストローク数以下であれば第3判別処理をさらに実行するので、第2判別処理の対象となったストロークが第1正解文字の一部であればそれがわかる。この結果、手書き入力文字が特定文字と一致するか否かの判別精度が高まる。
【0028】
請求項8の発明に従う手書き文字認識プログラムは、請求項7に従属し、第2一致判別ステップは、第3一致判別ステップの判別が行われたとき、第1一致判別ステップで第1特定文字と一致すると判別されたストロークの少なくとも一部と当該第1一致判別ステップで第1特定文字と一致すると判別されたストロークの後に入力されたストロークとを含めたストロークを認識ステップによって認識させ、当該認識処理の結果が第2特定文字と一致するか否かを判別することを特徴とする。
【0029】
請求項8の発明では、第3判別処理が実行されたとき、第1特定文字と一致すると判別されたストロークの少なくとも一部と、第1特定文字と一致すると判別されたストロークの後に入力されたストロークとを含むストロークを認識ステップによって認識させ、当該認識処理の結果が第2特定文字と一致するか否かをさらに判別する(第4判別処理)。
【0030】
このように、第3判別処理と共に第4判別処理をさらに行うので、第1特定文字の一部とされたストロークが第2特定文字の一部であればそれがわかり、この結果、手書き入力文字が特定文字と一致するか否かの判別精度が一層高まる。
【0031】
請求項9の発明に従う手書き文字認識プログラムは、請求項8に従属し、コンピュータ装置は文字毎の最大ストローク数を記憶した記憶手段(104a)をさらに有する。このプログラムは、プロセサに、正解が予め判明している問題を出力する問題出力ステップ(S1)、問題出力ステップによって出力される問題に関連して実行される第2一致判別ステップの判別結果が否定的であるとき、受付ステップによって受け付けられた手書き文字入力操作のストローク数が第1特定文字および第2特定文字の合計最大ストローク数を上回るか否かを判別するストローク数判別ステップ(S53)、およびストローク数判別ステップの判別結果が肯定的であるとき不一致を通知する不一致通知ステップ(S37)をさらに実行させる。
【0032】
請求項9の発明では、問題は、問題出力ステップによって出力される。こうして出力される問題に関連して実行される第2一致判別ステップの判別結果が否定的であるとき、受付ステップによって受け付けられた手書き文字入力操作のストローク数が第1特定文字および第2特定文字の合計最大ストローク数を上回るか否かが、ストローク数判別ステップによって判別される。不一致通知ステップは、ストローク数判別ステップの判別結果が肯定的であるとき不一致を通知する。
【0033】
請求項9の発明によれば、認識処理の結果が第2特定文字と一致しないとき、受け付けられた手書き文字入力操作のストローク数が第1特定文字および第2特定文字の合計最大ストローク数を上回るか否かを判別して、かかる判別結果が肯定的であるとき不一致を通知するので、より早いタイミングで不一致を通知できる。
【0034】
請求項10の発明に従う手書き文字認識プログラムは、請求項7ないし9のいずれかに従属し、プロセサに、受付ステップによって最後に受付処理が実行されてからの経過時間が所定時間を超えたか否かを判別する経過時間判別ステップ(S9,S33)をさらに実行させる。不一致通知ステップは、経過時間判別ステップの判別結果が肯定的であるときさらに通知処理を実行する。
【0035】
請求項10の発明によれば、請求項6の発明と同様、不慣れな学習者は、一文字ずつ正誤を確認しながら入力できる。
【0036】
請求項11の発明に従う手書き学習支援装置は、タッチパネル(20)、文字毎の最大ストローク数を記憶した記憶手段(104a)、正解が予め判明している問題を出力する問題出力手段(22a,22b,S1)、問題出力手段によって出力された問題に関連する手書き文字入力操作をタッチパネルを通してストローク単位で受け付ける受付手段(S7,S31)、受付手段による受け付けの度に認識処理を行う認識手段(S15,S47,S57)、認識手段によって行われた認識処理の結果が正解文字と一致するか否かを判別する正解判別手段(S17,S49,S59)、正解判別手段の判別結果が否定的であるとき受付手段によって受け付けられた手書き文字入力操作のストローク数が正解文字の最大ストローク数を上回るか否かを判別するストローク数判別手段(S19,S53,S55)、およびストローク数判別手段の判別結果が肯定的であるとき不正解を通知する不正解通知手段(12,S21,S37)を備える。
【0037】
請求項11の発明でも、請求項1の発明と同様に、早いタイミングで不一致を通知できる。
【0038】
請求項12の発明に従う手書き文字認識装置は、タッチパネル(20)、手書き文字入力操作をタッチパネルを通してストローク単位で受け付ける受付手段(S7,S31)、受付手段による受け付けの度に認識処理を行う認識手段(S15,S47,S57)、および認識手段によって行われた認識処理の結果が特定文字と一致するか否かを判別する一致判別手段(S17,S49,S59)を備える。特定文字は、第1特定文字および当該第1特定文字に後続する第2特定文字を含む。一致判別手段は、認識手段によって行われた認識処理の結果が第1特定文字と一致するか否かを判別する第1一致判別手段(S17)、および第1一致判別手段の判別結果が肯定的となった後に認識手段によって行われた認識処理の結果が第2特定文字と一致するか否かを判別する第2一致判別手段(S49)を含む。第1一致判別手段は、第2一致判別手段の判別結果が否定的であり、かつ受付手段によって受け付けられた手書き文字入力操作のストローク数が第1特定文字の最大ストローク数以下であるとき、すでに第1特定文字と一致すると判別されたストロークの全てと当該第2一致判別手段によって判別されたストロークとを含めたストロークを認識手段によって認識させ、当該認識処理の結果が第1特定文字と一致するか否かを判別する第3一致判別手段(S59)を含む。
【0039】
請求項12の発明でも、請求項7の発明と同様に、手書き入力文字が特定文字と一致するか否かの判別精度が高まる。
【発明の効果】
【0040】
この発明によれば、文字認識の精度が高まり、また、より早いタイミングで不正解を通知できる。
【0041】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【0042】
【図1】この発明の一実施例の外観を示す図解図である。
【図2】図1実施例の内部構成の一例を示すブロック図である。
【図3】図1実施例に適用されるRAMのマッピング状態の一例を示す図解図である。
【図4】図1実施例に適用されるLCD表示例を示す図解図である。
【図5】図1実施例に適用される認識処理の一例を示す図解図である。
【図6】(A)は図1実施例に適用される認識処理の他の一例を示す図解図であり、(B)は図1実施例に適用される認識処理のその他の一例を示す図解図である。
【図7】(A)は図1実施例に適用される認識処理のさらにその他の一例を示す図解図であり、(B)は図1実施例に適用される認識処理の他の一例を示す図解図である。
【図8】(A)は図1実施例に適用される認識処理のその他の一例を示す図解図であり、(B)は図1実施例に適用される認識処理のさらにその他の一例を示す図解図であり、(C)は図1実施例に適用される認識処理の他の一例を示す図解図である。
【図9】図1実施例に適用される認識処理のその他の一例を示す図解図である。
【図10】(A)は図1実施例に適用される認識処理のさらにその他の一例を示す図解図であり、(B)は図1実施例に適用される認識処理の他の一例を示す図解図であり、(C)は図1実施例に適用される認識処理のその他の一例を示す図解図である。
【図11】(A)は図1実施例に適用される認識処理のさらにその他の一例を示す図解図であり、(B)は図1実施例に適用される認識処理の他の一例を示す図解図であり、(C)は図1実施例に適用される認識処理のその他の一例を示す図解図である。
【図12】図1実施例に適用されるCPUコアの動作の一部を示すフロー図である。
【図13】図1実施例に適用されるCPUコアの動作の他の一部を示すフロー図である。
【図14】図1実施例に適用されるCPUコアの動作のその他の一部を示すフロー図である。
【発明を実施するための形態】
【0043】
図1を参照して、この発明の一実施例であるゲーム装置10は、第1の液晶表示器(LCD)12および第2のLCD14を含む。このLCD12およびLCD14は、所定の配置位置となるようにハウジング16に収納される。この実施例では、ハウジング16は、上側ハウジング16aと下側ハウジング16bとによって構成され、LCD12は上側ハウジング16aに収納され、LCD14は下側ハウジング16bに収納される。したがって、LCD12とLCD14とは縦(上下)に並ぶように近接して配置される。
【0044】
なお、この実施例では、表示器としてLCDを用いるようにしてあるが、LCDに代えて、EL(Electronic Luminescence)ディスプレイなどを用いるようにしてもよい。
【0045】
図1からも分かるように、上側ハウジング16aは、LCD12の平面形状よりも大きな平面形状を有し、一方主面からLCD12の表示面を露出するように開口部が形成される。一方、下側ハウジング16bは、その平面形状が上側ハウジング16aと同程度に形成され、横方向の略中央部にLCD14の表示面を露出するように開口部が形成される。また、上側ハウジング16aには、LCD12を挟むように、右側に音抜き孔22aが、左側に音抜き孔22bが、左右対称に形成される。またハウジング16には操作スイッチ18(18a,18b,18c,18d,18e,18f,18h,18g,18Lおよび18R)が配置される。
【0046】
また、上側ハウジング16aと下側ハウジング16bとは、上側ハウジング16aの下辺(下端)と下側ハウジング16bの上辺(上端)の一部とが回動可能に連結されている。したがって、たとえば、ゲームをプレイしない場合には、LCD12の表示面とLCD14の表示面とが対面するように、上側ハウジング16aを回動させて折りたたんでおけ
ば、LCD12の表示面およびLCD14の表示面に傷がつくなどの破損を防止することができる。ただし、上側ハウジング16aと下側ハウジング16bとは、回動可能に連結せずに、それらを一体的(固定的)に設けたハウジング16を形成するようにしてもよい。
【0047】
操作スイッチ18は、方向指示スイッチ(十字スイッチ)18a,スタートスイッチ18b,セレクトスイッチ18c,動作スイッチ(Aボタン)18d,動作スイッチ(Bボタン)18e,動作スイッチ(Xボタン)18f,動作スイッチ(Yボタン)18g,電源スイッチ18h,動作スイッチ(Lボタン)18Lおよび動作スイッチ(Rボタン)18Rを含む。スイッチ18aおよび18hは、下側ハウジング16bの一方主面において、LCD14の左側に配置される。また、スイッチ18bないし18gは、下側ハウジング16bの一方主面において、LCD14の右側に配置される。さらに、スイッチ18Lおよびスイッチ18Rは、それぞれ、下側ハウジング16bの上端(天面)の一部において、上側ハウジング16aとの連結部以外に当該連結部を挟むように、左右に配置される。
【0048】
方向指示スイッチ18aは、ディジタルジョイスティックとして機能し、4つの押圧部の1つを操作することによって、プレイヤによって操作可能なプレイヤキャラクタ(またはプレイヤオブジェクト)の移動方向を指示したり、カーソルの移動方向を指示したりする等に用いられる。スタートスイッチ18bは、プッシュボタンで構成され、ゲームを開始(再開)したり、一時停止(Pause)したりする等に用いられる。セレクトスイッチ18cは、プッシュボタンで構成され、ゲームモードの選択等に用いられる。
【0049】
動作スイッチ18dすなわちAボタンは、プッシュボタンで構成され、方向指示以外の動作、すなわち、プレイヤキャラクタに打つ(パンチ)、投げる、つかむ(取得)、乗る、ジャンプするなどの任意のアクションをさせることができる。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かす等を指示することができる。また、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいては、アイテムの取得、武器またはコマンドの選択および決定等を指示することができる。動作スイッチ18eすなわちBボタンは、プッシュボタンで構成され、セレクトスイッチ18cで選択したゲームモードの変更やAボタン18dで決定したアクションの取り消し等のために用いられる。
【0050】
動作スイッチ18eすなわちXボタン、および動作スイッチ18fすなわちYボタンは、プッシュボタンで構成され、プッシュボタンAとプッシュボタンBだけでは、ゲーム進行ができないときに、補助的な操作ボタンとして用いられる。もちろん、ゲームプレイにおいてXボタンとYボタンを必ずしも使用しなくてよい。電源スイッチ18hは、ゲーム装置10の電源をオンオフするためのスイッチである。
【0051】
動作スイッチ18L(左押しボタン)および動作スイッチ18R(右押しボタン)は、プッシュボタンで構成され、左押しボタン(Lボタン)18Lおよび右押しボタン(Rボタン)18Rは、Aボタン18dおよびBボタン18eと同様の操作に用いることができ、また、Aボタン18dおよびBボタン18eの補助的な操作に用いることができる。
【0052】
また、このゲーム装置10はタッチパネルを用いたゲーム装置であり、LCD14の上面には、タッチパネル20が装着される。タッチパネル20としては、たとえば、抵抗膜方式、光学式(赤外線方式)および静電容量結合式のいずれかの種類のものを用いることができる。また、タッチパネル20は、その上面をスティック24ないしはペン(スタイラスペン)或いは指(以下、これらを「スティック24等」という場合がある。)で、押圧したり撫でたり(触れたり)することにより操作すると、スティック24等の座標位置を検出して座標データを出力する。
【0053】
なお、この実施例では、LCD14(LCD12も同じ、または略同じ。)の表示面の解像度は228dot×192dotであり、タッチパネル20の検出精度も表示画面に対応して228dot×192dotとしてあるが、タッチパネル20の検出精度は表示画面の解像度よりも低くてもよく、高くてもよい。
【0054】
この実施例では、たとえばタッチパネル20の設けられるLCD14には、プレイヤに見せかつ操作させるためのゲーム画面が表示され、LCD12にはプレイヤに見せるためのゲーム画面が表示される。具体的には、LCD12には横線と縦線で形成されたアミダくじのような軌道上をオブジェクトが移動してくる画像が表示される。LCD14に表示されるゲーム画面には、未完成のアミダくじのように、縦線のみが表示されており、プレイヤはLCD14に表示された縦線に対して、スティック24等で直接触れるようにしてタッチパネル20上に横線を描くような操作をする。こうして、LCD12に表示される軌道の続きをLCD14に描いて、移動してくるオブジェクトを所定位置に導くための軌道を作るのである。なお、LCD14は、ゲームの種類に応じてその他各種の入力指示を行うようにしてもよく、たとえばLCD14の表示画面に文字情報やアイコン等を表示してコマンドを選択させたりすることができる。
【0055】
このように、ゲーム装置10は、2画面分の表示部となるLCD12およびLCD14を有し、いずれか一方(この実施例では、LCD14)の表示画面上にタッチパネル20が設けられるので、2画面(LCD12,14)と2系統の操作部(18,20)を有する構成となるのである。
【0056】
また、この実施例では、スティック24は、たとえば上側ハウジング16aの中央より側面寄(右寄)に設けられる収納部(収納穴)(図示せず)に収納することができ、必要に応じて取り出される。ただし、スティック24を設けない場合には、収納部を設ける必要もない。
【0057】
さらに、ゲーム装置10はメモリカード(またはゲームカートリッジ)26を含み、このメモリカード26は着脱自在であり、下側ハウジング16bの裏面ないしは上端(側面)に設けられる挿入口(図示せず)から挿入される。図1では省略するが、挿入口の奥部には、メモリカード26の挿入方向先端部に設けられるコネクタ(図示せず)と接合するためのコネクタ46(図2参照)が設けられており、したがって、メモリカード26が挿入口に挿入されると、コネクタ同士が接合され、ゲーム装置10のCPUコア42(図2参照)がメモリカード26にアクセス可能となる。
【0058】
なお、図1では表現できないが、下側ハウジング16bの内部において、この下側ハウジング16bの音抜き孔22aと対応する位置には、右スピーカ30aおよび音抜き孔22bと対応する位置には、左スピーカ30b(図2参照)が設けられる。
【0059】
また、図1では省略するが、たとえば、下側ハウジング16bの裏面側には、電池収容ボックスが設けられ、また、下側ハウジング16bの底面側には、音量調節つまみ、外部拡張コネクタおよびイヤフォンジャックなどが設けられる。
【0060】
図2は、ゲーム装置10の電気的な構成を示すブロック図である。図2を参照して、ゲーム装置10は電子回路基板40を含み、この電子回路基板40にはCPUコア42等の回路コンポーネントが実装される。CPUコア42は、バス44を介して、コネクタ46,RAM48,第1のGPU(Graphic Processing Unit)52,第2のGPU54,I/F回路50,LCDコントローラ60およびワイヤレス通信ユニット64と接続される。
【0061】
コネクタ46には、上述したように、メモリカード26が着脱自在に接続される。メモリカード26は、ROM26aおよびRAM26bを含む。図示は省略するが、ROM26aおよびRAM26bは、バスで互いに接続され、かつコネクタ46と接合されるコネクタ(図示せず)に接続される。この結果、CPUコア42は、ROM26aおよびRAM26bにアクセスすることができる。
【0062】
ROM26aは、ゲーム装置10で実行すべきゲームのためのゲームプログラム、キャラクタ画像,背景画像,アイテム画像,メッセージ画像のような画像データ、効果音,BGM,キャラクタの擬制音のような音データなどを予め記憶する。バックアップRAM26bは、ゲームの途中データや結果データをセーブする。
【0063】
RAM48は、バッファメモリないしはワーキングメモリとして使用される。つまり、CPUコア42は、メモリカード26のROM26aに記憶されたゲームプログラム、および画像データ,音データ等のデータをRAM48にロードし、ロードしたゲームプログラムを実行する。また、CPUコア42は、ゲーム処理の進行に応じて、ゲームデータやフラグデータなどの一時的なデータをRAM48に記憶する。
【0064】
なお、ゲームプログラム、および画像データ,音データ等のデータは、一括して、または必要に応じて部分的かつ順次的にROM26aから読み出され、RAM48に記憶される。
【0065】
GPU52および54の各々は、描画手段の一部を形成し、たとえばシングルチップASICで構成される。GPU52または54は、CPUコア42からグラフィックスコマンド(作画命令)を受けたとき、このグラフィックスコマンドにしたがってゲーム画像データを生成する。ここで、CPUコア42は、グラフィックスコマンドに加えて、ゲーム画像データの生成に必要な画像生成プログラム(ゲームプログラムに含まれる。)をGPU52および54の各々に与える。
【0066】
ただし、グラフィックスコマンドの実行に必要なデータ(ポリゴン,テクスチャなどの画像データ)は、RAM48に格納され、GPU52または54によって取得される。
【0067】
また、GPU52にはVRAM56が接続され、GPU54にはVRAM58が接続される。GPU52は、作成したゲーム画像データをVRAM56に描画し、GPU54は、作成したゲーム画像データをVRAM58に描画する。
【0068】
VRAM56および58は、LCDコントローラ60に接続される。LCDコントローラ60はレジスタ62を含む。レジスタ62はたとえば1ビットで構成され、CPUコア42の指示によって“0”または“1”のデータ値を記憶する。LCDコントローラ60は、レジスタ62のデータ値が“0”であるとき、VRAM56に描画されたゲーム画像データをLCD14に出力し、VRAM58に描画されたゲーム画像データをLCD12に出力する。また、LCDコントローラ60は、レジスタ62のデータ値が“1”であるとき、VRAM56に描画されたゲーム画像データをLCD12に出力し、VRAM58に描画されたゲーム画像データをLCD14に出力する。
【0069】
I/F回路50には、操作スイッチ18,タッチパネル20,右スピーカ30aおよび左スピーカ30bが接続される。ここで、操作スイッチ18は、上述したスイッチ18a,18b,18c,18d,18e,18f,18g,18h,18Lおよび18Rである。操作スイッチ18が操作されると、対応する操作信号(操作データ)がI/F回路50を介してCPUコア42に入力される。タッチパネル20で検出された座標データも、I/F回路50を介してCPUコア42に入力される。また、CPUコア42は、BGM,効果音,キャラクタの擬制音などのゲームに必要な音データをRAM48から読み出し、I/F回路50を介して右スピーカ30aおよび左スピーカ30bから出力する。
【0070】
対戦モードが選択された状態では、相手方のゲーム装置との間で無線信号がワイヤレス通信ユニット64を通してやり取りされる。すなわち、ワイヤレス通信ユニット64は、相手方への通信データを無線信号に変調してアンテナ(図示せず)から送信し、また、相手方のゲーム装置からの無線信号を同じアンテナで受信して通信データに復調する。
【0071】
図3にはRAM48のメモリマップの一例が示される。RAM48は、メモリカード26のROM26aからロードされたプログラムを記憶するプログラム記憶領域70を含む。ロードされるプログラムは、問題出力プログラム72,タッチオンオフ検出プログラム74,タッチ軌跡一時記憶プログラム76,認識データ生成プログラム78,文字認識プログラム80,回答判定プログラム82,回答表示プログラム84,正解文字列制御プログラム86,タッチ軌跡(ストローク)制御プログラム88などを含む。
【0072】
なお、プログラム記憶領域70には、図示は省略しているが、ゲーム画像やゲーム音声を生成/出力するためのプログラムなど、その他のゲーム進行に必要な各種プログラムが記憶される。
【0073】
問題出力プログラム72は、スピーカ22aおよび22bから問題を出力するためのプログラムである。なお、問題はLCD12に表示してもよい。タッチオンオフ検出プログラム74は、タッチパネル20に対するタッチオンおよびタッチオフを検出し、検出結果に応じてタッチオンフラグをオン/オフするためのプログラムである。タッチ軌跡一時記憶プログラム76は、タッチオンからタッチオフまでのタッチ軌跡(手書き入力データ)を一時記憶するためのプログラムである。
【0074】
認識データ生成プログラム78は、文字認識処理の対象となるデータ(認識データ)を生成するためのプログラムである。このプログラムは、複数ストロークが入力されたとき、複数種類の認識データを準備する。
【0075】
文字認識プログラム80は、認識データ生成プログラム78によって生成された認識データに基づいて文字認識処理を実行するためのプログラムである。このプログラムは、認識データ生成プログラム78によって複数種類の認識データが準備された場合、生成された複数種類の認識データの各々に対して文字認識を行う。こうして得られる複数種類の認識結果のうち認識得点の最も高いものを採用することで、より的確な認識結果を得ることができる。
【0076】
回答判定プログラム82は、文字認識処理の結果つまり回答が正解か否かを判定するためのプログラムである。回答表示プログラム84は、LCD14に回答(入力タッチ軌跡)を表示するためのプログラムである。正解文字列制御プログラム86は、問題に対応する正解文字列を読み込んだり、読み込まれた正解文字列の中から認識対象文字を選択したりするためのプログラムである。タッチ軌跡制御プログラム88は、一時記憶されたタッチ軌跡(ストローク)の中から1つまたは複数の表示対象ストロークを選択して回答表示プログラム84に渡したり、一時記憶されたストロークの中から1つまたは複数の認識対象ストロークを選択して認識データ生成プログラム78に渡したりするためのプログラムである。
【0077】
また、RAM48は、データ記憶領域90を含む。データ記憶領域90は、タッチオンフラグ記憶領域92,タッチ軌跡一時記憶領域94a,マッチストローク数記憶領域94b,認識データ一時記憶領域96,認識結果一時記憶領域98,正解文字列記憶領域100,認識対象文字記憶領域102,最大ストローク数データ記憶領域104a,問題データ記憶領域104b,文字データ記憶領域104c,および認識辞書データ記憶領域106を有する。
【0078】
タッチオンフラグ記憶領域92は、タッチオンフラグを記憶するための領域である。タッチオンフラグは、タッチパネル20へのタッチオンが検出されたときタッチオンオフ検出プログラム74によってオンされ、同じくタッチオフが検出されるとオフされる。タッチ軌跡一時記憶領域94aは、タッチパネル20によって検出されたタッチ軌跡を一時記憶するための領域である。タッチ軌跡一時記憶領域94には、1ストローク目のタッチ軌跡,2ストローク目のタッチ軌跡,…が記憶される。マッチストローク数記憶領域94bは、文字1(C1)にマッチするストローク数を保持するための領域である。
【0079】
認識データ一時記憶領域96は、認識データ生成プログラム78によって生成された認識データを一時記憶するための領域である。認識結果一時記憶領域98は、認識データに基づく文字認識処理の結果を一時記憶するための領域である。正解文字列記録領域100は、問題に対応する正解文字列を記憶するための領域である。
【0080】
認識対象文字記憶領域102は、正解文字列記録領域100に記憶されている正解文字列のうち現在認識の対象となっている文字を記憶するための領域である。認識は2文字を単位として行われるため、認識対象文字記憶領域102には2つの文字(文字1よび文字2)が記憶される。
【0081】
最大ストローク数データ記憶領域104aには、ゲーム装置10で認識可能な全ての文字(ここでは英大文字A〜Z,英小文字a〜z,および数字0〜9)の各々について、手書き時の最大ストローク数が記憶される。例えば、文字“A”は、通常2ストロークまたは3ストロークで描かれるので、その最大ストローク数は“3”である。同様に、数字“1”は、通常1ストロークで描かれるため、最大ストローク数は“1”となる。
【0082】
問題データ記憶領域104bには、問題データが記憶される。文字データ記憶領域104cには、英大文字A〜Z,英小文字a〜z,および数字0〜9の文字データが記憶される。
【0083】
認識辞書データ記憶領域106は、文字認識処理で参照される認識辞書データを記憶するための領域である。この認識辞書データは、英大文字A〜Z,英小文字a〜z,および数字0〜9の各々の特徴データを含む。
【0084】
以上のように構成されたゲーム装置10では、書き取りゲームは、次のように進行する。図4を参照して、操作スイッチを介してゲーム開始操作が行われると、最初の問題“Thisis a pen.”に対応する音声がスピーカ22a,22bから出力される。かかる第1問の回答つまり“THIS…”が下側のLCD14上のタッチパネル20にスティック24で描かれると、その軌跡が検出され、検出されたタッチ軌跡つまり手書きデータがタッチ軌跡一時記憶領域に記憶される。検出されたタッチ軌跡は、LCD14に表示される。また、検出されたタッチ軌跡に対して文字認識処理が実行され、検出タッチ軌跡が正解文字として認識されると、その正解文字がLCD12に表示される。
【0085】
従って、手書き入力の進行に従い、LCD12には正解文字列“THIS…”が1文字ずつ追加表示されていく。一方、LCD14上のタッチ軌跡は、正解文字として認識され、そして正解文字がLCD12に表示されると消去される。
【0086】
文字認識処理は、図5に示すように、先頭の一文字を除き、連続する2文字を単位として行われる。“THIS…”の認識では、まず先頭文字“T”が認識対象文字記憶領域102の所定領域(レジスタC1)にセットされる。そして、タッチ軌跡一時記憶領域94に記憶されたタッチ軌跡がレジスタC1の文字と一致するか否かが判定される。
【0087】
かかる第1回目の認識処理の後、次の認識対象文字“H”がレジスタC2にセットされる。そして、タッチ軌跡一時記憶領域94に記憶されたタッチ軌跡がレジスタC2の文字と一致するか否かが判定される。
【0088】
かかる第2回目の認識処理で文字“H”が認識されると、認識対象は後方に一文字シフトする、すなわちC1およびC2には“H”および“I”がそれぞれセットされる。そして、タッチ軌跡データ記憶領域に記憶されたタッチ軌跡データがレジスタC2の文字“I”と一致するか否かが判別される。
【0089】
以降、末尾文字“N”が認識されるまで同様の認識処理が繰り返される。従って、10文字で構成される文字列“THISIS A PEN”については、計10回の認識処理が実行される。
【0090】
以下、認識処理の具体例を説明する。最初、文字列“THIS”に対応する認識処理を図6(A),図6(B),図7(A)および図7(B)により説明する。なお、誤入力ないしタイムアウトは発生しないものとする。図6(A)を参照して、第1回目の認識処理は、先頭文字つまり“T”が対象となる。“T”はレジスタC1に保持される。“T”の最大ストローク数は“2”である。
【0091】
最初のタッチ軌跡が検出される、つまり第1ストローク(S0)が入力されると、第1ストロークに対してC1文字“T”と一致するか否かの認識処理が実行され、ここでは不一致(×)と判定される。
【0092】
第2ストローク(S1)が入力されると、第1ストロークおよび第2ストロークに対してC1文字“T”と一致するか否かの認識処理が実行され、一致(○)と判定される。これにより、LCD12に“T”が表示される。なお、このとき“T”と一致すると判別されたストロークの数(=2)がマッチストローク数記憶領域94b内のレジスタM0に保持される。マッチストローク数は、継続認識(後述)に関連して利用される。
【0093】
図6(B)を参照して、第2回目の認識処理は、先頭の2文字が対象となる。従って、レジスタC1およびC2には“T”および“H”がそれぞれセットされる。文字“T”および“H”の最大ストローク数は“2”および“3”である。これを以下、認識対象文字(T,H),最大ストローク数(2,3)のように記述する。文字(T,H)の合計最大ストローク数は“5”となる。
【0094】
第3ストローク(S2)が入力されると、この第3ストロークに対してC2文字“H”と一致するか否かの認識処理が実行され、不一致と判定される。この時点で、第1〜第3ストロークは、タッチオフ軌跡記憶領域94a内の領域S0〜S2(図3参照)に一時保持されている。一時保持ストローク数(=3)は、文字“T”および“H”の合計最大ストローク数(=5)を超えていないが、文字“T”の最大ストローク数(=2)を超えたので、第1および第2ストロークは文字“T”と一致するとみなされる。このため、継続認識(後述)は行われない。
【0095】
第4ストローク(S3)が入力されると、第3ストロークおよび第4ストロークに対して同様の認識処理が実行され、ここでも不一致と判定される。第5ストローク(S4)が入力されると、第3ストローク,第4ストロークおよび第5ストロークに対して同様の認識処理が実行され、ここで一致と判定される。これにより、LCD12には“H”がさらに表示される。レジスタM0には“3”が保持される。
【0096】
図7(A)を参照して、第3回目の認識処理では、認識対象が後方に1文字シフトする。従って、レジスタC1およびC2には“H”および“I”がセットされる。領域S0〜S4に一時保持された第1〜第5ストロークのうち文字“T”に対応する第1および第2ストロークは破棄され、第3〜第5ストロークが領域S0〜S2にシフトされる。この結果、第3〜第5ストロークは第1〜第3ストロークとなり、次の入力ストロークは第4ストローク(S3)となる。文字(H,I)の最大ストローク数は(3,3)であり、合計最大ストローク数は“6”となる。
【0097】
第4ストロークが入力されると、C2文字“I”と一致するか否かの認識処理が実行され、不一致と判定される。この時点で、一時保持ストローク数(=4)は、文字“H”および“I”の合計最大ストローク数(=6)を超えていないが、文字“H”の最大ストローク数(=3)を超えたので、第1〜第3ストロークは文字“H”と一致するとみなされ、継続認識(後述)は行われない。
【0098】
第5ストロークが入力されると、第4ストロークおよび第5ストロークに対して同様の認識処理が実行され、一致と判定される。なお、判定は大文字だけでなく小文字についても行われており、ここでは小文字“i”について一致と判定されている。これにより、LCD12に正解文字“I”がさらに表示される。
【0099】
図7(B)を参照して、第4回目の認識処理では、レジスタC1およびC2に“I”および“S”がセットされる。第1〜第5ストロークのうち文字“H”に対応する第1〜第3ストロークが破棄され、第4および第5ストロークは領域S0およびS1にシフトされる。この結果、第4および第5ストロークは第1および第2ストロークとなり、次の入力ストロークは第3ストローク(S2)となる。レジスタM0には“2”が保持される。文字(I,S)の最大ストローク数は(3,1)であり、合計最大ストローク数は“4”となる。
【0100】
第3ストロークが入力されると、第3ストロークに対してC2文字“S”と一致するか否かの認識処理が実行され、不一致と判定される。この時点では、一時保持ストローク数(=3)は、文字“I”および“S”の合計最大ストローク数(=4)を超えておらず、文字“I”の最大ストローク数(=3)も超えていないので、継続認識が行われる。
【0101】
継続認識では、まず第1〜第3ストロークに対してC1文字“I” と一致するか否かがの認識処理が実行され、一致と判定される。これにより、第3ストロークは“I”の一部と判定される。レジスタM1に“3”が保持される。
【0102】
次に第4ストロークが入力されると、第4ストロークに対してC2文字“S”と一致するか否かの認識処理が実行され、一致と判定される。また、第4および第3ストロークに対してC2文字“S”と一致するか否かの認識処理が実行され、不一致と判定される。これにより、LCD12に正解文字“S”がさらに表示される。なお、これら2回の判定は、レジスタM0およびM1の保持値に基づく。すなわち、まずM0の保持値“3”に基づいて第4ストローク(S3)に対する認識が行われ、M1の保持値“2”に基づいて第4および第3ストローク(S3およびS2)に対する認識がさらに行われる。ただし、M0に基づく認識で、C2文字であると認識された場合は、その後のM1に基づく認識をしなくても良い。
【0103】
その後、レジスタC1およびC2に“S”および“A”がセットされ、同様の処理が行われる。
【0104】
次に、誤入力が発生した場合の文字認識処理を図8(A)〜図8(C)および図9により説明する。図8(A)を参照して、正解文字列“THI…”に対して“TAI…”が入力されたとする。図8(B)を参照して、先頭文字“T”は、図6(A)の“T”と同様に認識される。図8(C)を参照して、認識対象文字(T,H)の最大ストローク数は(2,3)であり、合計最大ストローク数は“5”である。第3ストロークが入力されると、第3ストロークがC2文字“H”と照合され、不一致と判定される。第4ストロークが入力されると、第4および第3ストロークがC2文字“H”と照合され、不一致と判定される。第5ストロークが入力されると、第5〜第3ストロークがC2文字“H”と照合され、不一致と判定される。この時点で、一時保持ストローク数が合計最大ストローク数に達したため、誤入力である旨がバツ印(×)で示される。
【0105】
続いて図9を参照して、C1文字“T”が正解となり、C2文字“H”が不正解となったため、今度は文字“H”をC1として照合を開始する。一方、プレイヤは、“A”が誤りであることがわかったので、“H…”を入力する。第1ストロークが入力されると、第1ストロークがC1文字“H”と照合され、不一致と判定される。第2ストロークが入力されると、第2および第1ストロークがC1文字“H”と照合され、不一致と判定される。第3ストロークが入力されると、第3〜第1ストロークがC1文字“H”と照合され、一致と判定される。こうして“H”が認識される。以降、同様の処理が繰り返される。
【0106】
次に、タイムアウトが発生した場合の文字認識処理を図10(A)〜図10(C)により説明する。図10(A)を参照して、“IAM…”の“I”の入力後にタイムアウトが発生したとする。図10(B)を参照して、先頭文字“I”は、第2ストロークが入力された時点で認識される。図10(C)を参照して、第3ストロークは、図7(B)の場合と同様、継続認識によって、“A”ではなく“I”の一部と判定される。そして最後の第3ストロークのタッチオフ後、無入力状態が一定時間継続するとタイムアウトと判定される。この場合、最後の第3ストロークが“I”の一部と判定されたため、誤入力ストロークは存在せず、エラー表示は行われない。タイムアウト後、次の文字“A”の認識に移る。
【0107】
次に、誤入力時にタイムアウトが発生した場合の文字認識処理を図11(A)〜図11(C)により説明する。図11(A)を参照して、正解文字列“IAM…”に対して“ILM…”を入力中にタイムアウトが発生したとする。図11(B)を参照して、先頭文字“I”は、第2ストロークが入力された時点で認識される。このとき、レジスタM0に“2”が保持される。図11(C)を参照して、第3ストロークは、図7(B)の場合と同様、継続認識によって、“A”ではなく“I”の一部と判定される。このとき、レジスタM1に“3”が保持される。
【0108】
続いて第4ストロークが入力されると、これが“A”と一致するかが判定され、不一致と判定される。また、第4および第3ストロークが“A”と一致するかがさらに判定され、ここでも不一致と判定される。なお、これら2回の判定も、図7(B)の場合と同様、レジスタM0およびM1の保持値に基づく。
【0109】
最後の第4ストロークのタッチオフ後、無入力状態が一定時間継続するとタイムアウトと判定される。この場合、第1〜第3ストロークが“I”と判定され、最後の第4ストロークは“A”と一致しなかったため誤入力ストロークと判定され、エラー表示が行われる。タイムアウト後、次の文字“A”の認識に移る。
【0110】
上記のようなゲームをプレイするとき、CPUコア42は、図12〜図14のフロー図に従う処理を実行する。図12を参照して、まずステップS1で問題をスピーカ30aおよび30bから出力する。続くステップS3では、出力された問題に対応する英数文字列の先頭文字を変数C1にセットする。なお、変数C1,C2は、認識対象文字記憶領域102(図3参照)に記憶される。ステップS5では、変数nSに“0”をセットし、かつ変数nMに“0”をセットする。セット後、ステップS7に移る。
【0111】
ここで、変数nSは、タッチ軌跡一時記憶領域94aに一時記憶されているストロークの数(ストローク配列の要素数)を意味する。一方、変数nMは、変数C1にマッチするストロークの数を意味する。従って、3つのストロークが一時記憶されているとして、そのうち2つがC1文字にマッチする場合、nS=3,nM=2となる。
【0112】
ステップS7では、ストローク入力の有無を判別し、NOであればステップS9で、最後のタッチオフから一定時間が経過しているか否かをさらに判別する。タッチパネル20への入力がない状態つまり無入力状態が一定時間以上継続するとステップS9でYESと判別し、ステップS11に移って変数nSが0より大きいか否かを判別する。ここでNOであればステップS7に戻り、YESであればステップS21に進む。ステップS21では、誤入力である旨を通知する。通知は、例えばLCD14にバツ印(×)を表示することによって行う(図9参照)。通知後、ステップS5に戻る。
【0113】
タッチパネル20によってタッチ軌跡が検出されると、ステップS7でYESと判別し、ステップS13に移る。ステップS13では、検出されたタッチ軌跡つまり入力ストロークを領域S[nS]に保存し、かつ変数nSをインクリメントする。ここで領域S[nS]は、タッチ軌跡記憶一時記憶領域94aに含まれる領域S0,S1,…のいずれか1つに対応する(図3参照)。従って、例えば、最初に検出されたタッチ軌跡つまり第1ストロークは領域S0に保持され、次の第2ストロークは領域S1に保持されることになる。
【0114】
次のステップS15では、領域S[0〜(nS−1)]を対象として認識処理を実行する。そしてステップS17で認識結果が変数C1にマッチするか否かを判別し、YESであればステップS23に移る。従って、例えば第1ストロークが入力されたとき、第1ストロークは変数C1の正解文字と照合される。ここでマッチせず、第2ストロークが入力されると、第1ストロークおよび第2ストロークがC1と照合される(図6(A)参照)。
【0115】
ステップS17でNOであれば、ステップS19で変数nSが変数MAX(C1)以上であるか否かを判別し、ここでNOであればステップS7に戻る。一方、YESであれば、ステップS21でエラー通知を行った後、ステップS5に戻る。ここで変数MAX(C1)は、変数C1にセットされた正解文字の最大ストローク数を示す。文字毎の最大ストローク数を記述した最大ストローク数データは、最大ストローク数データ記憶領域104aに格納されている。従って、一時記憶されているストロークの数が正解文字の最大ストローク数に達した時点で、領域[0〜(nS−1)]のストロークが変数C1の文字にマッチしなければ、かかるストロークは誤入力と見なされ、再入力が受け付けられる。
【0116】
図13を参照して、ステップS23では、変数C1を正解としてLCD12に表示する。続くステップS25では、変数C1が問題文字列の最後の文字か否かを判別し、YESであれば、この問題の認識処理を終了する。ステップS25でNOであれば、ステップS27で次の文字を変数C2にセットし、さらにステップS29で、領域M[nM]に変数nSを保持し、かつ変数nMをインクリメントする。ここで領域M[nM]は、マッチストローク数記憶領域94bに含まれる領域M0,M1,…のいずれか1つに対応する(図3参照)。
【0117】
続くステップS31では、ストローク入力の有無を判別し、ここでYESであればステップ41に進む。一方、NOであればステップS33で、最後のタッチオフから一定時間が経過しているか否かをさらに判別する。無入力状態が一定時間以上継続するとステップS33でYESと判別し、ステップS35に移る。ステップS35では、変数nSが領域M[nM−1]の保持番号と一致するか否か、つまり、一時記憶されているストロークの数が、C1マッチと判別されたストロークの数と一致するか否かを判別する。
【0118】
ここでNOであればステップS37に移って、C1とマッチすると判別されたストローク以降の入力ストロークについて、誤入力である旨を通知する(図11(C)参照)。通知後、ステップS39に移る。ステップS35でYESであれば、直ちにステップS39に移る。
【0119】
ステップS39では、変数C2の値を変数C1にセットする。つまり、変数C1の値は、変数C2の値によって上書きされる。セット後、ステップS5に戻る。
【0120】
図14を参照して、ステップS41では、入力ストロークを領域S[nS]に保持し、かつ変数nSをインクリメントする。続くステップS43では変数nMから“1”を減じた値を変数aにセットし、そしてステップS45で変数aが“0”以上か否かを判別する。ステップS45でYESであれば、ステップS47に移る。ステップS45でNOであればステップS53(後述)に移る。
【0121】
ステップS47では、領域S[M[a]〜(nS−1)]を対象として文字認識処理を実行する。そして、ステップS49で認識結果が変数C2にマッチするか否かを判別し、YESであればステップS51に移る。ステップS51では、領域S[M[a]〜(nS−1)]の保持内容を領域S[0〜(nS−M[a]−1)]にシフトし、変数nSから領域M(a)の値を減じた値を新たな変数nSとし、変数nMを“0”とし、そして変数C1に変数C2の値をセットする。これにより、問題文字列において、認識対象が一文字後方にシフトする。セット後、ステップS23に戻る。
【0122】
ステップS49でNOであれば、ステップS50に移って変数aをデクリメントし、その後、ステップS45に戻る。
【0123】
ステップS45でNOであれば、ステップS53に移って、関係式“nS≧MAX(C1)+MAX(C2)”が満足されるか否かを判別し、ここでYESであればステップS37に移る。ステップS53でNOであれば、ステップS55で関係式“nS≧MAX(C1)”が満足されるか否かをさらに判別し、ここでYESであればステップS31に移る。
【0124】
ステップS55でNOであれば、ステップS57で領域S[0〜(nS−1)]を対象として文字認識処理を実行する。そしてステップS59で認識結果が変数C1にマッチするか否かを判別し、YESであればステップS29に移る。ステップS59でNOであればステップS31に移る。
【0125】
従って、一時保持ストローク数がC1文字およびC2文字の合計最大ストローク数を超えると、C1マッチストローク以降の入力ストロークが間違いである旨が通知される(図8(C),図9参照)。一時保持ストローク数が合計最大ストローク数を超えてはいないが、C1文字の最大ストローク数を超えていれば、引き続きストローク入力が受け付けられる。一時保持ストローク数がC1文字の最大ストローク数に達するまでの間、全ての一時保持ストロークに対して認識処理が実行される。そして、ストローク入力待ちに移行し、次のストロークが受け付けられると、変数aの値をデクリメントしつつ領域S[M[a]〜(nS−1)]を認識する処理が繰り返し実行される。図7(B)の例では、第4ストロークが入力されたとき、a=1なので、まずa=1として1回目の認識処理が実行され、次にa=0として2回目の認識処理が実行される。
【0126】
以上から明らかなように、この実施例では、CPUコア42は、正解が予め判明している問題を出力し(S1)、出力された問題に関連する手書き文字入力操作をタッチパネル20を通してストローク単位で受け付ける(S7,S31)。かかる受け付けの度に認識処理を行い(S15,S47,S57)、行われた認識処理の結果が正解文字と一致するか否かを判別する(S17,S49,S59)。この判別結果が否定的であるとき、受け付けられた手書き文字入力操作のストローク数が正解文字の最大ストローク数を上回るか否かをさらに判別し(S19,S53,S55)、そしてこの判別結果が肯定的であるとき不正解を通知する(S21,S37)。
【0127】
このように、手書き文字入力操作をストローク単位で受け付け、受け付けの度に認識処理を行い、認識処理の結果が正解文字と一致しないとき、受け付けられた手書き文字入力操作のストローク数が正解文字の最大ストローク数を上回るか否かを判別して、かかる判別結果が肯定的であるとき不正解を通知するので、早いタイミングで不正解を通知することできる。その結果、待ち時間が短縮され、効果的な学習が行えるようになる。
【0128】
また、正解文字は、第1正解文字および当該第1正解文字に後続する第2正解文字を含む。正解判別では、まず、行われた認識処理の結果が第1正解文字と一致するか否かを判別し(第1判別処理:S17)、次に、この第1判別処理の結果が肯定的となった後に認識ステップによって行われた認識処理の結果が第2正解文字と一致するか否かを判別する(第2判別処理:S49)。そして、この第2判別処理の結果が否定的であるとき、第1判別処理の結果が肯定的となった後に行われた認識処理の結果(“後”認識結果)が第1正解文字と一致するか否かを判別する(第3判別処理:S59)。
【0129】
このように、第1および第2判別処理を実行した後、受け付けられた手書き文字入力操作のストローク数が第1正解文字の最大ストローク数以下であれば第3判別処理をさらに実行するので、第2判別処理の対象となったストロークが第1正解文字の一部であればそれがわかる。この結果、手書き入力文字が正解文字と一致するか否かの判別精度が高まり、ひいては不正解の通知タイミングが早まる。
【0130】
さらには、第3判別処理が実行されたとき、第1正解文字と一致すると判別されたストロークの少なくとも一部と、第1正解文字と一致すると判別されたストロークの後に入力されたストロークとを含むストロークを認識ステップによって認識させ、この認識処理の結果が第2正解文字と一致するか否かをさらに判別する(第4判別処理)。
【0131】
このように、第3判別処理と共に第4判別処理を行うことで、第1正解文字の一部とされたストロークが第2正解文字の一部であればそれがわかる。この結果、手書き入力文字が正解文字と一致するか否かの手書き入力文字が正解文字と一致するか否かの判別精度が一層高まり、ひいては不正解の通知タイミングがさらに早まる。
【0132】
なお、以上では、スピーカ22a等から出力される英文を書き取る書き取りゲームを用いて説明したが、この発明は、正解が予め判明している問題を出力し、出力された問題に関連する手書き文字入力操作をタッチパネルを通して受け付け、受け付けられた入力操作に対応する手書き文字を認識し、認識された文字が正解か否かを判別し、そして判別結果を通知することによってユーザの学習を支援する、学習支援プログラムに適用できる。また、学習支援プログラムに限らず、手書き文字入力操作をタッチパネルを通して受け付け、受け付けられた入力操作に対応する手書き文字を認識する、文字認識プログラムにも適用できる。
【符号の説明】
【0133】
10 …ゲーム装置
12,14 …LCD
18a−18h,18Lおよび18R …操作スイッチ
20 …タッチパネル
24 …スティック
26 …メモリカード
42 …CPUコア
48 …RAM
50 …I/F回路
52,54 …GPU
56,58 …VRAM
60 …LCDコントローラ

【特許請求の範囲】
【請求項1】
タッチパネルと、文字毎の最大ストローク数を記憶した記憶手段とを有するコンピュータ装置のプロセサに、
正解が予め判明している問題を出力する問題出力ステップ、
前記問題出力ステップによって出力された問題に関連する手書き文字入力操作を前記タッチパネルを通してストローク単位で受け付ける受付ステップ、
前記受付ステップによる受け付けの度に認識処理を行う認識ステップ、
前記認識ステップによって行われた認識処理の結果が正解文字と一致するか否かを判別する正解判別ステップ、
前記正解判別ステップの判別結果が否定的であるとき前記受付ステップによって受け付けられた手書き文字入力操作のストローク数が前記正解文字の最大ストローク数を上回るか否かを判別するストローク数判別ステップ、および
前記ストローク数判別ステップの判別結果が肯定的であるとき不正解を通知する不正解通知ステップを実行させるための、手書き学習支援プログラム。
【請求項2】
前記正解文字は第1正解文字および当該第1正解文字に後続する第2正解文字を含み、
前記正解判別ステップは、
前記認識ステップによって行われた認識処理の結果が前記第1正解文字と一致するか否かを判別する第1正解判別ステップ、および
前記第1正解判別ステップの判別結果が肯定的となった後に前記認識ステップによって行われた認識処理の結果が前記第2正解文字と一致するか否かを判別する第2正解判別ステップを含み、
前記第1正解判別ステップは、前記第2正解判別ステップの判別結果が否定的であり、かつ前記受付ステップによって受け付けられた手書き文字入力操作のストローク数が前記第1正解文字の最大ストローク数以下であるとき、すでに前記第1正解文字と一致すると判別されたストロークの全てと当該第2正解判別ステップによって判別されたストロークとを含めたストロークを前記認識ステップによって認識させ、当該認識処理の結果が前記第1正解文字と一致するか否かを判別する第3正解判別ステップを含む、請求項1記載の手書き学習支援プログラム。
【請求項3】
前記第2正解判別ステップは、前記第3正解判別ステップの判別が行われたとき、前記第1正解判別ステップで前記第1正解文字と一致すると判別されたストロークの少なくとも一部と当該第1正解判別ステップで前記第1正解文字と一致すると判別されたストロークの後に入力されたストロークとを含めたストロークを前記認識ステップによって認識させ、当該認識処理の結果が前記第2正解文字と一致するか否かを判別することを特徴とする、請求項2記載の手書き学習支援プログラム。
【請求項4】
前記ストローク数判別ステップは、前記第2正解判別ステップの判別結果が否定的であるとき前記受付ステップによって受け付けられた手書き文字入力操作のストローク数が前記第1特定文字および前記第2特定文字の合計最大ストローク数を上回るか否かを判別する合計ストローク数判別ステップを含み、
前記不正解通知ステップは前記合計ストローク数判別ステップの判別結果が肯定的であるとき通知処理を実行する、請求項2または3記載の手書き学習支援プログラム。
【請求項5】
前記第1正解判別ステップの判別結果が肯定的であり、かつ前記第2正解判別ステップの判別結果が肯定的であった後に、次の手書き文字入力操作が行われた場合、
前記第1正解判別ステップは、前記第2正解文字を第1正解文字として、前記認識ステップによって行われた認識処理の結果を判別し、
前記第2正解判別ステップは、新たな正解文字を第2正解文字として、前記認識ステ
ップによって行われた認識処理の結果を判別する、請求項2ないし4のいずれかに記載の手書き学習支援プログラム。
【請求項6】
前記プロセサに、前記受付ステップによって最後に受付処理が実行されてからの経過時間が所定時間を超えたか否かを判別する経過時間判別ステップをさらに実行させ、
前記不正解通知ステップは、前記経過時間判別ステップの判別結果が肯定的であるときさらに通知処理を実行する、請求項1ないし5のいずれかに記載の手書き学習支援プログラム。
【請求項7】
タッチパネルを有するコンピュータ装置のプロセサに、
手書き文字入力操作を前記タッチパネルを通してストローク単位で受け付ける受付ステップ、
前記受付ステップによる受け付けの度に認識処理を行う認識ステップ、および
前記認識ステップによって行われた認識処理の結果が特定文字と一致するか否かを判別する一致判別ステップを実行させ、
前記特定文字は第1特定文字および当該第1特定文字に後続する第2特定文字を含み、
前記一致判別ステップは、
前記認識ステップによって行われた認識処理の結果が前記第1特定文字と一致するか否かを判別する第1一致判別ステップ、および
前記第1一致判別ステップの判別結果が肯定的となった後に前記認識ステップによって行われた認識処理の結果が前記第2特定文字と一致するか否かを判別する第2一致判別ステップを含み、
前記第1一致判別ステップは、前記第2一致判別ステップの判別結果が否定的であり、かつ前記受付ステップによって受け付けられた手書き文字入力操作のストローク数が前記第1特定文字の最大ストローク数以下であるとき、すでに前記第1特定文字と一致すると判別されたストロークの全てと当該第2一致判別ステップによって判別されたストロークとを含めたストロークを前記認識ステップによって認識させ、当該認識処理の結果が前記第1特定文字と一致するか否かを判別する第3一致判別ステップを含む、手書き文字認識プログラム。
【請求項8】
前記第2一致判別ステップは、前記第3一致判別ステップの判別が行われたとき、前記第1一致判別ステップで前記第1特定文字と一致すると判別されたストロークの少なくとも一部と当該第1一致判別ステップで前記第1特定文字と一致すると判別されたストロークの後に入力されたストロークとを含めたストロークを前記認識ステップによって認識させ、当該認識処理の結果が前記第2特定文字と一致するか否かを判別することを特徴とする、請求項7記載の手書き文字認識プログラム。
【請求項9】
前記コンピュータ装置は文字毎の最大ストローク数を記憶した記憶手段をさらに有し、
前記プロセサに、
正解が予め判明している問題を出力する問題出力ステップ、
前記問題出力ステップによって出力される問題に関連して実行される前記第2一致判別ステップの判別結果が否定的であるとき、前記受付ステップによって受け付けられた手書き文字入力操作のストローク数が前記第1特定文字および前記第2特定文字の合計最大ストローク数を上回るか否かを判別するストローク数判別ステップ、および
前記ストローク数判別ステップの判別結果が肯定的であるとき不一致を通知する不一致通知ステップをさらに実行させる、請求項8記載の手書き文字認識プログラム。
【請求項10】
前記プロセサに、前記受付ステップによって最後に受付処理が実行されてからの経過時間が所定時間を超えたか否かを判別する経過時間判別ステップをさらに実行させ、
前記不一致通知ステップは、前記経過時間判別ステップの判別結果が肯定的であるとき
さらに通知処理を実行する、請求項7ないし9のいずれかに記載の手書き文字認識プログラム。
【請求項11】
タッチパネル、
文字毎の最大ストローク数を記憶した記憶手段、
正解が予め判明している問題を出力する問題出力手段、
前記問題出力手段によって出力された問題に関連する手書き文字入力操作を前記タッチパネルを通してストローク単位で受け付ける受付手段、
前記受付手段による受け付けの度に認識処理を行う認識手段、
前記認識手段によって行われた認識処理の結果が正解文字と一致するか否かを判別する正解判別手段、
前記正解判別手段の判別結果が否定的であるとき前記受付手段によって受け付けられた手書き文字入力操作のストローク数が前記正解文字の最大ストローク数を上回るか否かを判別するストローク数判別手段、および
前記ストローク数判別手段の判別結果が肯定的であるとき不正解を通知する不正解通知手段を備える、手書き学習支援装置。
【請求項12】
タッチパネル、
手書き文字入力操作を前記タッチパネルを通してストローク単位で受け付ける受付手段、
前記受付手段による受け付けの度に認識処理を行う認識手段、および
前記認識手段によって行われた認識処理の結果が特定文字と一致するか否かを判別する一致判別手段を備え、
前記特定文字は第1特定文字および当該第1特定文字に後続する第2特定文字を含み、
前記一致判別手段は、
前記認識手段によって行われた認識処理の結果が前記第1特定文字と一致するか否かを判別する第1一致判別手段、および
前記第1一致判別手段の判別結果が肯定的となった後に前記認識手段によって行われた認識処理の結果が前記第2特定文字と一致するか否かを判別する第2一致判別手段を含み、
前記第1一致判別手段は、前記第2一致判別手段の判別結果が否定的であり、かつ前記受付手段によって受け付けられた手書き文字入力操作のストローク数が前記第1特定文字の最大ストローク数以下であるとき、すでに前記第1特定文字と一致すると判別されたストロークの全てと当該第2一致判別手段によって判別されたストロークとを含めたストロークを前記認識手段によって認識させ、当該認識処理の結果が前記第1特定文字と一致するか否かを判別する第3一致判別手段を含む、手書き文字認識装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2012−8589(P2012−8589A)
【公開日】平成24年1月12日(2012.1.12)
【国際特許分類】
【出願番号】特願2011−172486(P2011−172486)
【出願日】平成23年8月8日(2011.8.8)
【分割の表示】特願2005−336865(P2005−336865)の分割
【原出願日】平成17年11月22日(2005.11.22)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】