説明

ゲーム装置および手書き入力プログラム

【構成】 ゲーム装置は、LCD12に、たとえば9×9の桝目の数独パズルのゲーム画面を表示し、LCD14にそのうちの空桝目(解答対象の桝目)62AAを拡大表示する。LCD14の上にタッチパネル24を設けているので、プレイヤは、ステッィク等26で、そのタッチパネル上に、その枡目に埋めるための数字を手書きする。手書き領域が桝目62AAに対してある程度以上大きいときは、そのときは、解答数字を入力したものとして、その解答数字を大きく表示する。手書き領域が桝目に対してあまり大きくないときには、メモ数字を入力したものとして、そのメモ数字を桝目の中の小さな領域に表示する。ただし、このメモ数字を解答数字として確定すれば、その解答数字に従って、ゲーム判定が行われる。
【効果】 解答数字だけでなく、メモ数字を入力してそれを表示できるので、桝目に入れる数字の候補をたとえば紙などの別の媒体にメモ書きするなどの煩わしい操作が不要である。

【発明の詳細な説明】
【技術分野】
【0001】
この発明はゲーム装置およびゲームプログラムに関し、特にたとえば「数独」(商品名)パズルなどのように、枡目の中に文字,数字あるいは記号などを埋めていくパズルゲームのようなゲームをプレイする、ゲーム装置および手書き入力プログラムに関する。
【背景技術】
【0002】
この発明の背景となる数独パズルについては、たとえば非特許文献1および非特許文献2などに開示されている。これらによれば、数独パズルとは、3×3のブロックに区切られた9×9の正方形の枠内の各桝目に所定の条件に従って1〜9までの数字を入れるペンシルパズルの1つであり、その桝目のいくつかには、数字がヒントとして予め記入されており、その状態から空いている枡目を全て埋めるものである。
【0003】
このような数独パズルを、たとえば「ニンテンドーDS」(商品名)のような電子ゲーム機を使って、あるいはタッチスクリーンつきのコンピュータを使ってプレイするようにすれば、解答を紙に記録することなく直接ゲーム画面に手書きすることができる。
【0004】
この場合、たとえば特許文献1に記載の技術では、表にデータを入力するときに、手書き入力しやすくするため、入力に際してはその入力領域を拡大表示するようにしている。
【0005】
また、特許文献2に記載の技術では、手書き入力をどの範囲で行うのかに応じて、認識結果を大きく表示したり、小さく表示したりできるようにしている。
【非特許文献1】http://www.nikoli.co.jp/puzzles/
【非特許文献2】http://ja.wikipedia.org/wiki/
【特許文献1】特公平8−27690号公報
【特許文献2】特公平7−66422号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
しかしながら、特許文献1に代表されるような、1つの手書き入力領域に対して1つの認識結果を1つの態様で表示する場合、たとえば数独などに代表されるパズルにおいて、複数の入力候補を予めメモ書きしておきたい場合には、最終入力が確定するまでプレイヤは他の媒体に候補を書いておく必要があった。したがって、手書き入力装置を用いたときの、紙が不要となるという利便性が損なわれることになる。
【0007】
さらに、特許文献2に記載の技術では、たとえば小さい文字で認識結果を複数表示したいときには、プレイヤは対応する小さな領域で手書き入力を行わねばならない。したがって、手書き入力ができる領域を、ある程度の大きさで確保できるような場合でなければ、この技術を導入することは困難である。
【0008】
それゆえに、この発明の主たる目的は、新規な、枡目に文字を埋めるゲームをプレイするゲーム装置を提供することである。
【0009】
この発明の他の目的は、解答文字だけでなくメモ文字も、入力できかつプレイヤに見えるように表示できる、ゲーム装置を提供することである。
【0010】
この発明のさらに他の目的は、タッチパネルやタッチスクリーンを用いて解答文字やメモ文字を手書き入力するとき、手書き入力方法の大きな変更をプレイヤに強いることなく、解答文字かメモ文字かを自動的に識別できる、ゲーム装置を提供することである。
【0011】
この発明のさらに他の目的は、新規な、手書き入力プログラムを提供することである。
【課題を解決するための手段】
【0012】
請求項1の発明は、枡目に文字を埋めるゲームをプレイするゲーム装置であって、解答文字を入力する解答文字入力手段、解答文字入力手段によって解答文字が入力されたときその解答文字を表示する解答文字表示手段、解答文字に基づいてゲーム判定を行うゲーム判定手段、ゲーム判定手段によるゲーム判定の結果を表示する結果表示手段、メモ文字を入力するメモ文字入力手段、メモ文字入力手段によって入力されたメモ文字を表示するメモ文字表示手段、およびメモ文字を解答文字に確定するための確定手段を備える、ゲーム装置である。
【0013】
請求項1の発明において、ゲーム装置(10:は実施例で相当する部分を参考に示す参照符号。以下同じ。)は、たとえばパズルゲームのような、枡目に文字を埋めるゲームをプレイするゲーム装置である。そのようなゲーム装置は、解答文字を入力する解答文字入力手段を備えるが、実施例では、この手段は、タッチパネル(24)やそれからの信号またはデータを処理するCPUコア(34)を含み、解答文字はたとえば手書き入力される。
【0014】
そして、解答文字入力手段によって解答文字が入力されたとき、解答文字表示手段(14,34,S123,S153,S179)がその解答文字を、たとえば桝目に全面表示または大表示する。たとえばCPUコア(34)が含まれ得るゲーム判定手段が、解答文字に基づいてゲーム判定(S25)を行う。同じくCPUコアのような結果表示手段は、ゲーム判定手段によるゲーム判定の結果を表示する(S27)。また、メモ文字入力手段(24,34)がメモ文字を入力する。メモ文字表示手段(14,34,S133,S163,S177)が、メモ文字入力手段によって入力されたメモ文字を表示する。具体的には、実施例では、メモ文字は桝目の中の小さな領域に表示される。ただし、確定手段(34,S19)によってどれかのメモ文字を解答文字に確定すれば、その解答文字に従って、上記ゲーム判定手段がゲーム判定を行う。
【0015】
請求項1の発明によれば、解答文字だけでなく、メモ文字を入力してそれを表示できるので、桝目に入れる文字の候補をたとえば紙などの別の媒体にメモ書きするなどの煩わしい操作が不要である。
【0016】
請求項2の発明は、メモ文字入力手段は複数のメモ文字を入力可能であり、メモ文字表示手段は複数のメモ文字を同時に表示する、請求項1記載のゲーム装置である。
【0017】
請求項2の発明では、メモ文字入力手段(24,34)が複数のメモ文字を入力したときは、メモ文字表示手段(14,34,S133,S163,S177)は、それらの複数のメモ文字を同時に表示する。実施例では、最大9個までのメモ文字を入力でき、メモ文字は小さい領域に表示されるので、複数の異なる領域に異なるメモ文字が表示される。したがって、複数のメモ文字の中から確からしい1つの解答文字を選択することができる。
【0018】
請求項3の発明は、解答文字入力手段およびメモ文字入力手段は、規定された手書き領域を有する手書き入力手段、手書き入力手段による手書き入力の軌跡を記憶する軌跡記憶手段、軌跡に従って手書き文字を認識する文字認識手段、および軌跡に基づいて、そのときの手書き文字の大きさが所定の大きさより大きいかどうか判定する大きさ判定手段を含み、大きさ判定手段の肯定的判定に応じて解答文字入力手段が、大きさ判定手段の否定的判定に応じてメモ文字入力手段が、それぞれ、文字認識手段によって認識した文字を解答文字またはメモ文字として採用する、請求項1または2記載のゲーム装置である。
【0019】
請求項3の発明では、解答文字入力手段およびメモ文字入力手段は、同じもので構成される。つまり、規定された手書き領域を有する手書き入力手段(24)と、手書き入力手段による手書き入力の軌跡を記憶する軌跡記憶手段(42,42b1,S103)、軌跡に従って手書き文字を認識する文字認識手段(S109,S143,S169)、および軌跡に基づいて、そのときの手書き文字の大きさが所定の大きさより大きいかどうか判定する大きさ判定手段(S119,S149,S175)を含む。大きさ判定手段が肯定的に判定したとき、つまり、手書き領域の大きさが或る程度以上のとき、その判定に応じて解答文字入力手段が、大きさ判定手段の否定的判定に応じてメモ文字入力手段が、それぞれ、文字認識手段によって認識した文字を解答文字またはメモ文字として採用する(S123,S133,S153,S163,S179,S177)。
【0020】
請求項3の発明によれば、解答文字入力手段およびメモ文字入力手段が同じ手書き入力システムで構成され、しかも、大幅に異なる操作方法なしに自然に解答文字とメモ文字とを区別して入力することができるので、プレイヤに余分な負担や煩わしさを強いることがない。
【0021】
請求項4の発明は、軌跡記憶手段は1ストローク毎に軌跡を記憶し、さらにストローク数をカウントするストロークカウンタを備え、文字認識手段は、ストロークカウンタのカウント値が所定値でないとき、前ストロークおよび現ストロークの両方の軌跡に基づいて手書き文字を認識する、請求項3記載のゲーム装置である。
【0022】
請求項4の発明では、たとえばRAM(42)内にストロークカウンタ(42b4)が設けられ、そのストロークカウンタがストローク数をカウントする。文字認識手段は、ストロークカウンタのカウント値が所定値(たとえば「0」)でないとき、前ストロークおよび現ストロークの両方の軌跡に基づいて手書き文字を認識する(S143)。そのため2ストロークを基本とする文字も特別な意識なしに、普通に紙に書くように手書き入力することができる。
【0023】
請求項5の発明は、メモ文字表示手段は、現ストロークの手書き文字に対して大きさ判定手段が否定的判定をしたとき、前ストロークの手書き位置にメモ文字を表示する、請求項4記載のゲーム装置である。
【0024】
請求項5の発明では、2ストローク目の手書き領域の大きさがある程度以上ないときには、メモ文字の入力であると判断して、2ストロークで入力された文字をメモ文字として表示する。このとき、前ストロークが属する領域にメモ文字は表示される。
【0025】
請求項6の発明は、文字認識手段は、ストロークカウンタのカウント値が所定値のとき、現ストロークの軌跡に基づいて手書き文字を認識する、請求項4または5記載のゲーム装置である。
【0026】
請求項6の発明では、文字認識手段は、ストロークカウンタのカウント値が所定値(たとえば「0」)のとき、現ストロークの軌跡に基づいて手書き文字を認識する(S109)ので、本来1ストロークで手書きできる文字も普通に紙に書くように手書き入力することができる。
【0027】
請求項7の発明は、表示手段と、記憶手段と、手書き入力手段とを備えた手書き入力装置を、手書き入力装置として機能させる手書き入力プログラムであって、手書き入力装置のコンピュータに、手書き入力の軌跡を記憶手段に記憶する、手書き入力ステップ、手書き入力の軌跡に基づき、当該軌跡が記憶手段に予め設定された手書き入力領域に対して占有する領域を特定して、記憶手段に記憶する、軌跡領域特定ステップ、記憶手段に記憶された手書き入力の軌跡を文字認識処理する、文字認識ステップ、軌跡領域特定ステップに応じて特定された領域の大きさに応じた大きさでかつ、領域の位置に応じた表示手段の位置に、認識結果を表示する、認識結果表示ステップ、を実行させる、手書き入力プログラムである。
【0028】
請求項7の発明では、手書き入力装置は、実施例ではゲーム装置(10)であり、表示手段(14)と、記憶手段(42)と、手書き入力手段(24)とを備える。この手書き入力プログラムは、手書き入力装置のコンピュータに、手書き入力の軌跡を記憶手段に記憶する、手書き入力ステップ(S103)、手書き入力の軌跡に基づき、当該軌跡が記憶手段に予め設定された手書き入力領域に対して占有する領域を特定して、記憶手段に記憶する、軌跡領域特定ステップ(S113)、記憶手段に記憶された手書き入力の軌跡を文字認識処理する、文字認識ステップ(S109,S143,S169)、軌跡領域特定ステップに応じて特定された領域の大きさに応じた大きさでかつ、領域の位置に応じた表示手段の位置に、認識結果を表示する、認識結果表示ステップ(S123,S153,S179,S133,S163,S177)、を実行させる。
【0029】
請求項7の発明によれば、入力した軌跡が手書き入力領域に対してどの程度の大きさで、かつどの位置にその軌跡の重みが置かれているのかにかかるデータに基づいて、認識結果を小さな文字で表示するか、大きな文字で表示するかを自動選択して表示するようにしたので、手書き入力方法の大きな変更をすることなく、プレイヤの希望する手書き入力の直感的な感覚にあわせた形で、メモ書き入力可能な、手書き入力プログラムを提供できる。
【0030】
請求項8の発明は、認識結果表示ステップは、軌跡領域特定ステップに応じて特定された領域の大きさに応じて、認識結果の表示サイズを決定する、文字表示サイズ決定ステップ、および軌跡領域特定ステップに応じて特定された領域の位置に応じて、文字認識の結果の表示位置を決定する、文字表示位置決定ステップを含む、請求項7記載の手書き入力プログラムである。
【0031】
請求項8の発明では、さらに、手書き入力した領域の大きさを、その領域のたとえば中点の位置で判定するようにしたので、複雑な処理を行う必要なく、表示形態の自動選択が可能になる。
【0032】
請求項9の発明は、文字表示サイズ決定ステップは、軌跡領域特定ステップに応じて特定された領域の中心点が、記憶手段に予め記憶された手書き入力領域の所定範囲に含まれているかどうか、かつ、当該領域が所定の大きさであるかどうかをそれぞれ判定することによって、表示サイズを決定する、請求項8記載の手書き入力プログラムである。
【0033】
請求項9の発明によれば、小表示する領域を予め決めておき、その領域と、領域の中心点との関係で、小表示領域が決められるので、より簡便な処理で、表示形態の自動選択を可能にしている。また、領域の中点で表示形態の自動選択を行うので、たとえば、表示を小さくしたいときに、表示させたい大きさで小さく手書き入力しなければならない、というようなことがなくなる。
【0034】
請求項10の発明は、表示位置決定ステップは、前期領域の中心点が、記憶手段に予め記憶された認識結果の複数の表示位置のいずれに対応するかを判断し、対応する当該表示位置に、当該認識結果を表示する、請求項8または9記載の手書き入力プログラムである。
【0035】
請求項10の発明によれば、複数のストロークからなる文字に対しても適切に文字表示の大きさと位置についての処理を細かく実現可能な、手書きプログラムを提供できる。また、メモ文字の表示位置を簡単に直感的に指定することができる。
【発明の効果】
【0036】
この発明によれば、解答文字だけでなく、メモ文字を入力してそれも表示できるので、桝目に入れる文字の候補をたとえば紙などの別の媒体にメモ書きするなどの煩わしい操作が不要である。
【0037】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【0038】
図1を参照して、この発明の実施例であるゲーム装置10は、情報処理装置としても機能する。このゲーム装置10は、第1の液晶表示器(LCD)12および第2のLCD14を含む。このLCD12およびLCD14は、所定の配置位置となるようにハウジング16に収納される。この実施例では、ハウジング16は、上側ハウジング16aと下側ハウジング16bとによって構成され、LCD12は上側ハウジング16aに収納され、LCD14は下側ハウジング16bに収納される。したがって、LCD12とLCD14とは縦(上下)に並ぶように近接して配置される。
【0039】
なお、この実施例では、表示器としてLCDを用いるようにしてあるが、LCDに代えて、EL(Electronic Luminescence)ディスプレイやプラズマディスプレイを用いるようにしてもよい。
【0040】
図1からも分かるように、上側ハウジング16aは、LCD12の平面形状よりも少し大きな平面形状を有し、一方主面からLCD12の表示面を露出するように開口部が形成される。一方、下側ハウジング16bは、その平面形状が上側ハウジング16aよりも横長に選ばれ、横方向の略中央部にLCD14の表示面を露出するように開口部が形成される。下側ハウジング16bのLCD14の左方には電源スイッチ18が設けられる。
【0041】
また、上側ハウジング16aには、LCD12を挟んで左右に、スピーカ36aおよび36b(図2)のための放音孔20aおよび20bが形成される。そして、下側ハウジング16bには、マイク(図示せず)のためのマイク孔20cが形成されるとともに、操作スイッチ22(22a,22b,22c,22d,22e,22Lおよび22R)が設けられる。
【0042】
また、上側ハウジング16aと下側ハウジング16bとは、上側ハウジング16aの下辺(下端)と下側ハウジング16bの上辺(上端)の一部とが回動可能に連結されている。したがって、たとえば、ゲームをプレイしない場合には、LCD12の表示面とLCD14の表示面とが対面するように、上側ハウジング16aを回動させて折りたたんでおけば、LCD12の表示面およびLCD14の表示面に傷がつくなどの破損を防止することができる。ただし、上側ハウジング16aと下側ハウジング16bとは、回動可能に連結せずに、それらを一体的(固定的)に設けたハウジング16を形成するようにしてもよい。
【0043】
操作スイッチ22は、方向指示スイッチ(十字スイッチ)22a,スタートスイッチ22b、セレクトスイッチ22c、動作スイッチ(Aボタン)22d、動作スイッチ(Bボタン)22e、動作スイッチ(Lボタン)22Lおよび動作スイッチ(Rボタン)22Rを含む。スイッチ22aは、下側ハウジング16bの一方主面であり、LCD14の左側に配置される。その他のスイッチ22b‐22gは、下側ハウジング16bの一方主面であり、LCD14の右側に配置される。さらに、スイッチ22Lおよびスイッチ22Rは、それぞれ、上側ハウジング16aとの連結部を挟む下側ハウジング16bの上側面の左右角部に配置される。
【0044】
方向指示スイッチ22aは、ディジタルジョイスティックとして機能し、4つの押圧部の1つを操作することによって、プレイヤによって操作可能なプレイヤキャラクタ(またはプレイヤオブジェクト)の移動方向を指示したり、カーソルの移動方向を指示したりする等に用いられる。スタートスイッチ22bは、プッシュボタンで構成され、ゲームを開始(再開)したり、一時停止(Pause)したりする等に用いられる。セレクトスイッチ22cは、プッシュボタンで構成され、ゲームモードの選択等に用いられる。
【0045】
動作スイッチ22dすなわちAボタンは、プッシュボタンで構成され、方向指示以外の動作、すなわち、プレイヤキャラクタに打つ(パンチ)、投げる、つかむ(取得)、乗る、ジャンプするなどの任意のアクションをさせることができる。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かす等を指示することができる。また、ロールプレイングゲーム(RPG)やシミュレーションRPGにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。動作スイッチ22eすなわちBボタンは、プッシュボタンで構成され、セレクトスイッチ22cで選択したゲームモードの変更やAボタン22dで決定したアクションの取り消し等のために用いられる。
【0046】
動作スイッチ22L(左押しボタン)および動作スイッチ22R(右押しボタン)は、プッシュボタンで構成され、左押しボタン(Lボタン)22Lおよび右押しボタン(Rボタン)22Rは、Aボタン22dおよびBボタン22eと同様の操作に用いることができ、また、Aボタン22dおよびBボタン22eの補助的な操作に用いることができる。
【0047】
また、LCD14の上面には、タッチパネル24が装着される。タッチパネル24としては、たとえば、抵抗膜方式、光学式(赤外線方式)および静電容量結合式のいずれかの種類のものを用いることができる。また、タッチパネル24は、その上面をスティック26ないしはペン(スタイラスペン)或いは指(以下、これらを「スティック等26」という場合がある。)で、押圧したり、撫でたり、触れたり(以下、単に「押圧する」という。)することにより操作すると、ステッィク等26の操作位置の座標を検出して、検出した座標(検出座標)に対応する座標データを出力する。
【0048】
なお、この実施例では、LCD14(LCD12も同じ、または略同じ。)の表示面の解像度は256dot×192dotであり、タッチパネル24の検出精度も表示画面に対応して256dot×192dotとしてあるが、タッチパネル24の検出精度は表示画面の解像度よりも低くてもよく、高くてもよい。
【0049】
LCD12およびLCD14には異なるゲーム画面が表示される。たとえば、レースゲームでは一方のLCDに運転席からの視点による画面を表示し、他方のLCDにレース(コース)全体の画面を表示することができる。また、RPGでは、一方のLCDにマップやプレイヤキャラクタ等のキャラクタを表示し、他方のLCDにプレイヤキャラクタが所有するアイテムを表示することができる。さらに、一方のLCD(この実施例では、LCD12)にゲームのプレイ画面を表示し、他方のLCD(この実施例では、LCD14)に当該ゲームを操作するための図形情報やアイコン等を含むゲーム画面(操作画面)を表示することができる。さらには、2つのLCD12およびLCD14を合わせて1つの画面として用いることにより、プレイヤキャラクタが倒さなければならない巨大な怪物(敵キャラクタ)を表示することもできる。
【0050】
したがって、プレイヤはステッィク等26でタッチパネル24を操作することにより、LCD14の画面に表示されるプレイヤキャラクタ、敵キャラクタ、アイテムキャラクタ、図形情報、アイコン等のキャラクタ画像を指示したり、コマンドを選択したりすることができる。また、3次元ゲーム空間に設けられる仮想カメラ(視点)の方向を変化させたり、ゲーム画面(マップ)のスクロール(徐々に移動表示)方向を指示したりすることもできる。
【0051】
なお、ゲームの種類によっては、その他各種の入力指示、たとえばLCD14に表示されたアイコンの選択または操作、座標入力指示、文字,数字,記号当の手書き入力等に用いることもできる。
【0052】
このように、ゲーム装置10は、2画面分の表示部となるLCD12およびLCD14を有し、いずれか一方(この実施例では、LCD14)の上面にタッチパネル24が設けられるので、2画面(12,14)と2系統の操作部(22,24)とを有する構成になっている。
【0053】
また、この実施例では、スティック等26は、たとえば下側ハウジング16bに設けられる収納部(図1では点線で示す)に収納することができ、必要に応じて取り出される。ただし、スティック26を設けない場合には、その収納部も設ける必要はない。
【0054】
さらに、ゲーム装置10はメモリカード(またはカートリッジ)28を含み、このメモリカード28は着脱自在であり、下側ハウジング16bの裏面ないしは下端(底面)に設けられる挿入口30(図1では点線で示す)から挿入される。図1では省略するが、挿入口30の奥部には、メモリカード28の挿入方向先端部に設けられるコネクタ(図示せず)と接合するためのコネクタ32(図2参照)が設けられており、したがって、メモリカード28が挿入口30に挿入されると、コネクタ同士が接合され、ゲーム装置10のCPUコア34(図2参照)がメモリカード28にアクセス可能となる。
【0055】
なお、図1では表現できないが、上側ハウジング16aの放音孔20aおよび20bと対応する位置であり、この上側ハウジング16aの内部にはスピーカ36aおよび36b(図2参照)が設けられる。
【0056】
また、図1では省略するが、たとえば、下側ハウジング16bの裏面側には、電池収容ボックスが設けられ、また、下側ハウジング16bの底面側には、音量スイッチ、外部拡張コネクタおよびイヤフォンジャックなどが設けられる。
【0057】
図2はゲーム装置10の電気的な構成を示すブロック図である。図2を参照して、ゲーム装置10は電子回路基板38を含み、この電子回路基板38には上述のCPUコア34等の回路コンポーネントが実装される。CPUコア34は、バス40を介して前述のコネクタ32に接続されるととともに、RAM42、第1のグラフィック処理ユニット(GPU)44、第2のGPU46、入出カインターフエース回路(以下、「I/F回路」という。)48およびLCDコントローラ50が接続される。
【0058】
コネコタ46には、上述したように、メモリカード28が着脱自在に接続される。メモリカード28は、ROM28aおよびRAM28bを含み、図示は省略するが、ROM28aおよびRAM28bは、互いにバスで接続され、さらに、コネクタ32と接合されるコネクタ(図示せず)に接続される。したがって、上述したように、CPUコア34は、ROM28aおよびRAM28bにアクセスすることができるのである。
【0059】
ROM28aは、ゲーム装置10で実行すべきゲームのためのゲームプログラム、手書き文字処理プログラム、文字認識プログラム、などのプログラムの他、画像データ(文字やキャラクタの画像、背景画像、アイテム画像、アイコン(ボタン)画像、メッセージ画像など)およびゲームに必要な音(音楽)のデータ(音データ)等を予め記憶する。RAM(バックアップRAM)28bは、そのゲームの途中データやゲームの結果データやさらには文字認識結果などを記憶(セーブ)する。
【0060】
ただし、ゲーム装置10では、メモリカード28によって決まる内容のゲームをプレイすることができるが、さらには、ゲーム以外の用途での利用も可能である。たとえば、第2のLCD14にキーボードまたはキー図柄を表示し、その上のタッチパネル24にタッチ(操作)してキー図柄を特定することによって、そのキーボードまたはキー図柄によって指定される文字、数字、記号等(まとめて、「文字」ということがある。)を入力する情報処理装置として機能し得る。その場合には、ゲームプログラムに代えて、情報処理用のプログラムがROM28aに格納される。
【0061】
また、上述の情報処理装置として利用する場合、表示する画像は当然、ゲーム画像ではなく、上述のキーボードまたはキー図柄の画像や、入力した文字の図形を示す画像などである。
【0062】
RAM42は、バッファメモリないしはワーキングメモリとして使用される。つまり、CPUコア34は、メモリカード28のROM28aに記憶されたプログラム、画像データおよび音データ等をRAM42にロードし、ロードしたプログラムを実行する。また、CPUコア34は、ゲームの進行に応じて一時的に発生するデータ(ゲームデータやフラグデータ)をRAM42に記憶しつつゲーム処理を実行する。
【0063】
なお、ゲームプログラム、画像データおよび音データ等は、ROM28aから一度に全部、または部分的かつ順次的に読み出され、RAM42に記憶(ロード)される。
【0064】
ただし、メモリカード28のROM28aには、ゲーム以外の他のアプリケーションについてのプログラムおよび当該アプリケーションの実行に必要な画像データが記憶される。また、必要に応じて、音(音楽)データが記憶されてもよい。かかる場合には、ゲーム装置10では、当該アプリケーションが実行される。
【0065】
GPU44およびGPU46は、それぞれ、描画手段の一部を形成し、たとえばシングルチップASICで構成され、CPUコア34からのグラフィックスコマンド(graphics command :作画命令)を受け、そのグラフィックスコマンドに従って画像データを生成する。ただし、CPUコア34は、グラフィックスコマンドに加えて、画像データの生成に必要な画像生成プログラム(ゲームプログラムに含まれる。)をGPU44およびGPU46のそれぞれに与える。
【0066】
また、GPU44には、第1のビデオRAM(以下、「VRAM」という。)52が接続され、GPU46には、第2のVRAM54が接続される。GPU44およびGPU46が作画コマンドを実行するにあたって必要なデータ(画像データ:キャラクタデータやテクスチャ等のデータ)は、GPU44およびGPU46が、それぞれ、第1のVRAM52および第2のVRAM54にアクセスして取得する。なお、CPUコア34は、描画に必要な画像データをGPU44およびGPU46を介して第1のVRAM52および第2のVRAM54に書き込む。GPU44はVRAM52にアクセスして描画のための画像データを作成し、GPU46はVRAM54にアクセスして描画のための画像データを作成する。
【0067】
VRAM52およびVRAM54は、LCDコントローラ50に接続される。LCDコントローラ50はレジスタ56を含み、レジスタ56はたとえば1ビットで構成され、CPUコア34の指示によって「0」または「1」の値(データ値)を記憶する。LCDコントローラ50は、レジスタ56のデータ値が「0」である場合には、GPU44によって作成された画像データをLCD12に出力し、GPU46によって作成された画像データをLCD14に出力する。また、LCDコントローラ50は、レジスタ56のデータ値が「1」である場合には、GPU44によって作成された画像データをLCD14に出力し、GPU46によって作成された画像データをLCD12に出力する。
【0068】
なお、LCDコントローラ50は、VRAM52およびVRAM54から直接画像データを読み出したり、GPU44およびGPU46を介してVRAM52およびVRAM54から画像データを読み出したりする。
【0069】
I/F回路48には、操作スイッチ22,タッチパネル24およびスピーカ36a,36bが接続される。ここで、操作スイッチ22は、上述したスイッチ22a,22b,22c,22d,22e,22g,22Lおよび22Rであり、操作スイッチ22が操作されると、対応する操作信号(操作データ)がI/F回路48を介してCPUコア34に入力される。また、タッチパネル24からの座標データがI/F回路48を介してCPUコア34に入力される。さらに、CPUコア34は、ゲーム音楽(BGM)、効果音またはゲームキャラクタの音声(擬制音)などのゲームに必要な音データをRAM42から読み出し、I/F回路48を介してスピーカ36a,36bから出力する。
【0070】
実施例の詳細な説明に先立って、実施例でプレイ可能なナンバープレースパズルについて、必要な範囲で簡単に説明する。ナンバープレースパズルは「数独(すうどく)(商品名)」という名称で大変よく知られており、3×3のブロックに区切られた9×9の正方形の枠内の各桝目に1〜9までの数字を入れるペンシルパズルの1つである(たとえばhttp://www.nikoli.co.jp/puzzles/またはhttp://ja.wikipedia.org/wiki/)。
【0071】
ただし、9×9(=81個)の桝目のいくつかには、数字がヒントとして予め記入されており、その状態から空いている枡目を全て埋めるパズルだが、それには以下の一定の規則がある。
【0072】
(1)同一の横1行の各桝目には問題で既に数字が与えられている枡目を含め同じ数字は入らない。つまり、1〜9の数字を1回ずつ使う。
【0073】
(2)同一の縦1列の各桝目にも問題で既に数字が与えられている各桝目を含め同じ数字は入らない。つまり、1〜9の数字を1回ずつ使う。
【0074】
(3)太い線で囲まれた3×3の各サブブロック内の桝目にも問題で既に数字が与えられている枡目を含め同じ数字は入らない。つまり、1〜9の数字を1回ずつ使う。
【0075】
(4)なお、枡目の数が全体で25×25のときには使う数字は1〜25、サブブロックは5×5になり、同様に全体が16×16なら使う数字は1〜16、サブブロックは4×4となる。他の枡数でも同様の考え方を適用する。
【0076】
図3には図1および図2に示すゲーム装置10によって3×3の数独ゲームまたはナンバープレースパズルゲームをプレイするときの各部の使い方を主として示す。ゲーム装置10は上述のように、折畳みハウジング16aおよび16bの対向する面にそれぞれ設けられた第1のLCD12および第2のLCD14を備え、第2のLCD14の上にタッチパネル24がスティック等26で操作可能に設けられている。そして、この数独ゲームをプレイするときには、単なる一実施例ではあるが、ゲーム装置10は、第1のLCD12が左になりかつ第2のLCD14が右になるように、縦に向けて使用する。ただし、このような使い方は任意で、第1のLCD12が上で第2のlCD14が下になる図1のような配置での使い方や、図3とは逆に第1のLCD12が右になりかつ第2のLCD14が左になるように縦に向けて使用する方法などがある。
【0077】
その状態で、適宜に決めた複数の桝目に予め問題(ヒント)数字を挿入または表示している9×9の桝目を含むゲーム画面60が第1のLCD12に表示される。ゲーム画面60は合計81個の桝目62を有し、参照番号62Aで示す桝目が現在解答中の桝目である。この解答中の桝目62Aは、1つだけ取り出されて拡大されて、第2のLCD14に桝目62AAとして表示される。具体的には、たとえば最初に第2のLCD14にゲーム画面60を表示し、その状態でどれか1つの解答桝目62Aを選択し、次にタッチパネル24(LCD14)に表示されたズームアウトボタン(図示せず)にタッチすると、にノLCD14には拡大桝目62AAが表示され、第1のLCD12にゲーム画面60が表示された、図3の状態となる。
【0078】
第2のLCD14の上にタッチパネル24があるので、ゲームプレイヤは、スティック等26によってそのタッチパネル24上の桝目62AAの中にメモ数字および/または解答数字を手書きで入力することにより、問題となっている桝目62Aに対して解答することができる。この実施例では、このように解答数字だけでなくメモ数字もこの桝目62AA内に手書きできることが1つの特徴である。ただし、解答数字とは、問題となっている桝目62Aに対してゲームプレイヤが正解と思って入力する数字であり、メモ数字とは、その解答数字を導き出すまでの思考過程で思いついた数字をメモ書きした数字のことである。実施例では図3の例では、タッチパネル24側の桝目62AAの中に「4」,「8」,「7」および「6」というメモ数字が、小さい文字で表示されている。解答数字は未だ入力していないが、メモ数字が小さい表示であるのに対して、解答数字は、この桝目62AAの殆ど全面に亘る大きい文字で表示される。プレイヤは、問題となっている桝目62Aに解答するに際して、思いつく数字をメモ数字として入力する。最大9つのメモ数字を表示することができ、そのメモ数字のうちの1つを解答数字として採用する場合には、該当の数字を解答数字として大きく手書き入力した後、後述の確定処理を行う。確定処理でメモ数字のうちの1つが解答数字として確定されたとすると、その解答数字が全面表示または大表示される。
【0079】
なお、図3において拡大桝目62AAの4つの辺からそれぞれの方向に向かう矢印が図示されているが、これらの矢印63U,63D,63Lおよび63Rは、それぞれの矢印の方向に隣接する別の桝目を選択するためのスクロールボタンとして機能する。たとえばスクロールボタン63Uにタッチすれば、現在の桝目62Aに上方向に隣接する桝目が拡大桝目62AAとして選択される。たとえばスクロールボタン63Dにタッチすれば、現在の桝目62Aに下方向に隣接する桝目が拡大桝目62AAとして選択され、スクロールボタン63Lにタッチすれば、現在の桝目62Aに左方向に隣接する桝目が拡大桝目62AAとして選択され、さらにスクロールボタン63Rにタッチすれば、現在の桝目62Aに右方向に隣接する桝目が拡大桝目62AAとして選択される。このとき、スクロール前の拡大桝目62AAに解答数字が大表示されていれば、そのようなスクロール処理が上記でいう確定処理に該当する。
【0080】
問題となっている桝目62Aに対して手書き入力用の桝目62AAにプレイヤによって解答数字が入力されたとき、先のCPUコア34(図2)が、後述のゲームプログラム内に予め設定されている参照データとその解答数字とを照らし合わせることによって、その解答数字が正解かどうか検定または判定することになる。ただし、このようなゲーム判定(正答か誤答かの判定)は、実施例のように解答数字の確定毎に行う方法の他に、全ての空桝目に解答数字を確定させた後に一斉に行う方法を採用してもよく、この発明はどちらかの方法を排除するというものではない。
【0081】
ここで、図4を参照して、図2に示すRAM42のメモリマップを説明する。RAM42にはプログラム記憶領域42aおよびデータ記憶領域42bが形成され、前者には、この実施例ではゲームプログラム42a1,手書き入力処理プログラム42a2および文字認識プログラム42a3が記憶されている。ゲームプログラム42a1は、上述のような数独ゲームを処理するためのプログラムであり、具体的には、後述のフロー図で示される。手書き入力処理プログラム42a2は、上述のようにタッチパネル24の桝目62AAにプレイヤが手書きしたストロークの軌跡などを取り込むためのプログラムである。ただし、「ストローク」とは、ステッィク等26がタッチパネル24にタッチしたとき(タッチオン)からそのタッチを解除したとき(タッチオフ)までの連続する入力軌跡のことを意味する。文字認識プログラム42a3は、いわゆる「認識エンジン」であり、上述のようにして取り込んだストロークのデータに基づいて、そのとき手書き入力した文字がどの文字(数字)かを同定または認識するためのプログラムである。
【0082】
データ記憶領域42bには、手書きデータ記憶領域42b1が含まれ、この手書きデータ記憶領域42b1には1ストローク目の手書きデータ、2ストローク目の手書きデータ、3ストローク目の手書きデータ、…nストローク目の手書きデータが、それぞれ一時的に記憶される。なお、手書きデータは、典型的には、各ストロークの軌跡(1または適宜数のフレーム単位で取得したタッチパネル24上の位置データ)である。後に説明するように、プレイヤが上述のメモ数字を手書き入力したのか、解答数字を手書き入力したのかの判断は、基本的には、ストロークの大小に基づいて行う。つまり、ストロークが小さければメモ数字を入力したと判断し、大きければ解答数字を入力したと判断する。また、解答数字の場合にはそれを大表示し、メモ数字の場合には小表示することは前述のとおりであるが、小表示されるメモ数字の表示位置は、実施例では、そのメモ数字のための手書き入力の位置に関連して(具体的には手書き入力領域の中点の位置に基づいて)決められる。ただし、この実施例で最大9個までのメモ数字を手書きすることができるので、重ね書きしない限り、1つのメモ数字が小表示される位置は、桝目62AAの中の9つの領域のうちのいずれかである。
【0083】
このように、手書きデータ記憶領域42b1に記録されるストローク毎の手書きデータを参照することによって、そのストロークの入力軌跡だけでなく、メモ数字か解答数字かの判断の基になる入力領域の大きさの大小やメモ数字の表示位置の基になる入力領域の中点位置などを知ることができる。
【0084】
データ記憶領域42bはさらに、手書きイメージ記憶領域42b2を含む。手書きイメージ記憶領域42b2は、文字認識プログラム42a3で認識するときに手書きデータに含まれる軌跡データを一時的に記憶するための領域である。
【0085】
認識処理結果記憶領域42b3は、文字認識プログラム42a3が手書きイメージ記憶領域42b2に記録されている軌跡データに基づいて認識処理を行った結果を記憶するための領域である。認識処理結果は、その軌跡データから認識できる可能性のある1つまたは2以上の数字候補と、それぞれの数字候補のスコア(点数)とを含む。そして、そのスコアが所定値以上でかつ最も大きいスコア値を有する候補が、そのとき入力された数字であると認識または同定される。
【0086】
データ記憶領域42bはさらにストロークカウンタ42b4を含み、このストロークカウンタ42b4は、手書き入力の際のストローク数をカウントするための領域である。数字の場合であれば、「1」,「2」,「3」,「6」,「8」および「9」は1ストローク文字(1ストロークで書ける文字)であるのに対して、「4」および「5」は2ストローク文字(2ストロークで書くことが多い文字)である。ただし、「7」は1ストローク文字としても、2ストローク文字としても判別できるようにしている。このように、1ストローク文字または2ストローク文字を判断するためにこのストロークカウンタ42b4のカウント値が利用される。
【0087】
表示イメージ記憶領域42b5および表示用文字画像データ記憶領域42b6は、ともに、表示用データをビットマップで記憶するための領域である。表示イメージ記憶領域42b5は、たとえば文字認識エンジン42a3で認識できないときなどに、後述のように手書き文字をそのまま表示する場合の表示イメージをビットマップデータとして記憶する。
【0088】
ゲーム画面・文字画像データ記憶領域42b6には、たとえば9×9の桝目とその中に3×3のサブブロックを含み、さらに問題番号に応じて異なる適宜の桝目62に解答のヒントとなる数字が埋め込まれた、図3に示すような、複数のゲーム画面60をビットマップデータとして記憶しておく。複数のゲーム画面の各々に個別に問題番号が付与されている。このゲーム画面・文字画像記憶領域42b6は、さらに、文字認識エンジン42a3で認識した結果の文字を大表示または小表示する場合のキャラクタフォントをビットマップデータとして記憶する。
【0089】
小表示領域データ記憶領域42b7は、メモ数字を小表示する場合の表示位置または表示領域を決めるためのデータを記憶する領域であり、具体的には、メモ数字を手書き入力する際に桝目62AA(図3)のどの位置に手書きしたかを示す、9つの領域I‐IXのいずれかを示すデータを記憶する。
【0090】
上で説明したように、プレイヤが上述のメモ数字を手書き入力したのか解答数字を入力したのかの判断はストロークの大小に関連付けて行うので、手書き領域大きさ判定用データ記憶領域42b8は、そのストロークの大小つまり手書き領域の大小を判定するための参照データまたは基準データ(後述の数4の閾値L1およびL2など)を記憶しておく。
【0091】
さらに、大表示判定用データ記憶領域42b9は、手書き入力した数字の認識結果を大表示するのか小表示するのか判定するための参照データまたは基準データを記憶しておく。
【0092】
最後に、フラグ領域42b10は適宜のフラグを記憶するための領域である。たとえば、タッチオンフラグである。タッチオンフラグは、タッチオン状態(プレイヤの指やスティック等26がタッチパネル24にタッチしている状態)を記憶しておくためのフラグである。
【0093】
上述のように、この実施例では、数独ゲームの桝目を埋める数字を手書きで入力するようにし、しかも、その手書き領域(ストローク)の大小に関連して、その手書き入力した数字がメモ数字であるのか解答数字であるのかを判断するようにしている。以下には、図5‐図8を参照して、そのような手書き入力による数字の認識およびその認識結果の表示について概要を説明する。
【0094】
図5には認識結果の数字を、図3に示す桝目62AAに大表示するかどうかを判断する手法の一例について図解する。桝目62AAは図5(A)に示すように正方形または矩形である。そして、ストロークの始点すなわちタッチオン位置の座標を(xi1,yi1)とし、ストロークの終点すなわちタッチオフ位置の座標を(xi2,yi2)とする。始点から終点までの連続するストロークの軌跡データ(単位時間毎の位置データ)を(x1,y1),(x2,y2),…(xn,yn)とする。このような軌跡データが各ストローク毎に、図4に示す手書きデータ記憶領域42b1に記憶される。さらに、桝目62AA内の、大表示するかどうかを決める大表示領域(図5で点線で示す。)の縦方向の上下をそれぞれYS1およびYS2とし、横方向の左右をそれぞれXS1およびXS2とする。この大表示領域データXS1,XS2,YS1およびYS2が、大表示判定用データの一部として、図4の大表示判定用データ記憶領域42b9に記憶される。これは、ゲームプログラム42a1および手書き入力処理プログラム42a2のどちらかによってデフォルト値としてこの領域42b9に設定される。
【0095】
この前提で、手書き領域(手書き入力が作る領域)は、手書きデータ記憶領域に記憶した手書きデータに従って、数1で表すことができる。
【0096】
[数1]
(xi1,yi1)−(xi2,yi2)
そして、この手書き領域の中点座標(xim,yim)(手書き入力の領域に外接する矩形の重心)は、この手書き領域データを用いて、数2で示すことができる。
【0097】
[数2]
(xim,yim)=((xi1+xi2)/2,(yi1+yi2)/2)
そして、手書き領域の中点位置が大表示領域内にありかつ手書き領域がある程度以上の大きさがあるときには、つまり、数3および数4の条件を満たすとき、手書き文字認識結果である数字を、図5(B)に示すように、桝目62AA内に大表示する。
【0098】
[数3]
XS1<xim<XS2かつYS1<yim<YS2
【0099】
[数4]
|xi2‐xi1|>L1または|yi2‐yi1|>L2
ただし、L1,L2は閾値
なお、この数4の閾値L1,L2が手書き領域大きさ判定用データとして、図4に示す手書き領域大きさ判定用データ記憶領域42b8に記憶される。
【0100】
そして、図5の例では、図5(A)で数1の条件を満たすように入力された手書き文字を識別した結果が「2」であったので、図5(B)で桝目62AA内全面に「2」がキャラクタフォントで大表示されている。
【0101】
図6には手書き文字の認識結果がメモ数字であったとき、それを小表示する場合について図解する。手書き文字が上記の数1の大表示条件を充足しないとき、そのときの手書き文字はメモ数字であると判定する。メモ数字を小表示する9個の領域I〜IXが図6(A)に示される。図示の例では桝目62AAを3×3の小表示領域I‐IXに区画され、それぞれの領域I‐IXは、手書き領域の上述の中点の座標(xim,yim)が(X1<xim<X2,Y3<yim<Y4)の範囲に存在するとき領域Iと判定され、同様に、中点座標(xim,yim)が(X1<xim<X2,Y2<yim<Y3)の範囲に存在するとき領域IIと判定され、中点座標(xim,yim)が(X1<xim<X2,Y1<yim<Y2)の範囲に存在するとき領域IIIと判定される。中点座標(xim,yim)が(X2<xim<X3,Y3<yim<Y4)の範囲に存在するとき領域IVと判定され、中点座標(xim,yim)が(X2<xim<X3,Y2<yim<Y3)の範囲に存在するとき中央の領域Vと判定され、中点座標(xim,yim)が(X2<xim<X3,Y1<yim<Y2)の範囲に存在するとき領域VIと判定される。中点座標(xim,yim)が(X3<xim<X4,Y3<yim<Y4)の範囲に存在するとき領域VIIと判定され、中点座標(xim,yim)が(X3<xim<X4,Y2<yim<Y3)の範囲に存在するとき領域VIIIと判定され、中点座標(xim,yim)が(X3<xim<X4,Y1<yim<Y2)の範囲に存在するとき領域IXと判定される。
【0102】
そのとき手書き領域の中点座標がどの領域に属するかが、小表示領域データとして、小表示領域データ記憶領域42b7(図4)に記憶される。
【0103】
そして、図6の例では、図6(A)で数1の条件を満たすことなく入力された手書き文字を識別した結果が「2」でありかつそのときの中点座標(xim,yim)が領域Iに属するので、図6(B)で桝目62AA内の領域Iに「2」がキャラクタフォントで小表示されている。
【0104】
図7を参照して、図7には、2ストロークで手書き文字入力された場合であって、1ストローク目の軌跡と2ストローク目の軌跡とを加えて文字認識したときに、認識できた場合の一例を図解している。「7」は1ストロークで書くこともあるが、2ストロークで書く人も多い(欧米では、「7」の縦棒に「ヽ」のような点を加えることがある)。ただし、ここでは「7」を、1ストローク目の縦短棒(図7(A)で点線で示す)と2ストローク目の横縦線とで手書きした場合を想定する。
【0105】
この実施例では、図7(A)で示す1ストローク目の軌跡と2ストローク目の軌跡とを一緒にして文字認識したとき、所定以上の認識率(スコア)がありかつ「4」,「5」および「7」のように2ストロークで入力するのが一般的である数字の場合には、2ストローク目の手書き入力領域の大きさによって、そのとき認識した数字を大表示(全面表示)するか小表示するかを決定するようにしている。
【0106】
つまり、2ストローク目がある程度以上の大きさのとき、具体的には、数3で示す大きさ以上のとき(|xi2‐xi1|>L1または|yi2‐yi1|>L2)には、識別した数字(図示の例では「7」)を図7(B)に示すように桝目62AAにキャラクタフォントで全面表示する。
【0107】
しかしながら、2ストローク目の手書き領域があまり大きくないときには、識別した数字(「7」)を、1ストローク目が属する領域(図示の例では領域I)に、図7(C)に示すようにキャラクタフォントで小表示する。2ストローク目があまり大きくないということは、プレイヤの意図としては、そのとき手書き入力したのはメモ数字であるということであり、この場合には、1ストローク目が属する領域に表示することにした。
【0108】
図8には、1ストローク目の軌跡と2ストローク目の軌跡とを一緒にして文字認識したときには、1ストローク目だけの認識率(スコア)よりさらに小さいスコアしか得られない場合の例を示している。実施例では、この場合には、2ストローク目の軌跡だけで文字認識することにしている。したがって、この場合には、図5または図6に従って、そのとき識別できた数字を大表示するかまたは小表示する。
【0109】
図8(A)では、1ストローク目の軌跡ではある程度以上の認識率(スコア)で「1」と認識できたのであるが、1ストローク目と2ストローク目とを一緒にした軌跡を2ストローク目だけと比較すると、2ストローク目の「3」に対するスコア値より小さくなるので、2ストローク目だけで認識して「3」と同定した。このとき、2ストローク目の中点座標は領域VIIIに属するので、認識した数字「3」をその領域VIIIにキャラクタフォントで小表示する。
【0110】
以上説明したように、この実施例によれば、タッチパネル24に手書き入力する領域の大きさやそれの位置に応じて、そのとき手書き入力した数字が大表示すべき解答数字であるのか小表示すべきメモ数字であるのかを自動的に判別できるので、ゲームプレイヤは解答数字を手書き入力するかあるいはメモ数字を手書き入力するか特別な区別なしに、人間の直感的な感覚にあわせて自然に入力することができる。このような手書き入力処理および文字認識を前提にして、以下、ゲームプログラム42a1(図4)に従った図9‐図13のフロー図を参照して、実施例で数独パズルゲームを行う場合の主としてCPUコア34(図2)の動作を説明する。
【0111】
図9の最初のステップS1で、CPUコア34は、ゲームプログラムに従って、ゲーム・文字画像記憶領域42b6からパズル画面(ゲーム画面60:図3)を読み出して、それをまず第2のLCD12に表示させる。そして、次のステップS3で、CPUコア34は、そのゲーム画面60のどれかの空きの桝目にゲームプレイヤがタッチしたかどうかタッチパネル24すなわちI/F回路48(図2)からのデータで判断する。どれかの空桝目がタッチされたなら、このステップS3で、桝目の選択がなされたと判断して、ステップS5に進み、“NO”なら桝目選択がなされるのを待つ。
【0112】
ステップS5では、CPUコア34は、先に第2のLCD14に表示していたゲーム画面60を第1のLCD12に移動し、第2のLCD14には選択された空桝目を拡大表示させる。ここまでの処理が行われた状態が、図3の状態である。つまり、ステップS5の段階で、図3に示すように、全体のゲーム画面60が第1のLCD12に表示され、問題となる拡大された桝目62AAが第2のLCD14に表示される。
【0113】
次に、ゲームプレイヤは、ステッィク等26を用いてタッチパネル24上に数字を手書き入力する。このとき、CPUコア34は、手書き入力処理プログラム42a2に従って手書き入力データを取得する。ただし、プレイヤが手書き入力を一定時間経っても行わないときには、ステップS9で“YES”が判断される。
【0114】
ステップS9で“YES”が判断されたとき、CPU34はステップS11でストロークカウンタ42b4(図4)をリセットして「0」にした後、ステップS13で、CPUコア34は、同じパズルを続けるかどうかの操作がプレイヤによってなされたかどうか判断する。“YES”なら、次にCPUコア34は、ステップS15で、ゲーム画面を更新する。ステップS13で“NO”を判断し、ステップS15でも“NO”を判断すると言うことは、ゲームプレイヤはそのゲームを終了するという意味であり、そのときには、ゲームを終了させる。
【0115】
ステップS7で何らかのタッチ入力があったのでステップS9で“NO”と判断したけれど、その操作が、他の桝目を選択する動作だった場合には、ステップS3で選択した枡目に対する解答はしないものと判断し、ステップS17を経て、先のステップS11に進む。
【0116】
ステップS5から一定時間内にプレイヤが数字を手書き入力した場合、ステップS7の手書き入力処理が実行される。
【0117】
ここで、このステップS7の手書き入力処理について、図10‐図13を参照して、詳細に説明する。
【0118】
図10の最初のステップS101では、CPUコア34はタッチパネル24にステッィク等6がタッチされ、フラグ領域42b10(図4)のタッチオンフラグがオンすされることにより、タッチオン状態になったかどうか判断する。“NO”なら図9のステップS9にリターンする。“YES”なら、次のステップS103で、タッチパネル24からの入力軌跡のデータを手書きデータ記憶領域42b1(図4)の1ストローク目のデータとして、記憶する。この手書き入力データの記録はステップS105でタッチオフを検出するまで続けられる。この手書き入力は1ストローク目のものであるため、入力軌跡データは当然領域42b1の1ストローク目の領域に記録される。
【0119】
次のステップS107でCPUコア34は、上の手書き入力が1ストローク目のものかどうか、つまり、ストロークカウンタ42b4が「0」かどうかを判断する。上述のようにこのときのストロークは最初のストロークであるので、ステップS107では“YES”が判断され、続くステップS109で、CPUコア34は、文字認識プログラム42a3によって、文字認識処理を実行する。
【0120】
その後、CPUコア34は、ステップS111において、文字認識結果、すなわち認識文字候補と各候補の認識率(スコア値)を受け取る。したがって、ステップS111で、この結果が認識結果記憶領域42b3に記録される。
【0121】
続くステップS113で、CPUコア34は、手書きデータ記憶領域42b1に一時記憶しておいた1ストローク目の軌跡データに基づいて、手書き領域を先の数1に従って計算する。それとともに、ステップS115において、CPUコア34は、先の数2に従って、ステップS113で算出した手書き領域の中点座標すなわち基準座標を計算する。
【0122】
ついで、CPUコア34は、ステップS117(図11)において、数3に示す計算をして、中点座標すなわち基準座標(xim,yim)が所定範囲内かどうか、つまり、タッチパネル24上の大表示領域(図5の点線)の中かどうか判断する。この大表示領域内に中点座標があれば、続くステップS119で、CPUコア34は、手書き領域がある程度以上大きいかどうか数4に従って判断する。つまり、手書き領域の横方向長さが閾値L1より大きいかどうか、または縦方向長さが閾値L2より大きいかどうか、判断する。
【0123】
ステップS117およびS119の両方がともに“YES”と判断されるときには、その1ストローク目の軌跡は、大表示領域内で或る程度以上の大きさで手書きされたということであり、たとえば図5の場合のような解答数字を手書きしたことを意味している。したがって、この場合には、次のステップS121で、先のステップS111で取得した認識候補とスコア値とに基づいて、手書き入力が認識できたかどうか判断する。認識率すなわちスコア値が所定以上の候補があればこのステップS121で“YES”が判断できる。ステップS121で“YES”が判断されたなら、ステップS123で、その認識できた数字(最も大きいスコア値を持った認識候補を認識数字として同定する)を、第2のLCD14に拡大表示している桝目62AA(図3)に、キャラクタフォントで大表示する。
【0124】
ただし、ステップS123の後、ステップS124で、CPUコア34は、ストロークカウンタ42b4(図4)をインクリメントする。その理由は、たとえば「1」「L」と書いて「4」を認識または識別する場合などに備えておく必要があるからである。
【0125】
ステップS121で“NO”が判断されたときには、このときの手書き入力は、2ストロークで完成する数字の1ストローク目であると判断し、ステップS125で、1ストローク目の手書き入力データをステップS103で記録しているときに作成して手書きイメージ記憶領域42b2(図4)に保存しておいた手書きイメージを、第2のLCD14に表示するとともに、ステップS117で、2ストローク目の手書き入力に備えて、ストロークカウンタ42b4をインクリメント(+1)する。その後ステップS101(図10)に戻る。
【0126】
先のステップS117およびS119のいずれか一方または両方で“NO”が判断されたときには、図6のようなメモ数字の入力の可能性があるため、次のステップS129で、CPUコア34は、そのときの手書き入力領域の中点座標(xim,yim)が属する領域が図6に示す領域I-IXのいずれであるかを判断し、その領域を小領域データ記憶領域42b7(図4)に記憶する。
【0127】
その後ステップS131で、CPUコア34は、そのとき小さく手書き入力された文字が認識できたかどうかを、ステップS121と同じ手法で判断する。“YES”なら、このとき認識した手書き文字はメモ数字であったのであるから、次のステップS133で、CPUコア34は、認識した文字(数字)を、図6に示すように先にステップS129で特定した領域に小表示する。
【0128】
ただし、ステップS133の後、ステップS134で、CPUコア34は、ストロークカウンタ42b4(図4)をインクリメントする。その理由は、たとえば「1」「L」と書いて「4」を認識または識別する場合などに備えておく必要があるからである。
【0129】
ステップS131で“NO”が判断されたときには、このときの手書き入力は、2ストロークで完成する数字の1ストローク目であると判断し、ステップS135で、1ストローク目の手書き入力データをステップS103で記録しているときに作成して手書きイメージ記憶領域42b2(図4)に保存しておいた手書きイメージを、第2のLCD14に表示するとともに、ステップS137で、2ストローク目の手書き入力に備えて、ストロークカウンタ42b4をインクリメント(+1)する。その後ステップS101(図10)に戻る。
【0130】
このようにして、1スローク目の手書き入力を解答数字またはメモ数字として認識できた場合、図5または図6のように、それぞれ大表示または小表示されるが、図10のステップS107で、そのときの手書き入力が1ストローク目のものではないと判断したときには、図12のステップS139に進む。以下、「現ストローク」とは原則的には2ストローク目のストロークという意味であり、「前ストローク」というのは1ストローク目のストロークということである。
【0131】
ステップS139では、ステップS103で手書きデータ記憶領域42b1に2ストローク目のデータとして記憶されている、現ストロークの手書きデータに従って、ステップS113と同様に数1に従って、2ストローク目の手書き領域を算出する。そして、ステップS141で、その2ストローク目の手書き領域の中点座標(基準座標:xim,yim)を算出する。
【0132】
続くステップS143で、CPUコア34は、手書きデータ記憶領域に42b1に記憶している1ストローク目の軌跡データおよび2ストローク目の軌跡データを一緒にして、文字認識プログラム42a3に従って、文字認識処理を実行する。その後、CPUコア34は、ステップS145において、文字認識結果、すなわち認識文字候補と各候補毎の認識率(スコア値)を受け取る。したがって、ステップS145で、この結果が認識結果記憶領域42b3に記録される。
【0133】
次にステップS147において、CPUコア34は、そのときの認識率が所定以上でありかつ認識候補が「4」,「5」または「7」(2ストロークを基本とする数字)であるかどうか判断する。このとき“YES”が判断されるということは、現ストロークが2ストローク目として有効であることを意味していて、“NO”ということは、現ストロークは2ストローク目として判断しないほうがよいということを意味している。
【0134】
現ストロークが2ストローク目として有効な場合には、ステップS147で“YES”が判断されるので、ステップS149に進むことになる。このステップS149では、現ストロークすなわち2ストローク目の手書き領域がある程度以上大きいかどうか判断(数4)する。
【0135】
ステップS149で“YES”が判断されるときには、その2ストローク目の軌跡は、或る程度以上の大きさで手書きされたということであり、たとえば図7(B)の場合のような2ストロークで完成する解答数字を手書きしたことを意味している。したがって、この場合には、次のステップS151で、先のステップS145で取得した認識候補とスコア値とに基づいて、手書き入力が認識できたかどうか判断する。認識率すなわちスコア値が所定以上の候補があればこのステップS151で“YES”が判断できる。ステップS151で“YES”が判断されたなら、ステップS153で、その認識できた数字を、第2のLCD14に拡大表示している桝目62AAに、大表示する。そして、ステップS124と同様の理由で、ステップS153の後、ステップS154で、CPUコア34は、ストロークカウンタ42b4(図4)をインクリメントしておく。
【0136】
ステップS151で“NO”が判断されたときには、このときの手書き入力(現ストローク)は、2ストロークで完成する数字の1ストローク目であると判断し、ステップS155で、手書きイメージ記憶領域42b2(図4)に保存しておいた現ストロークの手書きイメージを、第2のLCD14に表示するとともに、ステップS157で、以後の手書き入力に備えて、ストロークカウンタ42b4を「1」にし、その後ステップS101(図10)に戻る。
【0137】
先のステップS149で“NO”が判断されたときには、たとえば図8(C)のような2ストロークで完成するメモ数字の入力の可能性があるため、次のステップS161で、CPUコア34は、そのとき2ストロークで手書き入力された文字が認識できたかどうかを判断する。“YES”なら、このとき認識した手書き文字はメモ数字であったのであるから、次のステップS163で、CPUコア34は、認識した文字(数字)を、図8(C)に示すように先にステップS129で特定した1ストローク目の領域に小表示する。ここで、2ストローク目の領域で判断するのではなく、1ストローク目の属する領域に認識したメモ数字を小表示する意味は、1ストローク目の位置を優先することによって、処理を簡単にするということと、プレイヤの意図(1ストローク目の位置にメモ数字を書こうとした)を尊重する意味がある。
【0138】
そして、ステップS134と同様の理由で、ステップS163の後、ステップS164で、CPUコア34は、ストロークカウンタ42b4をインクリメントしておく。
【0139】
なお、ステップS161で“NO”が判断されたときには、このときの手書き入力(現ストローク)は、2ストロークで完成する数字の1ストローク目であると判断し、ステップS165で、手書きイメージ記憶領域42b2(図4)に保存しておいた現ストロークの手書きイメージを、第2のLCD14に表示するとともに、ステップS167で、以後の手書き入力に備えて、ストロークカウンタ42b4を「1」にし、その後ステップS101(図10)に戻る。
【0140】
ここまでで、図10および図11を参照して、1ストロークだけの手書き入力による解答数字およびメモ数字の大表示および小表示について説明した。さらには、図12を参照して、2ストロークの手書き入力で完成する解答数字およびメモ数字の大表示および小表示が可能なことを説明した。しかしながら、図12のステップS147で“NO”が判断される場合、つまり、1ストローク目の軌跡データと2ストローク目の軌跡データとを一緒にして文字認識したときに、所定以上の認識率(スコア値)が得られないか、あるいは高いスコア値を有する認識候補が本来2ストロークを要する数字(「4」,「5」,「7」)ではないものである場合には、別のメモ数字を上書きしたり、または前ストロークとは別の位置に手書きしたりした可能性があるため、この実施例では、その場合には、図13のステップS169で、現ストロークの手書きデータだけで文字認識を行うようにしている。
【0141】
すなわち、ステップS169で現ストロークの入力軌跡データだけで文字認識処理を実行する。そして、ステップS171において、CPUコア34は、現ストロークだけの認識による認識率が前ストロークも含めた認識率(ステップS145)より小さいかどうか判断する。このステップS171で“YES”が判断されたときには、図11のステップS117に戻る。したがって、この場合には、図5または図6の可能性がある。
【0142】
しかしながら、ステップS171で“YES”が判断されると、CPUコア34は、続くステップS173で、現ストロークと前ストロークが同じ領域かどうか判断する。そしてこのステップS173で“YES”のときには、ステップS177で、ステップS143で認識した認識結果を前ストロークの同じ位置および同じ大きさで表示する。つまり、メモ数字として前ストロークの領域に小表示する。この場合のメモ数字は、2ストロークではなかったか、または2ストロークだったけれども所定以上の認識率(スコア)がなかったかである。
【0143】
ステップS173で“NO”が判断されるということは、現ストロークの領域と前ストロークの領域とが違うということであり、この場合には、ステップS175において、減ストロークがある程度大きいか(数4)どうか判断する。“ステップS175でYES”なら、ステップS179で、このとき認識できた数字(本来2ストロークを要する数字(「4」,「5」,「7」ではなかった)を桝目62AAに大表示する。
【0144】
このように、図13では、2ストローク入力があったものの、認識できた数字は本来2ストロークを要する数字(「4」,「5」,「7」)ではなかった場合の小表示および大表示が行われる。そして、ステップS177またはS179の後はステップS101に戻る。
【0145】
ステップS171で“NO”が判断されたとき、またはステップS175で“NO”が判断された場合には、いずれも、その現ストロークを1ストローク目のストロークとみなして判断するために、図11のステップS117に戻る。
【0146】
このようにして、図9のステップS7が実行され、図10‐図13に従って、そのときの手書き入力による数字が解答数字であったかメモ数字であったかに応じて、第2のLCD14に大表示または小表示される。
【0147】
そして、図9のステップS19で、CPUコア34は、ゲームプレイヤによって確定処理が実行されたかどうか、判断する。確定処理とは、たとえば桝目62AAに小表示されていたメモ数字を解答数字として確定させるための処理であるが、その方法はいくつかある。たとえば、先に説明したように、拡大桝目62AAに解答数字を大表示した状態で図3に示すスクロール矢印63U,63D,63L,63Rのどれかにタッチして隣接桝目を選択する方法である。そして、ステップS19では、このような確定処理が実行されたかどうか、判断する。
【0148】
なお、メモ数字を記入することなく最初から解答数字を手書きしたときには、その解答数字が桝目62AAに大表示されている状態で、スクロール矢印63U,63D,63L,63Rのどれかにタッチして他の空桝目を選択することによって、そのときの解答数字を最終的な解答数字として確定させることができる。
【0149】
ステップS19で確定処理が実行されないうちは、メモ数字はメモ数字のままで、ステップS21で、適宜の領域に小表示される。その後、ステップS7に戻り、手書き入力、文字認識が実行される。
【0150】
ステップS19で“YES”が判断されたとき、次のステップS23で、CPUコア34は、次の手書き入力に備えてストロークカウンタ42b4(図4)をリセットする(「0」にする)。したがって、ストロークカウンタ42b4のリセット(「0」)を確定処理がなされたかどうかの判断基準とするようにしてもよい。
【0151】
その後、ステップS25で、CPU34は、ゲームプログラム42a1に、問題に併せて設定されている解答を参照して、そのとき確定処理した解答数字が正しいかどうか判定する。そして、その判定の結果、正答なのか誤答なのかをたとえば第1のLCD12および/または第2のLCD14で、ゲームプレイヤが確認できるように、表示する。
【0152】
その後、ステップS13に進み、同じパズルを続けるかどうか判断し、“YES”の場合には、次のステップS29で次の空桝目を選択して、ステップS3に戻る。
【0153】
なお、この発明でプレイ可能なゲームとしては、数独パズルのように桝目に数字を埋めていくものだけでなく、桝目に数字や文字あるいは記号を埋める、たとえばサムクロス,クロスワード,スケルトン,サムナンプレ,合体ナンプレなどの任意のパズルが考えられる。したがって、この発明で入力するものは、実施例のような数字だけではなく、文字や記号の場合もある。ただし、特許請求の範囲等では、煩瑣を回避するために、これらを代表する用語「文字」を用いたので、この用語「文字」は数字や記号も含む概念であると理解されたい。
【図面の簡単な説明】
【0154】
【図1】図1はこの発明のゲーム装置の一実施例を示す図解図である。
【図2】図2は図1に示す実施例のゲーム装置の電気的な構成を示すブロック図である。
【図3】図3は図1に示すゲーム装置でゲームの一例としての「数独」をプレイしている状態を示す図解図である。
【図4】図4は図2に示すRAMのメモリマップの一例を示す図解図である。
【図5】図5は手書き入力の認識結果を大表示(確定表示)する場合の一例を示す図解図である。
【図6】図6は手書き入力の認識結果を小表示(メモ表示)する場合の一例を示す図解図である。
【図7】図7は1ストローク目の履歴に2ストローク目の履歴を加えて手書き入力を認識できる場合の一例を示す図解図である。
【図8】図8は1ストローク目の履歴に2ストローク目の履歴を加えたても認識できない場合の一例を示す図解図である。
【図9】図9は図1および図2に示す実施例のゲーム装置で「数独」をプレイするときの動作を示すフロー図である。
【図10】図10は図9に示すフロー図における手書き入力処理の動作を示すフロー図である。
【図11】図11は図10に続く手書き入力処理の動作を示すフロー図である。
【図12】図12は図11に続く手書き入力処理の動作を示すフロー図である。
【図13】図13は図12に続く手書き入力処理の動作を示すフロー図である。
【符号の説明】
【0155】
10 …ゲーム装置
12,14 …LCD
22 …操作スイッチ
24 …タッチパネル
26 …スティック等
28 …メモリカード
28a …ROM
28b,42 …RAM
34 …CPUコア
60 …ゲーム画面
62 …桝目
62A …問題の桝目
62AA …拡大桝目
63U,63D,63L,63R …スクロールボタン

【特許請求の範囲】
【請求項1】
枡目に文字を埋めるゲームをプレイするゲーム装置であって、
解答文字を入力する解答文字入力手段、
前記解答文字入力手段によって解答文字が入力されたときその解答文字を表示する解答文字表示手段、
前記解答文字に基づいてゲーム判定を行うゲーム判定手段、
前記ゲーム判定手段によるゲーム判定の結果を表示する結果表示手段、
メモ文字を入力するメモ文字入力手段、
前記メモ文字入力手段によって入力されたメモ文字を表示するメモ文字表示手段、および
前記メモ文字を前記解答文字として確定するための確定手段を備える、ゲーム装置。
【請求項2】
前記メモ文字入力手段は複数のメモ文字を入力可能であり、前記メモ文字表示手段は前記複数のメモ文字を同時に表示する、請求項1記載のゲーム装置。
【請求項3】
前記解答文字入力手段および前記メモ文字入力手段は、
規定された手書き領域を有する手書き入力手段、
前記手書き入力手段による手書き入力の軌跡を記憶する軌跡記憶手段、
前記軌跡に従って手書き文字を認識する文字認識手段、および
前記軌跡に基づいて、そのときの手書き文字の大きさがある程度より大きいかどうか判定する大きさ判定手段を含み、
前記大きさ判定手段の肯定的判定に応じて前記解答文字入力手段が、前記大きさ判定手段の否定的判定に応じて前記メモ文字入力手段が、それぞれ、前記文字認識手段によって認識した文字を前記解答文字または前記メモ文字として採用する、請求項1または2記載のゲーム装置。
【請求項4】
前記軌跡記憶手段は1ストローク毎に軌跡を記憶し、さらに
ストローク数をカウントするストロークカウンタを備え、
前記文字認識手段は、前記ストロークカウンタのカウント値が所定値でないとき、前ストロークおよび現ストロークの両方の軌跡に基づいて手書き文字を認識する、請求項3記載のゲーム装置。
【請求項5】
前記メモ文字表示手段は、現ストロークの手書き文字に対して前記大きさ判定手段が否定的判定をしたとき、前ストロークの手書き位置に前記メモ文字を表示する、請求項4記載のゲーム装置。
【請求項6】
前記文字認識手段は、前記ストロークカウンタのカウント値が前記所定値のとき、現ストロークの軌跡に基づいて手書き文字を認識する、請求項4または5記載のゲーム装置。
【請求項7】
表示手段と、記憶手段と、手書き入力手段とを備えた手書き入力装置を、手書き入力装置として機能させる手書き入力プログラムであって、手書き入力装置のコンピュータに、
手書き入力の軌跡を前記記憶手段に記憶する、手書き入力ステップ、
前記手書き入力の軌跡に基づき、当該軌跡が前記記憶手段に予め設定された手書き入力領域に対して占有する領域を特定して、前記記憶手段に記憶する、軌跡領域特定ステップ、
前記記憶手段に記憶された手書き入力の軌跡を文字認識処理する、文字認識ステップ、
前記軌跡領域特定ステップに応じて特定された領域の大きさに応じた大きさでかつ、前記領域の位置に応じた前記表示手段の位置に、前記認識結果を表示する、認識結果表示ステップ、を実行させる、手書き入力プログラム。
【請求項8】
認識結果表示ステップは、前記軌跡領域特定ステップに応じて特定された領域の大きさに応じて、前記認識結果の表示サイズを決定する、文字表示サイズ決定ステップ、および前記軌跡領域特定ステップに応じて特定された領域の位置に応じて、前記文字認識の結果の表示位置を決定する、文字表示位置決定ステップを含む、請求項7記載の手書き入力プログラム。
【請求項9】
前記文字表示サイズ決定ステップは、前記軌跡領域特定ステップに応じて特定された領域の中心点が、前記記憶手段に予め記憶された前記手書き入力領域の所定範囲に含まれているかどうか、かつ、当該領域が所定の大きさであるかどうかをそれぞれ判定することによって、前記表示サイズを決定する、請求項8記載の手書き入力プログラム。
【請求項10】
前記表示位置決定ステップは、前期領域の中心点が、前記記憶手段に予め記憶された前記認識結果の複数の表示位置のいずれに対応するかを判断し、対応する当該表示位置に、当該認識結果を表示する、請求項8または9記載の手書き入力プログラム。

【図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


【公開番号】特開2007−195800(P2007−195800A)
【公開日】平成19年8月9日(2007.8.9)
【国際特許分類】
【出願番号】特願2006−19205(P2006−19205)
【出願日】平成18年1月27日(2006.1.27)
【出願人】(000233778)任天堂株式会社 (1,115)
【Fターム(参考)】