(第1の実施形態)
本発明の第1の実施形態は、本発明の携帯端末装置を携帯型のゲーム装置に適用した実施形態の例である。本ゲーム装置は、同種の他のゲーム装置(本発明の他の通信機器の一例)とで通信システムを構成する。そして、本ゲーム装置は、近距離無線通信を行うことで、他のゲーム装置から情報を受信し、取得した情報(本発明の第1データ)を使用してアプリケーションの所定の処理を実行する。この受信したデータが多い程、多彩な所定の処理を行うことができる。なお、本実施形態で実行するアプリケーション及び所定の処理の内容については後述する。
上述したようなゲーム装置は、近距離無線通信可能な範囲に位置するゲーム装置からしか情報の受信を行うことができない。このため、ゲーム装置に他のゲーム装置から多くの情報を受信させるためには、ユーザがゲーム装置を持ち歩いて(携帯して移動して)、ゲーム装置が他のゲーム装置と近距離無線通信の可能な範囲に位置する(すれ違える)機会を増やすことが重要である。
しかしながら、本ゲーム装置があまり普及していない地域や、人口密度が低い地域等では、ゲーム装置を携帯してユーザが移動しても、他のゲーム装置とすれ違える機会が少ない。このため、ゲーム装置は、他のゲーム装置から情報を受信することができず、受信した情報を用いて多彩な処理をすることができない。このことから、ユーザは他のゲーム装置とすれ違うことで他のゲーム装置からの情報を自機で受信する面白さを体感することができなかった。
本実施形態では、他のゲーム装置とすれ違える機会が少ない地域であっても、ユーザに上記の様な面白さを疑似的に体感させることが可能なようにすることを目的とする。このために、ユーザがゲーム装置を携帯して移動することで、ゲーム装置は、所定期間におけるゲーム装置の移動量に応じたデータ(本発明の第2データ)を取得し、この移動量に応じて多彩な所定の処理を実行する。これによって、ユーザがゲーム装置を携帯して移動する程、多彩な所定の処理が実行され、ユーザは疑似的に他のゲーム装置とすれ違って他のゲーム装置から情報を取得したような面白さを体感することができる。
なお、ゲーム装置の移動量を検出するためには様々な手法があるが、本実施形態では、ゲーム装置に内蔵する加速度を用いてユーザの歩数が取得され、この歩数を示すデータがゲーム装置の移動量に応じたデータとして使用される。本実施形態では、ゲーム装置自体がユーザの歩数を検知しているが、ゲーム装置とは別体の歩数計測装置を用いてユーザの歩数を検知する構成であってもよい。また、歩数を計測する代わりに、ゲーム装置が、GPS機能を備えて所定期間毎に自機の位置を取得及び記憶し、これを用いてゲーム装置の移動距離を取得し、この移動距離をゲーム装置の移動量として用いてもよい。また、ゲーム装置が、アクセスポイントと通信することでアクセスポイントの位置を取得及び記憶し、アクセスポイントの位置を自機の位置として自機の移動距離を取得し、この移動距離をゲーム装置の移動量として用いてもよい。以下に、本実施形態について図面を用いて詳細に説明する。
図1は、第1の実施形態にかかる通信システムを構成するゲーム装置の概観図である。図1において、ゲーム装置1は、折り畳み型の携帯ゲーム装置であり、開いた状態(開状態)のゲーム装置1を示している。ゲーム装置1は、開いた状態においてもユーザが両手または片手で把持することができるようなサイズで構成される。
ゲーム装置1は、下側ハウジング11および上側ハウジング21を有する。下側ハウジング11と上側ハウジング21とは、開閉可能(折り畳み可能)に連結されている。図1の例では、下側ハウジング11および上側ハウジング21は、それぞれ横長の長方形の板状で形成され、互いの長辺部分で回転可能に連結されている。通常、ユーザは、開状態でゲーム装置1を使用する。また、ユーザは、ゲーム装置1を使用しないときには閉状態としてゲーム装置1を保管する。
下側ハウジング11には、下側LCD(Liquid Crystal Display:液晶表示装置)12が設けられる。下側LCD12は横長形状であり、長辺方向が下側ハウジング11の長辺方向に一致するように配置される。なお、本実施形態では、ゲーム装置1に内蔵されている表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置等、他の任意の表示装置を利用してもよい。また、ゲーム装置1は、任意の解像度の表示装置を利用することができる。
下側ハウジング11には、入力装置として、各操作ボタン14A〜14Kおよびタッチパネル13が設けられる。図1に示されるように、各操作ボタン14A〜14Kのうち、方向入力ボタン14A、操作ボタン14B、操作ボタン14C、操作ボタン14D、操作ボタン14E、電源ボタン14F、スタートボタン14G、およびセレクトボタン14Hは、上側ハウジング21と下側ハウジング11とを折りたたんだときに内側となる、下側ハウジング11の内側主面上に設けられる。方向入力ボタン14Aは、例えば選択操作等に用いられる。各操作ボタン14B〜14Eは、例えば決定操作やキャンセル操作等に用いられる。電源ボタン14Fは、ゲーム装置1の電源をオン/オフするために用いられる。図1に示す例では、方向入力ボタン14Aおよび電源ボタン14Fは、下側ハウジング11の内側主面中央付近に設けられる下側LCD12に対して、左右一方側(図1では左側)の当該主面上に設けられる。また、操作ボタン14B〜14E、スタートボタン14G、およびセレクトボタン14Hは、下側LCD12に対して左右他方側(図1では右側)となる下側ハウジング11の内側主面上に設けられる。方向入力ボタン14A、操作ボタン14B〜14E、スタートボタン14G、およびセレクトボタン14Hは、ゲーム装置1に対する各種操作を行うために用いられる。
なお、図1においては、操作ボタン14I〜14Kの図示を省略している。例えば、Lボタン14Iは、下側ハウジング11の上側面の左端部に設けられ、Rボタン14Jは、下側ハウジング11の上側面の右端部に設けられる。また、ゲーム装置1は、各操作ボタン14A〜14Kとは別の入力装置として、さらにタッチパネル13を備えている。タッチパネル13は、下側LCD12の画面上を覆うように装着されている。なお、本実施形態では、タッチパネル13は、例えば抵抗膜方式のタッチパネルが用いられる。ただし、タッチパネル13は、抵抗膜方式に限らず、任意の押圧式のタッチパネルを用いることができる。また、本実施形態では、タッチパネル13として、例えば下側LCD12の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル13の解像度と下側LCD12の解像度とが一致している必要はない。また、下側ハウジング11の右側面には、挿入口(図1に示す破線)が設けられている。挿入口は、タッチパネル13に対する操作を行うために用いられるタッチペン27を収納することができる。
また、下側ハウジング11の右側面には、メモリカード28を収納するための挿入口(図1では、二点鎖線で示している)が設けられている。この挿入口の内側には、ゲーム装置1とメモリカード28とを電気的に接続するためのコネクタ(図示せず)が設けられる。メモリカード28は、例えばSD(Secure Digital)メモリカードであり、コネクタに着脱自在に装着される。メモリカード28は、例えば、ゲーム装置1によって撮影された画像を記憶(保存)したり、他の装置で生成された画像をゲーム装置1に読み込んだりするために用いられる。
さらに、下側ハウジング11の上側面には、カートリッジ29を収納するための挿入口(図1では、一点鎖線で示している)が設けられている。この挿入口の内側にも、ゲーム装置1とカートリッジ29とを電気的に接続するためのコネクタ(図示せず)が設けられる。カートリッジ29は、ゲームプログラム等を記録した記録媒体であり、下側ハウジング11に設けられた挿入口に着脱自在に装着される。また、下側ハウジング11と上側ハウジング21との連結部の左側部分には、3つのLED15A〜15Cが取り付けられる。
一方、上側ハウジング21には、上側LCD22が設けられる。上側LCD22は横長形状であり、長辺方向が上側ハウジング21の長辺方向に一致するように配置される。なお、下側LCD12と同様、上側LCD22に代えて、他の任意の方式および任意の解像度の表示装置を利用してもよい。なお、上側LCD22上を覆うように、タッチパネルを設けてもかまわない。例えば、上側LCD22には、ユーザに各操作ボタン14A〜14Kやタッチパネル13の役割を教えるための、操作説明画面が表示される。
また、上側ハウジング21には、2つのカメラ(内側カメラ23および外側カメラ25)が設けられる。図1に示されるように、内側カメラ23は、上側ハウジング21の連結部付近の内側主面に取り付けられる。一方、外側カメラ25は、内側カメラ23が取り付けられる内側主面の反対側の面、すなわち、上側ハウジング21の外側主面(ゲーム装置1が閉状態となった場合に外側となる面であり、図1に示す上側ハウジング21の背面)に取り付けられる。
なお、上記連結部付近の内側主面には、音声入力装置としてマイク(図2に示すマイク41)が収納されている。そして、上記連結部付近の内側主面には、マイク41がゲーム装置1外部の音を検知できるように、マイクロフォン用孔16が形成される。マイク41を収納する位置およびマイクロフォン用孔16の位置は必ずしも上記連結部である必要はない。また、上側ハウジング21の外側主面には、第4LED26(図1では、破線で示す)が取り付けられる。第4LED26は、外側カメラ25によって撮影が行われた(シャッターボタンが押下された)時点で点灯する。また、上側ハウジング21の内側主面中央付近に設けられる上側LCD22に対して、左右両側の当該主面に音抜き孔24がそれぞれ形成される。音抜き孔24の奥の上側ハウジング21内にはスピーカが収納されている。
次に、図2を参照して、ゲーム装置1の内部構成を説明する。なお、図2は、ゲーム装置1の内部構成の一例を示すブロック図である。
図2において、ゲーム装置1は、CPU(Central Processing Unit)31、メインメモリ32、メモリ制御回路33、保存用データメモリ34、プリセットデータ用メモリ35、メモリカードインターフェース(メモリカードI/F)36、無線通信モジュール37、マイコン38、開閉スイッチ38c、電源スイッチ38d、電源回路39、インターフェース回路(I/F回路)40、カートリッジI/F43および加速度センサ44等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて、下側ハウジング11(または上側ハウジング21でもよい)内に収納される。
CPU31は、所定のプログラム(本発明の情報処理プログラムを含む)を実行するための情報処理手段である。本実施形態では、所定のプログラムがゲーム装置1内のメモリ(例えば保存用データメモリ34)やメモリカード28および/または29に記憶されており、CPU31は、当該所定のプログラムを実行することによって、後述するピース集め処理を含む所定の処理を実行する。なお、CPU31によって実行されるプログラムは、ゲーム装置1内のメモリに予め記憶されていてもよいし、メモリカード28および/またはカートリッジ29から取得されてもよいし、他の機器との通信によって他の機器から取得されてもよい。例えば、インターネットを経由して所定のサーバからダウンロードすることで取得しても良いし、据置型ゲーム装置と通信を行うことで、当該据置型ゲーム装置に記憶されている所定のプログラムをダウンロードすることで取得しても良い。
CPU31には、メインメモリ32、メモリ制御回路33、およびプリセットデータ用メモリ35が接続される。また、メモリ制御回路33には、保存用データメモリ34が接続される。メインメモリ32は、CPU31のワーク領域やバッファ領域として用いられる記憶手段である。すなわち、メインメモリ32は、上記所定のプログラムに用いられる各種データを記憶したり、外部(メモリカード28および29や他の機器等)から取得されるプログラムを記憶したりする。本実施形態では、メインメモリ32として、例えばPSRAM(Pseudo−SRAM)を用いる。保存用データメモリ34は、不揮発性の記憶媒体によって構成されており、例えば本実施例ではNAND型フラッシュメモリで構成される。メモリ制御回路33は、CPU31の指示に従って、保存用データメモリ34に対するデータの読み出しおよび書き込みを制御する回路である。プリセットデータ用メモリ35は、ゲーム装置1において予め設定される各種パラメータ等のデータ(プリセットデータ)を記憶するための記憶手段である。プリセットデータ用メモリ35としては、SPI(Serial Peripheral Interface)バスによってCPU31と接続されるフラッシュメモリを用いることができる。
メモリカードI/F36は、CPU31に接続される。メモリカードI/F36は、コネクタに装着されたメモリカード28に対するデータの読み出しおよび書き込みを、CPU31の指示に応じて行う。また、カートリッジI/F43はCPU31に接続される。カートリッジI/F43は、コネクタに装着されたカートリッジ29に対するデータの読み出しおよび書き込みをCPU31の指示に従って行う。本実施形態では、ゲーム装置1が実行することが可能なアプリケーションプログラム(本実施形態ではピース集めアプリケーション)がカートリッジ29から読み出されてCPU31によって実行されたり、当該アプリケーションプログラムに関するデータ(例えばゲームのセーブデータ等)がカートリッジ29に書き込まれたりする。
無線通信モジュール37は、例えばIEEE802.11b/gの規格に準拠した方式により、無線LANに接続する機能を有する。無線通信モジュール37は、例えばデータ伝送距離が10mの範囲内の近距離無線通信を行い、この無線通信で使用する電波は例えば無線局の免許が不要な程の微弱電波である。無線通信モジュール37は、CPU31に接続される。CPU31は、無線通信モジュール37を用いてインターネットを介して、又は介さないで他の機器との間でデータを送受信することができる。例えば、CPU31は、アクセスポイントと無線通信を行うことでアクセスポイントから情報を取得することができる。
また、CPU31は、無線通信モジュール37を用いて同種の他のゲーム装置との間でデータを送受信することができる。例えば、ゲーム装置1(ゲーム装置1A)のCPU31は、自機と他のゲーム装置(ゲーム装置1B)とが互いに通信可能範囲内(例えば、両機間の距離が10m以内)に位置するときにデータを送受信することができる。また、本実施形態では、CPU31は、通信可能範囲内にある他のゲーム装置1Bとの間で自動的に通信(この通信を以下、「すれちがい通信」と記載する)を行い、自動的にデータを送受信する。本実施形態では、ゲーム装置1Aは、「すれちがい通信」によって他のゲーム装置1Bの記憶する情報(例えば、後述するピース情報)を取得することができ、かつ、「すれちがい通信」によって自機が記憶する情報(例えば、後述するピース情報)をゲーム装置1Bに提供することもできる。このピース情報についての詳細は後述する。
「すれちがい通信」はゲーム装置1A、1Bがそれぞれ「すれちがい通信モード」に設定されているときに限って行われる。この「すれちがい通信モード」の設定は、例えば、ユーザが各操作ボタン14A〜14Kやタッチパネル13を操作して、「すれちがい通信モード」を選択した状態でゲーム装置1を閉じることで行われる。「すれちがい通信モード」が設定されていると、ゲーム装置1Aは、後述するスリープモード(省電力モード)になるととともに、自動的かつ継続的に他のゲーム装置1Bを探索して、探索の結果見つかったゲーム装置1Bとの間で自動的に通信(すれちがい通信)を行い、当該通信が完了した後で自動的に切断を行う。その後、ゲーム装置1Aはさらに他のゲーム装置1Bを探索して、上記と同様な処理を繰り返す。
また、CPU31には、マイコン38が接続される。このマイコン38は、メモリ38a及びRTC38bを含む。メモリ38aは、例えばRAM等で構成され、マイコン38が実行するプログラムやこのプログラムの実行に必要なデータがメモリカード28、カートリッジ29や保存用データメモリ34等から読み出されて記憶される。RTC38bは、時間をカウントしてマイコン38に出力する。例えば、マイコン38は、RTC38bによって計時された時間に基づいて、日付及び現在時刻等を計算することもできる。
マイコン38には、開閉スイッチ38c及び電源スイッチ38dが接続される。開閉スイッチ38cは、ゲーム装置1が開けられている状態(開状態)ではオンされ、閉じられている状態(閉状態)ではオフされ、このオンオフの信号をマイコン38に入力する。電源スイッチ38dは、ゲーム装置1の主電源をオンオフするためのスイッチである。ゲーム装置1の主電源がオンされている状態で電源スイッチ38dがオフされると、マイコン38は電源回路39にマイコン38を除く全回路コンポーネントへの電力供給の停止を指示する。ここで、電源回路39は、ゲーム装置1が有する電源(典型的には電池であり、下側ハウジング11に収納される)から供給される電力を制御し、ゲーム装置1の各部品に電力を供給する。
ゲーム装置1の主電源がオフされている状態で電源スイッチ38dがオンされると、マイコン38のBootROMとしても機能するメモリ38aが起動される。この場合には、マイコン38は開閉スイッチ38cのオンオフ(ゲーム装置1の開閉状態)に基づいて電源制御を行う。具体的には、開閉スイッチ38cがオフのとき(ゲーム装置1が閉状態のとき)、マイコン38は、電源回路39からゲーム装置1の一部のコンポーネントに電力を供給するモード(スリープモード)で電源制御を行う処理(以下、「スリープ処理」と記載する)を実行する。この実施形態では、一部のコンポーネントは、例えば、CPU31、無線通信モジュール37等である。従って、スリープモードであっても、無線通信モジュール37によって上述した「すれちがい通信」等を実行することが可能である。なお、本実施形態では、スリープモード中には、CPU31によってアプリケーションが実行されることはない。
ここで、ゲーム装置1がスリープ状態において無線通信モジュール37で受信した情報を記憶したり、送信する情報を読み出す場合には、停止されていたCPU31のクロックの起動が無線通信モジュール37によって指示され、その後無線通信モジュール37からCPU31に通信の開始指示が与えられる。この後、CPU31がマイコン38に指示してメモリ制御回路33及び保存用データメモリ34への電力の供給が開始される。これによって、ゲーム装置1は、「すれちがい通信」によって、他のゲーム装置1に対して保存用データメモリ34に記憶されたデータを送信したり、他のゲーム装置1から受信したデータを保存用データメモリ34に記憶させたりすることができる。
また、マイコン38は、スリープモードでは、歩数計測プログラムを実行することで、後述の加速度センサ44を用いてユーザの歩数を計測する処理(歩数カウント処理)を実行する。マイコン38は、計測した歩数を示す歩数データを所定の期間毎に保存用データメモリ34に記憶させる。このために、マイコン38は、停止されていたCPU31のクロックの起動を指示する。この後、CPU31がマイコン38に指示してメモリ制御回路33及び保存用データメモリ34への電力の供給が開始される。これによって、ゲーム装置1は、歩数データを保存用データメモリ34に記憶させることができる。なお、歩数カウント処理については詳しくは図16を用いて後述する。
また、ゲーム装置1が開状態になり、開閉スイッチ38cがオンになったときには、マイコン38は、スリープモードを解除して通常モードになり、電源回路39に全回路コンポーネントへの電力供給の開始を指示する。
また、マイコン38には、加速度センサ44が接続される。加速度センサ44は、例えば三軸の加速度センサであり、例えば下側ハウジング11の内側に設けられる。なお、上側ハウジング22の内側に設けられてもよい。加速度センサ44は、ゲーム装置1の下側LCD12(上側ハウジング21に設けられているときには上側LCD22)の面に対して垂直な方向の加速度と、下側LCD12(上側ハウジング21に設けられているときには上側LCD22)の面に対して平行であり、互いに直交する2方向の加速度を検出する。加速度センサ44は、検出した加速度を示す信号(加速度信号)をマイコン38に出力する。マイコン38は、加速度信号に基づいて、ゲーム装置1の向きを検出したり、ゲーム装置1の振動の大きさを検出することができる。
また、ゲーム装置1は、マイク41およびアンプ42を備えている。マイク41およびアンプ42は、それぞれI/F回路40に接続される。マイク41は、ゲーム装置1に向かって発声されたユーザの音声を検知して、当該音声を示す音声信号をI/F回路40に出力する。アンプ42は、I/F回路40から音声信号を増幅してスピーカ(図示せず)から出力させる。I/F回路40は、CPU31に接続される。
また、タッチパネル13は、I/F回路40に接続される。I/F回路40は、マイク41およびアンプ42(スピーカ)の制御を行う音声制御回路と、タッチパネル13の制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル13からの信号に基づいて所定の形式のタッチ位置データを生成してCPU31に出力する。例えば、タッチ位置データは、タッチパネル13の入力面に対して入力が行われた位置の座標を示すデータである。なお、タッチパネル制御回路は、タッチパネル13からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。CPU31は、I/F回路40を介して、タッチ位置データを取得することにより、タッチパネル13に対して入力が行われた位置を知ることができる。
操作ボタン14は、上記各操作ボタン14A〜14Kから構成され、CPU31に接続される。操作ボタン14からCPU31へは、各操作ボタン14A〜14Kに対する入力状況(押下されたか否か)を示す操作データが出力される。CPU31は、操作ボタン14から操作データを取得することによって、操作ボタン14に対する入力に応じた処理を実行する。
内側カメラ23および外側カメラ25は、それぞれCPU31に接続される。内側カメラ23および外側カメラ25は、CPU31の指示に応じて画像を撮影し、撮影した画像データをCPU31に出力する。また、下側LCD12および上側LCD22は、それぞれCPU31に接続される。下側LCD12および上側LCD22は、それぞれCPU31の指示に従って画像を表示する。
次に、図3を参照して、ゲーム装置1がピース集めアプリケーションを実行することで、ユーザに提供されるピース集めゲームを説明する。図3は、ピース集めゲームにおいて表示されるメイン画面及び操作画面の一例を示す図である。このメイン画面及び操作画面は、ピース集めアプリケーションを起動したときに表示され、メイン画面は上側LCD22に表示され、操作画面は下側LCD12に表示される。メイン画面には、1のコレクション画像G1を複数に分割したピース画像G2、ガイド矢印G3及び保有コイン数G4が表示される。
コレクション画像G1は何らかの図柄を示す画像である。コレクション画像G1は複数種類(例えば6種類)用意され、これらの複数種類のコレクション画像G1はそれぞれ地域(例えば、首都圏、近畿地方、東海地方等)等の属性が設定されている。例えば、コレクション画像G1は、それぞれの属性を表すような図柄(例えば属性の地域の観光名所を示す図柄)を表す。コレクション画像G1は複数種類用意されているが、メイン画面に表示されるコレクション画像G1は1個のみである。
ピース画像G2はコレクション画像G1を所定数に分割した画像であり、メイン画面にはゲーム装置1が所有するピース画像G2を組み合わせたコレクション画像G1が表示される。図3では、表示しているコレクション画像G1については、計8個のピース画像G2をゲーム装置1が所有しており、この8個のピース画像G2を組み合わせた未完成のコレクション画像G1が表示されている。
2つのガイド矢印G3は、コレクション画像G1の左側と右側にそれぞれ表示されている。この矢印G3は、メイン画面に表示されるコレクション画像G1を切り替える操作をユーザにガイドするための画像であり、この矢印G3にガイドされて、例えば、LボタンやRボタンをユーザが押下することで、ゲーム装置1は、表示するコレクション画像G1を切り替えてメイン画面に表示する。
本実施形態のピース集めゲームとは、パズルのように、1枚のコレクション画像G1を複数のピース画像G2を使用して完成させるゲームである。すなわち、このゲームは、所定数(例えば、縦3つ×横5つの計15個)のピース画像G2を所定の種類だけゲーム装置1に取得(収集)させるゲームであり、これによって、収集したピース画像G2によって完成したコレクション画像G1を生成することができる。なお、ピース集めアプリケーションをゲーム装置1で初回に起動したとき(ピース集めアプリケーションを初めてゲーム装置1にインストールして実行したとき)には、ゲーム装置1は、僅かな個数(例えば1個)のピース画像G2のみを所有しているだけである。この様な状態から、ユーザは、コレクション画像G1を完成させるに足る所定の種類のピース画像G2をゲーム装置1で収集するのである。
ピース画像G2の収集方法には、まず、ゲーム装置1が他のゲーム装置1と上述した「すれちがい通信」を行うことでピース画像G2を取得する方法がある。この「すれちがい通信」は近距離無線通信である。このため、ユーザがゲーム装置1を携帯して持ち歩くことで、ゲーム装置1が他のゲーム装置1と近距離無線通信を行うことができる程の近距離に位置する機会が増える。これによって、多くのピース画像(多彩なピース)を集めることができる。なお、ゲーム装置1は、「すれちがい通信」によって、他のゲーム装置1からピース画像G2を他のゲーム装置1から取得するだけでなく、他のゲーム装置1に対して自己の所有するピース画像G2の情報を送信することで他のゲーム装置1に自己の所有するピース画像G2を取得させることができる。
なお、本実施形態では、ゲーム装置1は、全てのコレクションデータG1についてのピース画像G2を予め記憶しておき、そのうち許可されたピース画像G2のみを取得したピース画像G2として使用することができる。そして、「すれちがい通信」において、ゲーム装置1と他のゲーム装置1は、1のピース画像G2を特定するための情報であるピース情報を送受信し合い、受信したピース情報で特定されるピース画像G2を取得したピース画像G2として処理する。本明細書では、ゲーム装置1が他のゲーム装置1との間でピース情報を送信又は受信することを、「ピース画像G2を送信又は受信する」と記載する場合があるが、実際にはピース画像G2そのものではなくピース情報が送信又は受信される。
次に、操作画面について説明する。図3に示すように、上側LCD22にメイン画面が表示されているときには、下側LCD12には操作画面が表示される。この操作画面には、ピース持ち替え操作子G5と、すれちがい通信操作子G6が表示されており、ピース持ち替え操作子G5をユーザがタッチすると、ゲーム装置1は他のゲーム装置1に対して送信するピース画像G2をユーザに選択させることができる。また、すれちがい通信操作子G6をユーザがタッチすると、ゲーム装置1はユーザに選択されたピース画像G2のピース情報を他のゲーム装置1に送信するためにすれちがい通信モードになる。このモード中には、ゲーム装置1は、近距離無線通信範囲内に位置する他のゲーム装置1を自動的にかつ周期的に探索し、探索できた他のゲーム装置1との間でピース情報を送受信し合う。
次に、本実施形態の特徴となる、ピース画像G2の第2の収集方法を説明する。第2のピース画像G2の収集方法は、ユーザがゲーム装置1を携帯して歩くことでゲーム装置1を移動させ、この移動量に基づいてゲーム装置1でピース画像G2を取得する方法である。具体的には、本実施形態では、ゲーム装置1は歩数計として機能し、ユーザが、ゲーム装置1を携帯して歩くことでゲーム装置1にユーザの歩数を取得させ、この歩数をゲームコインに変換させる。なお、メイン画面に表示される保有コイン数G4は、ユーザが保有するコイン数を示す画像である。
そして、本実施形態では、ユーザが保有するコインを使用して、所有するピース画像G2に変換することができるため、本実施形態では、ゲーム装置1の移動量に応じてピース画像G2を取得することができる。このため、ゲーム装置1が普及していない地域や人口密度の低い地域にユーザが居る場合等、ゲーム装置1が他のゲーム装置1と「すれちがい通信」を行うことができる機会があまりない場合でも、ゲーム装置1を携帯して移動する程、ピース画像G2を所有することができる。従って、他のゲーム装置1と「すれちがい通信」を行う状況と似た感覚をユーザに体感させることができる。また、ゲーム装置1が他のゲーム装置1と「すれちがい通信」を行うことができなくても、ピース画像G2の所有数を増やすことができ、コレクション画像G1を完成させてゆくことが可能になる。
なお、本実施形態では、ゲーム装置1が「すれちがい通信」によって他のゲーム装置1からピース画像G2を取得することができないとき、及び取得することができたが取得したピース画像G2でも未だ完成していないコレクション画像G1があるときにのみ、保有コインでピース画像G2を購入することができる。すなわち、ゲーム装置1は、「すれちがい通信」によるピース画像G2の取得することではピース画像G2の取得に不足がある場合の補完として、保有コインを用いてのピース画像の購入を許可するのである。
以下に、図4〜図5Dを用いて本実施形態で実行する「すれちがい通信」の概要を説明する。図4は、すれちがい通信処理の一例を示す通信シーケンス図である。ゲーム装置1はブロードキャストで通信可能圏内に存在する他のゲーム装置1に対してビーコンフレーム(図5Aを用いて後述する接続要求フレームD1)を送信する。他のゲーム装置1は接続要求フレームD1を受信するとこの接続要求フレームD1の送信元のゲーム装置1に対して接続応答フレームD2(図5Bを用いて後述)を送信する。
自ゲーム装置1が、接続応答フレームD2を受信すると、他のゲーム装置1に対してピース情報を含んだ情報フレームD3(図5C及び図5Dを用いて後述)を送信する。他のゲーム装置1はこの情報フレームD3を受信すると自ゲーム装置1に対して自らの生成した情報フレームD3を返信する。本実施形態では、この様な一連の通信が所定周期毎に繰り返し行われる。なお、自ゲーム装置1が接続要求フレームD1を受信したときには、図4で示す例とは他のゲーム装置1との間で送受信するフレームが逆になる。また、本実施形態では、ゲーム装置1は、情報フレームD3を受信したときにこの情報フレームD3の送信元のゲーム装置1に対して情報フレームD3を送信しているが、この構成に代えて、ゲーム装置1が接続応答フレームD2を送信するときに他のゲーム装置1に対して情報フレームD3を送信してもよい。
以下に、上記「すれちがい通信」において送受信されるフレームについて説明する。図5Aは、接続要求フレームD1の一例を示す図である。接続要求フレームD1は、フレームタイプF_TYP、送信元MAC(Media Access Control)アドレス及び識別IDを含む。フレームタイプF_TYPは、当該フレームの種別を示しており、この場合には接続要求フレームD1であることを示す情報が記述される。識別IDは、アプリケーション(本実施形態では、ピース集めアプリケーション)に固有の識別情報である。
図5Bは、接続応答フレームD2の一例を示す図である。接続応答フレームD2は、フレームタイプF_TYP、宛先MACアドレス、送信元MACアドレス及び識別IDを含む。フレームタイプF_TYPには、接続応答フレームD2であることを示す情報が記述される。識別IDは、アプリケーション(本実施形態では、ピース集めアプリケーション)に固有の識別情報である。
図5Cは、情報フレームD3の一例を示す図である。また、図5Dは、情報フレームD3に含まれる本文データD4の一例を示す図である。情報フレームD3は、フレームタイプF_TYP、宛先MACアドレス、送信元MACアドレス及び本文データD4を含む。本文データD4は識別IDとピース情報D5から構成される。この識別IDは、アプリケーション(本実施形態では、ピース集めアプリケーション)に固有の識別情報である。また、ピース情報D5については詳しくは後述する。
次に、図6及び図7を参照して、ゲーム装置1がメインメモリ32に記憶する各種プログラムや各種データについて説明する。図6は、メインメモリ32が記憶するプログラム及び各種データの一例を示すメモリマップである。各種データはプログラムをゲーム装置1が実行することに応じて記憶される。
メインメモリ32は、プログラム記憶領域32aとデータ記憶領域32bを備える。プログラム記憶領域32aは、ピース集めアプリケーションP1と、すれちがい通信処理をゲーム装置1(無線通信モジュール37及びCPU31)に実行させるための通信プログラムP2が記憶される。このピース集めアプリケーションP1及び通信プログラムP2は、保存用データメモリ34又はメモリカード28、29等から適宜読み出されて記憶される。なお、通信プログラムP2は、マイコン38に読み出されてマイコン38のメモリ38aにも記憶される。
データ記憶領域32bは、交換対象ピース情報記憶領域321、取得ピース情報記憶領域322、受信ボックス323及び送信ボックス324を含む。交換対象ピース情報記憶領域321には、他のゲーム装置1に対して「すれちがい通信」によって送信されるピース情報D5が交換対象ピース情報D6として記憶される。なお、ピース情報D5は、コレクション画像IDと、ピースIDとを含む。以下に図7A及び図7Bを用いてコレクション画像IDとピースIDについて説明する。
図7Aは、複数種類のコレクション画像G1とこのコレクション画像G1を構成するピース画像G2を説明するための図である。本実施形態では、複数種類(例えば6種類)のコレクション画像G1がゲーム装置1で記憶されており、各コレクション画像G1には上述したように地域属性を示すコレクション画像ID(1〜6)が付加されている。そして、各コレクション画像G1を構成するピース画像G2のデータ(後述するピース画像データD9)にも、対応するコレクション画像G1と同じコレクション画像IDが付加されている。また、ピース画像データD9には、コレクション画像G1における位置を表すピースID(例えば、1〜15のうち何れかの数)も付加されている。すなわち、ピース画像G2は、コレクション画像IDによって対応するコレクション画像G1が特定され、ピースIDによってこのコレクション画像G1において組み込まれる位置が特定される。
なお、本実施形態では、ゲーム装置1は、上述したようにコインを消費してピース情報D5を生成し、取得することができる。ここで、ゲーム装置1は、ピース情報D5を生成するときに、ゲーム装置1に予め設定されている地域IDを読み出し、この読み出した地域IDに対応するコレクション画像IDを取得し、このコレクション画像IDとランダムに選択したピースIDを含めてピース情報D5が生成される。図7Bは、地域IDとコレクション画像IDとを対応づけて登録するテーブルTの一例を示す図である。このテーブルTを使用して、地域IDに対応するコレクション画像IDが取得される。また、地域IDは、予めユーザによって設定されて保存用データメモリ34等に記憶され、この保存用データメモリ34等から読み出されてメインメモリ32に記憶される。なお、ピース集めアプリケーションの初回起動時にも、同様にピース情報D5が生成される。
図6に戻って、取得ピース情報記憶領域322には、他のゲーム装置1から取得したピース情報D5が取得ピース情報D7として記憶される。勿論、複数の取得ピース情報D7が取得されているときには、複数個の取得ピース情報D7が記憶される。
受信ボックス323には、「すれちがい通信」によって他のゲーム装置1から受信した情報フレームD3の本文データD4が、このデータD4の受信日時D8を付加されて記憶される。この本文データD4のピース情報D5は、ユーザからの指示に応じてCPU31に読み出されて、取得ピース情報記憶領域322に記憶されている取得ピース情報D7と同一でなければ、取得ピース情報D7として取得ピース情報記憶領域322に追加的に記憶される。
送信ボックス324は、「すれちがい通信」によって他のゲーム装置1に送信するための情報(以下、「ピース情報」と記載する)を記憶する。送信ボックス324には本文データD4が記憶されている。この本文データD4に含まれるピース情報D5は、交換対象ピース情報D6と同一のコレクション画像ID及びピースIDを含む。送信ボックス324には、本文データD4が一つだけ記憶される。この本文データD4はコピーされ、このコピーされた本文データD4が図8Cで示す情報フレームD3に含めて送信される。
また、データ記憶領域32bには、画像データ記憶領域325が設けられている。画像データ記憶領域325は、ゲーム装置1に表示される画像データが記憶される。この画像データには、上述したピース画像G2のデータD9も含まれる。本実施形態では、上述したように、予め全てのコレクション画像D1についての全てのピース画像G2のデータD9(ピース画像データD9)が記憶され、このうち許可されたピース画像データD9のみがゲーム装置1で取得されたと扱われる。すなわち、許可されたピース画像データD9のみで生成されたコレクション画像G1が図3で示すようなメイン画面に表示される。なお、上述したように、各ピース画像データD9にはコレクション画像ID及びピースIDが付加されて記憶される。そして、ピース画像データD9は、上記取得ピース情報D7に含まれるコレクション画像ID及びピースIDが付加されているときに、ゲーム装置1で取得された(許可された)データとなる。
更に、データ記憶領域32bは、歩数データ記憶領域326及び保有コイン数記憶領域327が記憶される。歩数データ記憶領域326は、加速度センサ44によって検出された歩数を示す歩数データD10を記憶するための領域である。また、保有コイン数記憶領域327は、歩数データD10を変換することでゲーム装置1に取得された保有コインの枚数を示すコイン数データD11を記憶するための領域である。
また、データ記憶領域32bは、受信フレームデータ記憶領域328及び送信フレームデータ記憶領域329を含む。受信フレームデータ記憶領域328は、他のゲーム装置1から受信したフレーム(図5A〜図5Cで示すフレーム)を一時的に記憶する領域である。送信フレームデータ記憶領域329は、他のゲーム装置1に送信するためのフレーム(図5A〜図5Cで示すフレーム)を一時的に記憶する領域である。
なお、上述したデータのうち、データD6、D7、D10及びD11は、ピース集めアプリケーションP1の起動時に保存用データメモリ34に記憶されていれば、保存用データメモリ34から読み出されてデータ記憶領域32bに記憶される。また、データD6、D7、D10及びD11は、ピース集めアプリケーションP1の終了時には、保存用データメモリ34に記憶される。本文データD4及び図5A〜図5Cで示す各フレームについては、通信プログラムP2の実行によってCPU31に生成されてデータ記憶領域32bに記憶される。
また、メインメモリ32にはVRAM領域(図略)が設定され、VRAM領域(図略)にはCPU31によって所定の周期毎に(1/60秒毎に)上側LCD22及び下側LCD12の表示用の画像が書き込まれる。VRAM領域(図略)に書き込まれた画像はCPU31に読みだされて上側LCD22及び下側LCD12に出力される。なお、本明細書において「表示処理」と記載したときには、上側LCD22及び下側LCD12の表示用の画像を生成し、VRAM領域(図略)に書き込む処理である。
以下に、図6、図8〜図10を用いてCPU31が実行するピース集め処理を説明する。ピース集め処理は、ピース集めアプリケーションP1の実行によって行われる。なお、ピース集め処理はピース集めアプリケーションP1の実行終了がユーザから指示されるまで実行され続ける。
図8〜図10はピース集め処理の一例を示すフローチャートである。まず、図8を参照して、CPU31はピース集めアプリケーションP1が初回起動かどうかを判断する(S1)。ここで、初回起動とは、ゲーム装置1で最初にピース集めアプリケーションP1を起動することである。ピース集めアプリケーションP1が初回起動であるときには(S1でYES)、CPU31はピースIDを所定の乱数発生処理を行うことによってランダムに決定する。また、CPU31は、予め保存用データメモリ34に記憶されている地域IDに対応するコレクション画像IDを図7Bで示すテーブルTを参照して取得する。そして、CPU31は、決定したピースIDと取得したコレクション画像IDを含めて取得ピース情報D7及び交換対象ピース情報D6を生成して保存用データメモリ34に記憶させる(S2)。この後、CPU31はステップS3に処理を進める。
ステップS2において取得ピース情報D7を生成する理由は、ピース集めアプリケーションP1を最初に起動したときには、ゲーム装置1は、取得ピース情報D7を一つも記憶しておらず、他のゲーム装置1に対して送信するピース情報D5がないからである。
ここで、各ピース画像G2に対応するピース情報D5の生成率は均等ではない。すなわち、各ピースIDの決定率が不均一である。例えば、1〜100までの乱数が発生されるとして、1〜5までの数が発生したときにはピースIDが「1」、6〜20までの数が発生したときにはピースIDが「2」という様に、各ピースIDに割り当てられる乱数の範囲が不均一になっている。これによって、例えばコレクション画像G1における肝の位置(例えば、キャラクタの図柄の顔の位置等)のピース画像G2を取得し難くすること等ができ、よりピース集めゲームの趣向性を高めることが可能になる。また、地域IDは、複数の地域属性の中から1の属性がユーザに選択されることで決定されて予め保存用データメモリ34に記憶されている。この地域IDは例えばユーザの居住地等が選択される。このため、ゲーム装置1が、ユーザに携帯されて持ち歩かれる地域に応じて、その地域属性に合致したピース画像G2を収集し、この地域属性に合致したコレクション画像G1を生成することが可能になる。
一方、ピース集めアプリケーションP1が初回起動でないときには(S1でNO)、CPU31はステップ2を実行せずにステップS3に処理を進める。
ステップS3では、CPU31は、図3を用いて上述したようなメイン画面及び操作画面を上側LCD22及び下側LCD12に表示するための表示処理を実行する。具体的には、CPU31は、メインメモリ32に記憶される全ての取得ピース情報D7(図6を参照)に対応するピース画像データD9を取得し、これらのピース画像データD9に基づいてコレクション画像G1を生成する。そして、CPU31は、メイン画面にコレクション画像G1が表示されるよう表示処理を行う。また、CPU31は、コイン数データD11の示すコイン枚数を表す保有コイン数G5を生成して、保有コイン数G5がメイン画面に表示されるよう表示処理を行う。また、表示するコレクション画像G1を変更する指示をユーザから受け付けたときには、CPU31はメイン画面に表示するコレクション画像G1を切り替える表示処理を実行する。
次に、CPU31はピース持ち替え選択をユーザから受け付けたかどうかを判断する(S4)。例えば、図3で示す操作画面におけるピース持ち替え操作子G5がタッチされたときに、ピース持ち替え選択をユーザから受け付けたと判断される。ピース持ち替え選択をユーザから受け付けたと判断したときには(S4でYES)、CPU31は送信用ピース選択画面の表示処理を実行する(S5)。図11は、送信用ピース選択画面の一例を示す図である。送信用ピース選択画面は、他のゲーム装置1に送信されるピース画像G2をユーザに変更させるための画面である。送信用ピース選択画面では、1のピース画像G2に重ねてオブジェクトG7が表示される。オブジェクトG7は、例えば操作ボタン14やタッチパネル11等の操作によって他のピース画像G2上に表示位置が変更される。また、表示するコレクション画像G1を変更する指示を例えば操作ボタン14やタッチパネル11等の操作によってユーザから受け付けたときには、CPU31は表示するコレクション画像G1を切り替える表示処理を実行する。
続いて、CPU31は、ピース選択の指示をユーザから受け付けたかどうかを、本ステップでYESと判断するまで繰り返し判断する(S6)。なお、ピース選択の指示は例えば操作ボタン14の操作等によって行われる。ここで、ピース選択の指示をユーザから受け付けたと判断したときには(S6でYES)、CPU31は、ユーザに選択されたピース画像G2を示す交換対象ピース情報D6を生成し、保存用データメモリ34に記憶させる(S7)また、既に保存用データメモリ34に交換対象ピース情報D6が記憶されているときには、情報D6が更新される。なお、上述したように、図11で示す送信用ピース選択画面にはオブジェクトG7が表示されるが、ピース選択の指示がなされたときに、オブジェクトG7の重なるピース画像G2が、他のゲーム装置1に選択されたピース画像G2となり、後のすれちがい通信処理において他のゲーム装置1に送信されることになる。この後、CPU31はステップS8に処理を進める。
一方、ステップS4でNOと判断された場合、すなわち、ピース持ち替え選択をユーザから受け付けていないと判断したときには(S4でNO)、CPU31はステップS5〜S7の処理を実行せずにステップS8に処理を進める。
次に、ステップS8の処理について説明する。CPU31は「すれちがい通信」を実行する指示をユーザから受け付けたかどうかを判断する(S8)。例えば、図3で示す操作画面におけるすれちがい通信操作子G6がタッチされ、かつゲーム装置1の主電源がオンされた状態で閉状態にされたときに、当該指示を受け付けたと判断する。そして、「すれちがい通信」を実行する指示をユーザから受け付けていないと判断したときには(S8でNO)、CPU31はステップS3に処理を戻す。一方、「すれちがい通信」を実行する指示をユーザから受け付けたと判断したときには(S8でYES)、CPU31は、歩数カウント処理の実行をマイコン38に指示する(S9)。
次に、CPU31は、すれちがい通信処理の実行を無線通信モジュール37に指示する(S10)。そして、CPU31は、マイコン38に対して、スリープ処理の実行を指示する(S11)。続いて、CPU31は、すれちがい通信処理を実行する(S12)。ただし、スリープ中にはCPU31のクロックが停止されているため、CPU31がステップS12の処理を必ず実行するように図8のフローチャートで示しているが、無線通信モジュール37からの指示がないときにはCPU31は何ら処理を実行しない。すなわち、無線通信モジュール37が他のゲーム装置1からフレームD1〜D3(図5A〜図5Cを参照)を受信すると、無線通信モジュール37がCPU31を起動し、CPU31は図17を用いて後述するすれちがい通信処理の一部の処理を実行する。このとき、CPU31の指示のもと、マイコン38は電源回路39を制御してメモリ制御回路33及び保存用データメモリ34、及びメインメモリ32への電力の供給を開始する。
そして、「すれちがい通信」の終了の指示を受け付けたときに、マイコン38はクロック停止状態のCPU31を起動し、このときに(S13でYES)、CPU31は、ステップS13の処理を実行する。なお、「すれちがい通信」の終了の指示は、ゲーム装置1が開状態にされること等でゲーム装置1に受け付けられる。ここで、図8のフローチャートでは、ステップS13の処理が所定周期毎に実行されているように示されているが、実際にはCPU31はスリープ中なのでその様な処理を実行しない。
図9を参照して、ステップS14において、CPU31は、マイコン38にスリープモードの解除指示を行い(S14)、続いて歩数カウント処理の終了を指示する(S15)。この後、CPU31は、マイコン38のメモリ38aから歩数のカウント値を読み出して、このカウント値に日付を付加して歩数データD10を生成し、保存用データメモリ34に記憶させる(S16)。なお、歩数カウント処理において、歩数データD10は、単位時間毎に生成され、保存用データメモリ34に記憶される。従って、ステップS16では、未だ歩数データD10に変換されていない歩数のカウント値を歩数データD10に変換する処理が実行される。なお、保存用データメモリ34に既に歩数データD10が記憶されているときには、ステップS16で生成された歩数データD10がこの歩数データD10に追加されて記憶される。
続いて、CPU31は、保存用データメモリ34に記憶されている全ての歩数データD10を読み出して、この歩数データD10を保有コインへと変換する処理(以下「コイン変換処理」と記載する)を実行する(S17)。なお、このコイン変換処理についての詳細は、図14を用いて後述する。そして、CPU31は、コレクション画像G1のうち未完成の画像があるかを判断する(S18)。この判断は、全ての取得ピース情報D7が記憶されているかどうかで判断される。コレクション画像G1のうち未完成の画像がないと判断したときには(S18でNO)、CPU31は本処理をステップS1に戻す。一方、レクション画像G1のうち未完成の画像があると判断したときには(S18でYES)、CPU31は、未完成のコレクション画像G1を完成させるべく以下のステップS19以降の処理を実行する。すなわち、CPU31は、受信ボックス323に本文データD4が記憶されているかどうかを判断する(S19)。
受信ボックス323に本文データD4が記憶されていると判断したとき(S19でYES)、CPU31は受信ボックス323に記憶されている本文データD4のうち1の本文データD4を選択的に読み出す(S20)。そして、本文データD4に含まれるピース情報D5を取得する。そして、CPU31は、取得したピース情報D5と同一の取得ピース情報D7が取得ピース情報記憶領域322に記憶されてなければ、このピース情報D5を取得ピース情報D7として取得ピース情報記憶領域322に記憶させる(S21)。なお、取得したピース情報D5と同一の取得ピース情報D7が取得ピース情報記憶領域322に記憶されていれば、このピース情報D5が破棄される。そして、ステップS21で処理された本文データD4は受信ボックス323から削除される、この後、CPU31は、ステップS21で新たに取得した取得ピース情報D7に基づくピース画像G2を上側LCD22に表示するための表示処理を実行する(S22)。
図12は、ステップS22の表示処理によって表示される画面図の一例を示す図である。この画面図では、新たに取得されたピース画像G2に対応するコレクション画像G1が表示される。それとともに、この画面図には、新たに取得されたピース画像G2がコレクション画像G1に組み込まれない状態で画面の右下端に表示される。この後、この新たに取得されたピース画像G2が、コレクション画像G1の方向に移動して、当該コレクション画像G1に組み込まれるアニメーションが表示される。
図9に戻って、CPU31は、新たに完成したコレクション画像G1が存在するかどうかを判断する(S23)。ここで、新たに完成したコレクション画像G1が存在すると判断したときには(S23でYES)、CPU31は、コレクション画像G1の完成を示す演出画面を上側LCD22に表示させるための表示処理を実行する(S24)。この後、CPU31は、コレクション画像G1のうち未完成の画像があるかを判断する(S25)。コレクション画像G1のうち未完成の画像がないと判断したときには(S25でNO)、CPU31は本処理をステップS1に戻す。
一方、コレクション画像G1のうち未完成の画像があると判断したときには(S25でYES)、CPU31は受信ボックス323に本文データD4が記憶されているかどうかを判断する(S26)。ここで、受信ボックス323に本文データD4が記憶されていると判断したときには(S26でYES)、CPU31はステップS20に処理を戻し、受信ボックス323に記憶されている本文データD4がなくなるまで(S26でNO)、又は全てのコレクション画像G1が完成するまで(S25でNO)、ステップS20〜S22の処理が実行される。
なお、ステップS23でNOと判断したとき、すなわち、新たに完成したコレクション画像G1が存在しないと判断したときにも(S23でNO)、CPU31は上記ステップS26の処理を実行する。
次に、CPU31が受信ボックス323に本文データD4が記憶されていないと判断したとき(S26でNO)の処理を説明する。図10を参照して、このときには、CPU31はピース画像購入画面の表示処理を実行する(S27)。このピース画像購入画面は、保有コインを用いてピース画像G2を購入するための操作をユーザにガイドする画面である。例えば、「保有コインでピース画像G2を購入することができるよ」といったような、ピース画像G2の購入が許可されていることを示す文が表示される。
次に、CPU31は、保有コイン数を消費してピース画像G2を購入する指示をユーザから受け付けたかどうかを判断する(S28)。この指示は、例えば、タッチパネルや操作ボタン14等を用いて行われる。ここで、保有コイン数を消費してピース画像G2を購入する指示をユーザから受け付けたと判断したときには(S28でYES)、CPU31は保有コイン数を減して、ピース画像G2をゲーム装置1に取得させるための処理(ピース画像購入処理)を実行する(S29)。このピース画像購入処理についての詳細は、図15を用いて後述する。
この後、CPU31は、ステップS29で新たに取得した取得ピース情報D7に基づくピース画像G2を上側LCD22に表示するための表示処理を実行する(S30)。図13は、ステップS30の表示処理によって表示される画面図の一例を示す図である。この画面図では、新たに取得されたピース画像G2に対応するコレクション画像G1が表示される。それとともに、この画面図には、新たに取得されたピース画像G2がコレクション画像G1に組み込まれない状態で画面の右下端に表示される。この後、この新たに取得されたピース画像G2が、コレクション画像G1の方向に移動して、当該コレクション画像G1に組み込まれるアニメーションが表示される。なお、図12で示す画面図(ステップS22の処理によって表示される画面図)と図13で示す画面図との違いは、保有コイン数G4で示す数が、図3で示すメイン画面の表示時よりも減少している点である。
この後、CPU31は、新たに完成したコレクション画像G1が存在するかどうかを判断する(S31)。ここで、新たに完成したコレクション画像G1が存在すると判断したときには(S31でYES)、CPU31は、コレクション画像G1の完成を示す演出画面を上側LCD22に表示させるための表示処理を実行する(S32)。この後、CPU31は本処理をステップS1に戻す。一方、新たに完成したコレクション画像G1が存在しないと判断したときには(S31でNO)、ステップS32の処理を行わず(演出画面の表示処理を行わず)、CPU31は本処理をステップS1に戻す。
続いて、保有コイン数を消費してピース画像G2を購入する指示をユーザから受け付けていないと判断したとき(S28でNO)の処理を説明する。このときには、上記ステップS29〜S32の処理を実行することなく、すなわち、保有コイン数を消費して新たなピース画像G2を取得することに関する処理を実行することなく、CPU31は本処理をステップS1に戻す。
上述したように、本実施形態では、ステップS26でNOと判断するまで、すなわち、受信ボックス323に記憶されている全てのピース情報D5が処理されるまでは、CPU31はステップS27以降の処理を実行しない。このため、「すれちがい通信」によって新たに取得したピース画像G2だけでは全てのコレクション画像G1の完成に至らないときに限って、保有コイン数を消費してのピース画像G2の購入が許可されることになる。この様に、保有コイン数を消費してのピース画像G2の購入は、あくまで「すれちがい通信」によるピース画像G2の取得の不足を補完するために行われるのである。
次に、ステップS19(図9を参照)でNOと判断されたときに実行される処理について説明する。このときとは、「すれちがい通信」によって1つのピース情報D5も取得し得なかったときである。このときには、CPU31は、上記ステップS27以降の処理、すなわち、保有コイン数aを消費して新たなピース画像G2を取得することに関する処理を実行する。この様に、「すれちがい通信」によって全くピース画像G2を取得することができなかったときにも、「すれちがい通信」によるピース画像G2の取得の不足を補完するために、保有コイン数aを消費してのピース画像G2の購入が許可されることになる。
以下、図6及び図14を用いて上記ステップS17(図9を参照)のコイン変換処理を説明する。図14は、コイン変換処理の一例を示すフローチャートである。まず、CPU31は、コイン数データD11の示す保有コイン数aが300未満かどうかを判断する(S171)。保有コイン数aが300未満でないと判断したときには(S171でNO)、CPU31はコイン変換処理を終了させて図9のメインルーチンに処理を戻す。この理由は、保有コイン数aの上限は300枚であるためである。保有コイン数aが300未満であると判断したときには(S171でYES)、CPU31は、全ての歩数データD10を保存用データメモリ34から読み出して、全ての歩数データD10の値を加算して歩数累計bを算出し、歩数累計bが100以上かを判断する(S172)。歩数累計bが100以上ではないと判断したときには(S172でNO)、CPU31はコイン変換処理を終了させて図9のメインルーチンに処理を戻す。この理由は、歩数累計bが100ないと、歩数データD10の値を1つのコインにも変換することができないためである。
一方、歩数累計bが100以上であると判断したときには(S172でYES)、CPU31は歩数データD11の値を前回コインに変換した日(前回コイン化した日)が現在日(今日)であるかを判断する(S173)。この判断は日付データを参照して行われる。この日付データは、ピース集めアプリケーションの起動時に初期値が設定されて、保存用データメモリ34に記憶される。なお、日付データに初期値が設定されているときには、ステップS173でYESと判断される。そして、コイン変換処理において歩数データD10の値を保有コイン数aに変換する処理を行ったときに、後述するステップS184において日付データは当該処理の日を示すように更新される。
前回コイン化した日が現在日(今日)であると判断したときには(S173でYES)、CPU31は歩数累計bを100で除算してコイン数cを算出する(S174)。そして、CPU31は保存用データメモリ34に記憶されている全ての歩数データD10を削除する(S175)。この後、CPU31は、当日分コイン数dをメインメモリ32から読み出して、当日分コイン数dにコイン数cを加算してコイン数eを算出し(S176)、算出したコイン数eが10以上かを判断する(S177)。なお、当日分コイン数eは、当日に取得したコインの数であり、ピース集めアプリケーションの起動時に初期値である0が設定されて、保存用データメモリ34に記憶されている。
そして、算出したコイン数eが10以上でないと判断したときには(S177でNO)、CPU31はコイン数cを保有コイン数aに加算して保有コイン数データD11を更新する(S178)。そして、CPU31は当日分コイン数dにコイン数eを代入する(S179)。この後、CPU31はステップS182に処理を進める。一方、算出したコイン数eが10以上であると判断したときには(S177でYES)、CPU31は、10から当日分コイン数dを除いた値を保有コイン数aに加算して、コイン数データD11を更新する(S180)。この理由は、1日で取得可能なコイン枚数の上限が10枚だからである。この後、CPU31は当日分コイン数dに10を代入する(S181)。この後、CPU31はステップS182に処理を進める。
ステップS182では、CPU31はコイン数データD11の示す保有コイン数aが300未満かどうかを判断する(S182)。保有コイン数aが300以上であると判断したときには(S182でNO)、CPU31は保有コイン数aに300を代入して保有コイン数データD11を更新する(S183)。この後、CPU31はステップS184に処理を進める。一方、保有コイン数aが300未満であると判断したときには(S182でYES)、CPU31はステップS183を実行することなく処理をステップS184に進める。
ステップS184では、CPU31は保存用データメモリ34に記憶されている日付データを現在日に更新する(S184)。この後、CPU31は、コイン変換処理を終了させて図9のメインルーチンに処理を戻す。
次に、ステップS173でNOと判断したとき、すなわち、CPU31は前回歩数データD11の値をコインに変換した日が現在日(今日)でないと判断したとき(S173でNO)の、CPU31の処理を説明する。このときには、CPU31は、各歩数データD10に含まれる日付を参照して、現在日の日付を含む歩数データD10の値のみを加算した歩数累計fを算出する。そして、CPU31は、歩数累計fを100で除算してコイン数gを算出する(S185)。この後、CPU31は保存用データメモリ34に記憶されている全ての歩数データD10を削除する(S186)。
そして、CPU31はコイン数gが10以上かを判断する(S187)。ここで、コイン数gが10以上でないと判断したときには(S187でNO)、CPU31はコイン数gを保有コイン数aに加算して保有コイン数データD11を更新する(S188)。そして、CPU31は当日分コイン数dにコイン数gを代入する(S189)。この後、CPU31は上述したステップS182に処理を進める。一方、コイン数gが10以上であると判断したときには(S187でYES)、CPU31は、10を保有コイン数aに加算して、コイン数データD11を更新する(S190)。この理由は、1日で取得可能なコイン枚数の上限が10枚だからである。また、CPU31は当日分コイン数dに10を代入する(S181)。この後、CPU31は上述したステップS182に処理を進める。
すなわち、ステップS182の実行によって、保有コイン数aが300未満かどうか判断され(S182)、保有コイン数aが300以上であると判断されたときには(S182でNO)、保有コイン数aに300が代入されて保有コイン数データD11が更新される(S183)。そして、ステップS184において、日付データが現在日に更新されて、コイン変換処理が終了されて図9のメインルーチンに処理が戻される。一方、保有コイン数aが300未満であると判断されたときには(S182でYES)、ステップS183が実行されずに、ステップS184において、日付データが現在日に更新されて、コイン変換処理が終了されて図9のメインルーチンに処理が戻される。
次に、図6及び図15を用いてステップS29のピース画像購入処理を説明する。図15は、ピース画像購入処理の一例を示すフローチャートである。まず、CPU31は、保存用データメモリ34からコイン数データD11を読み出して、コイン数データD11の示す保有コイン数aが所定値以上であるかを判断する(S291)。ここで、保有コイン数aが所定値(例えば1)未満であると判断したときには(S291でNO)、CPU31はピース画像購入処理を終了させて図9のメインルーチンに処理を戻す。この理由は、ピース画像G2の購入のためには保有コイン数aが所定値必要だからである。
一方、保有コイン数aが所定値(例えば1)以上であると判断したときには(S291でYES)、CPU31は前回ピース画像G2を購入した日は現在日であるかを判断する(S292)。この判断は、ピース取得日データを参照することで行う。このピース取得日データは、本ピース画像購入処理においてピース画像G2を購入した日を示し、ピース集めアプリケーションの起動時には初期値が設定された保存用データメモリ34に記憶される。なお、ピース取得日データに初期値が設定されているときには、ステップS292で必ずNOと判断される。そして、ピース取得日データは、本ピース画像購入処理において取得ピース情報D7を生成したときに、後述のステップS295において本ピース画像購入処理の日を示すように更新される。
前回ピース画像G2を購入した日は現在日であると判断したときには(S292でYES)、CPU31はピース画像購入処理を終了させて図9のメインルーチンに処理を戻す。この理由は、ピース画像G2の購入が1日につき1回に限定されているからである。なお、ピース画像G2の購入が、必ずしも1日につき1回に限定されていなくてもよく、1日につき2回以上の所定回数に限定されていてもよい。この場合には、ゲーム装置1は、購入回数を記憶し、この購入回数とピース取得日データを参照して、ピース画像G2の現在日における購入回数が所定回数以内かを判断すればよい。また、無制限にピース画像G2の購入が許可されてもよい。
そして、前回ピース画像G2を購入した日は現在日でないと判断したときには(S292でNO)、CPU31は、所定の乱数発生処理を実行することでピース情報D5を生成する(S293)。なお、ステップS293における処理の内容は図8のステップS2の処理と同じである。すなわち、ステップS293においても、各ピース画像G2に対応するピースIDの生成率は均等ではない。また、予め保存用データメモリ34に記憶されている地域IDに対応するコレクション画像IDが図7BのテーブルTを参照して取得され、このコレクション画像IDがピース情報D5に含められる。そして、CPU31は、生成したピース情報D5と同一の取得ピース情報D7が取得ピース情報記憶領域322に記憶されてなければ、このピース情報D5を取得ピース情報D7として保存用データメモリ34に記憶させる(S294)。なお、生成したピース情報D5と同一の取得ピース情報D7が取得ピース情報記憶領域322に記憶されていれば、このピース情報D5が破棄される。
続いて、CPU31は、保存用データメモリ34に記憶されているピース取得日データを現在日で更新する(S295)。この後、CPU31は、保有コイン数aを所定値だけ減少して、コイン数データD11を更新する(S296)。CPU31はピース画像購入処理を終了させて図9のメインルーチンに処理を戻す。
次に、図16を用いてマイコン38の実行する歩数カウント処理を説明する。図16は、歩数カウント処理の一例を示すフローチャートである。この歩数カウント処理は、保存用データメモリ34等に記憶される歩数カウントプログラムの実行によって行われる。具体的には、図8のステップS9においてCPU31から歩数カウント処理の実行が指示されたときに、マイコン38は保存用データメモリ34から歩数カウントプログラムを読み出してメモリ38aに記憶し、当該プログラムを実行する。これによって、歩数カウント処理の実行が開示される。また、歩数カウント処理は、図9のステップS15においてCPU31から歩数カウント処理の終了が指示されたときに終了される。
まず、マイコン38は、歩数カウント値を初期値でメモリ38aに設定する(S41)。そして、マイコン38はRTC38bのタイマ機能を作動させる(S42)。次に、マイコン38は加速度センサ44からの信号に基づいて所定値以上の加速度を検出したかを判断する(S43)。ここで、所定値以上の加速度を検出したと判断したときには(S43でYES)、歩数を検出したとして、マイコン38はメモリ38aの歩数カウント値を1インクリメントする(S44)。次に、マイコン38はタイマのカウント値に基づいて第1単位時間(例えば5分)が経過したかを判断する(S45)。なお、本ステップS45においては、タイマ機能が起動(ステップS42)又はリセット(ステップS50)されてから第1単位時間が経過したとき、及び前回本ステップS45でYESと判断されてから第1単位時間が経過したときに、YESと判断される。
第1単位時間(例えば5分)が経過したと判断したときには(S45でYES)、マイコン38は、歩数カウント値に日付を付加して歩数データD10としてメモリ38aに記憶させ(S46)、歩数カウント値をリセットする(S47)。この後、マイコン38は処理をステップS48に進める。一方、第1単位時間が経過していないと判断したときには(S45でNO)、マイコン38は上記ステップS46及びS47を実行せずに、処理をステップS48に進める。
ステップS48において、マイコン38は、タイマのカウント値に基づいて第2単位時間(例えば30分)が経過したかを判断する(S48)。なお、この判断は、タイマのカウント値の値が第2単位時間に対応する所定値を超えているかどうかで行われる。そして、第2単位時間が経過したと判断したときには(S48でYES)、マイコン38は、停止中のCPU31を起動させる。そして、CPU31の指示の下、マイコン38aは保存用データメモリ34に電力の供給を開始する。そして、マイコン38はメモリ38aに記憶されている全ての歩数データD10を保存用データメモリ34に出力する(S49)。この後、マイコン38は、再度保存用データメモリ34への電力の供給を停止し、CPU31を停止させる。この様に、スリープ中であっても、保存用データメモリ34に歩数データD10を順次記憶させていくことができる。そして、マイコン38は、タイマのカウント値をリセットする(S50)。この後、マイコン38はステップS52に処理を進める。一方、第2単位時間が経過していないと判断したときには(S48でNO)、マイコン38はステップ51に処理を進める。
ステップS51では、マイコン38はCPU31から歩数カウント処理の終了指示がなされたかを判断する(S51)。CPU31から歩数カウント処理の終了指示がなされたと判断したときには(S51でYES)、マイコン38は歩数カウント処理を終了させる。
また、CPU31から歩数カウント処理の終了指示がなされていないと判断したときには(S51でNO)、マイコン38は処理をステップS43に戻す。なお、ステップS51でYESと判断されるまで、すなわち、CPU31から歩数カウント処理の終了指示がなされるまで、ステップS43〜S50の処理が繰り返し実行されることになる。
以下に図5A〜図5C、図6及び図17を用いて図8のステップS12で実行されるすれちがい通信処理を説明する。図17は、すれちがい通信処理の一例を示すフローチャートである。ゲーム装置1と他のゲーム装置1がそれぞれすれちがい通信処理を実行することでこれらのゲーム装置1の間で「すれちがい通信」が行われる。そして、すれちがい通信処理は、所定周期毎に(例えば数秒に1回の短い時間間隔で)繰り返し実行される。
まず、無線通信モジュール37が応答時刻から所定時間経過したMACアドレスを自メモリに記憶しているかどうかを判断する(S121)。無線通信モジュール37は、応答時刻(情報フレームD3の送信または受信を行ったとき)から所定時間経過したMACアドレスを記憶していると判断したときには(S121でYES)、このMACアドレスを削除し(S122)、MACアドレスを記憶していないと判断したときには(S121でNO)、MACアドレスを削除することなく、続くステップS123に処理を進める。なお、送信元MACアドレスと応答時刻は、ステップS131で応答時刻から所定時間同じ通信相手との通信を禁止するために記憶されている。この送信元MACアドレスと応答時刻はステップS128によって記憶されている。なお、応答時刻から所定期間経過したときにはステップS121、122で送信元MACアドレスと応答時刻が削除されて通信の禁止が解除されるのである。
次に、無線通信モジュール37は、すれちがいアプリケーションを特定する識別IDを含めて図5Aで示す接続要求フレームD1を作成してブロードキャストで送信する(S123)。なお、接続要求フレームD1及び接続応答フレームD2は本処理の実行前に予め無線通信モジュール37の内部メモリに記憶されている。この後、無線通信モジュール37は図5Bで示す接続応答フレームD2を受信したかどうかを判断する(S124)。無線通信モジュール37は、接続応答フレームD2を受信したと判断したときには(S124でYES)、この接続応答フレームD2に含まれる識別IDが自機の内部メモリに記憶する識別IDと一致するかどうかを判断する(S125)。なお、無線通信モジュール37は、電源がオンされたときに自メモリ(無線通信モジュール37の内部メモリ)に識別IDを記憶しておき、この識別IDを用いてステップS125の判断を行う。ここで、無線通信モジュール37は、接続応答フレームD2に含まれる識別IDが自機の内部メモリに記憶する識別IDと一致しないと判断したときには(S125でNO)、本すれちがい通信処理を終了させる。
一方、無線通信モジュール37は、接続応答フレームD2に含まれる識別IDが自機の内部メモリに記憶する識別IDと一致すると判断したときには(S125でYES)、無線通信モジュール37は送信ボックス324から本文データD4の読み出しをCPU31に指示し、CPU31は指示を実行する(S126)。なお、ゲーム装置1はスリープ状態でありCPU31が起動していないので、無線通信モジュール37はステップS127の前にCPU31を起動させる。次に、無線通信モジュール37は、CPU31が読み出した本文データD4を含めて図5Cで示す情報フレームD3を生成し、この情報フレームD3を接続応答フレームD2の送信元に送信する(S127)。
この後、無線通信モジュール37は接続応答フレームD2の送信元MACアドレスと応答時刻(現在時刻)を自メモリに記憶する(S128)。この後、無線通信モジュール37は処理をステップS129に進める。
ステップS129では、無線通信モジュール37は情報フレームD3の受信処理を行っているかどうかを判断し(S129)、受信処理しているときには(S129でYES)、本すれちがい通信処理を終了させ、受信処理していないときには(S129でNO)、後述のステップS134を実行して情報フレームD3の受信のための処理を実行する。「すれちがい通信」を行う2つのゲーム装置1は情報フレームD3を相互に送受信し合うため、本ゲーム装置1が未だ情報フレームD3を受信していなければステップS134に処理が進められるのである。なお、ゲーム装置1が、接続応答フレームD2の送信側であるときには、情報フレームD3の受信のための処理を未だ行っていないため、ステップS129でNOと判断して、後述のステップS134を実行する。一方、ゲーム装置1が接続応答フレームD2の受信側であるときには(後述のステップS137でNOと判断されてステップS125〜S129が実行されたときには)、既に情報フレームD3の受信の処理を行っているため、ステップS129でYESと判断して、本すれちがい通信処理を終了させる。
次に、無線通信モジュール37が接続応答フレームD2を受信していないと判断したとき(S124でNOのとき)の処理を説明する。無線通信モジュール37は接続要求フレームD1を受信したかどうかを判断する(S130)。接続要求フレームD1を受信したと判断したときには(S130でYES)、無線通信モジュール37は接続要求フレームD1の送信元MACアドレスを自メモリに記憶しているかどうかを判断する(S131)。接続要求フレームD1の送信元MACアドレスを自メモリに記憶していないと判断したときには(S131でNO)、無線通信モジュール37は接続要求フレームD1に含まれる識別IDが自メモリで記憶する識別IDと一致するかどうかを判断する(S132)。
そして、接続要求フレームD1に含まれる識別IDが自メモリで記憶する識別IDと一致すると判断したときには(S132でYES)、無線通信モジュール37は、自機の記憶する識別IDを含めた接続応答フレームD2を接続要求フレームD1の送信元に送信する(S133)。この後、無線通信モジュール37は後述のステップS134を実行する。
なお、接続要求フレームD1を受信していないと判断したとき(S130でNO)には無線通信モジュール37は本すれちがい通信処理を終了させる。また、接続要求フレームD1の送信元MACアドレスを自メモリに記憶していると判断したときには(S131でYES)、無線通信モジュール37は本すれちがい通信処理を終了させる。これによって、同じ通信相手と短期間(応答時刻から所定時間)に何度も通信をしてしまうことを防止することができる。そして、接続要求フレームD1に含まれる識別IDが自メモリで記憶する識別IDと一致していないと判断したとき(S132でNO)には、無線通信モジュール37は本すれちがい通信処理を終了させる。
次に、ステップS134の処理を説明する。無線通信モジュール37は情報フレームD3を受信したかどうかを判断する(S134)。ここで、情報フレームD3を受信しなかったときには(S134でNO)、無線通信モジュール37は本すれちがい通信処理を終了させる。一方、情報フレームD3を受信したときには(S134でYES)、無線通信モジュール37は情報フレームD3の本文データD4を保存用データメモリ34の受信ボックス323に記憶するようCPU31に指示し、CPU31は指示を実行する(S135)。なお、ゲーム装置1はスリープ状態であり、CPU31が起動していないため、無線通信モジュール37はステップS135の前にCPU31を起動させる。なお、受信ボックス323に既に本文データD4が記憶されているときには、既に記憶されている本文データD4に追加して新しい本文データD4が記憶される。また、CPU31は本文データD4に付加して受信日時D8を受信ボックス323に記憶させる。
この後、無線通信モジュール37は、通信相手のMACアドレス(情報フレームD3の送信元のMACアドレス)と応答時刻(現在時刻)を自メモリに記憶する(S136)。ここで記憶する送信元MACアドレスと応答時刻は、ステップS125で記憶される情報と同様に応答時刻から所定時間同じ通信相手との通信を禁止するために用いられる。
次に、無線通信モジュール37は既に情報フレームD3の送信処理を行ったかどうかを判断する(S137)。無線通信モジュール37は、既に情報フレームD3の送信処理を行ったと判断したときには(S137でYES)、本すれちがい通信処理を終了させ、この送信処理を行っていないと判断したときには(S137でNO)、処理をステップS125に進めて情報フレームD3の送信のための処理を実行する。「すれちがい通信」を行う2つのゲーム装置1は情報フレームD3を相互に送受信し合うため、本ゲーム装置1が未だ情報フレームD3を送信していなければステップS125に処理が進められるのである。
すなわち、ゲーム装置1が、接続応答フレームD2の送信側であるときには、情報フレームD3の送信のための処理を未だ行っていないため、ステップS137でNOと判断して、上述のステップS125を実行する。一方、ゲーム装置1が接続応答フレームD2の受信側であるときには(ステップS129でNOと判断されてステップS134〜S137が実行されたときには)、既に情報フレームD3の送信の処理を行っているため、ステップS137でYESと判断して、本すれちがい通信処理を終了させる。
なお、上述したすれちがい通信処理はあくまで一例であり、ゲーム装置1が他のゲーム装置1との間でピース情報を送受信することができれば如何なる処理を採用してもよい。
上述したように、第1の実施形態では、「すれちがい通信」によってピース画像G2を取得する取得方法の他に、ゲーム装置1の移動に応じて、すなわち、ゲーム装置1のユーザの歩数に応じてピース画像G2を取得する取得方法によって、ゲーム装置1がピース画像G2を取得することができる。これによって、他のゲーム装置1と「すれちがい通信」をすることができない状況にあるときでも、ゲーム装置1がピース画像G2を取得することができる。
また、「すれちがい通信」によってピース画像G2を取得する場合と同様に、ユーザがゲーム装置1を携帯して移動する程、ゲーム装置1がピース画像G2を取得することができる。このため、この様な「すれちがい通信」によるピース画像G2の取得状況と似た状況でゲーム装置1にピース画像G2を取得させることができる。この様にして、ゲーム装置1が「すれちがい通信」によるピース画像G2を取得することができない状況であっても、ユーザは「すれちがい通信」によるピース画像G2を取得するような面白さを体感することができる。
そして、本実施形態では、「すれちがい通信」によってピース画像G2が全く取得することができないとき、及び、「すれちがい通信」によって取得したピース画像G2では全てのコレクション画像G1を完成させることができないときに、1日に限られた回数に限って、ゲーム装置1のユーザの歩数に応じてピース画像G2を取得する取得方法によって、ゲーム装置1がピース画像G2を取得することができる。この様に、あくまで、「すれちがい通信」によるピース画像G2の取得が不足しているときに、この不足を補うために補完的に、ゲーム装置1のユーザの歩数に応じてピース画像G2を取得する取得方法によって、ゲーム装置1がピース画像G2を取得することができる。
(第2の実施形態)
以下に、本発明の第2の実施形態を説明する。第2の実施形態では、本発明をゲーム装置1に適用した点、及び複数のゲーム装置1で通信システムを構成する点については第1の実施形態と同様である。また、ゲーム装置1の構成についても、図1及び図2で示す第1の実施形態の構成と同じであるため、説明を省略する。
第2の実施形態では、ゲーム装置1がピース集めアプリケーションを実行する代わりに勇者バトルアプリケーションを実行する点が、第1の実施形態と異なっている。勇者バトルアプリケーションは、ゲーム装置1に勇者バトル処理を実行させることで、ユーザに勇者バトルゲームを行わせるためのプログラムである。以下に、図18及び図19を用いて、第2の実施形態に係る勇者バトルゲームの内容を説明する。
図18は、勇者バトルゲームで表示されるメイン画面及び操作画面の一例を示す図である。このメイン画面及び操作画面は、勇者バトルアプリケーションを起動したときに最初に表示され、メイン画面は上側LCD22に表示され、操作画面は下側LCD12に表示される。メイン画面には、敵キャラクタの画像G10(以下、「敵キャラクタ画像G10」と記載する)と、保有コイン数G4が表示される。
敵キャラクタG10は、複数種類用意されるとともに、予め順番が付与されている。そして、敵キャラクタG10は1体のみがメイン画面に表示され、1の敵キャラクタG10が倒されれば、次の順番の敵キャラクタG10が表示されるようになっている。そして、最後の順番の敵キャラクタ画像G10がボスキャラクタの画像であり、このボスキャラクタを倒せば、ユーザが勇者バトルゲームを攻略する(ゲームクリアする)ことができる。保有コイン数G4は第1の実施形態と同じであるため説明を省略する。なお、本実施形態では、敵キャラクタG10に順番が付与されているが、ランダムに順次敵キャラクタG10が選択されて表示される構成であってもよい。また、敵キャラクタ画像G10は必ずしも複数種類用意される必要はなく1体のみであってもよい。
この敵キャラクタを倒す方法は、まず、「すれちがい通信」によってゲーム装置1が取得したキャラクタ情報を用いて倒す方法がある。ゲーム装置1は第1の実施形態と同様にすれちがい通信処理を実行する。これによって、ゲーム装置1は、他のゲーム装置1に対して自機で生成したキャラクタに関するキャラクタ情報を送信するとともに、他のゲーム装置1の生成したキャラクタに関するキャラクタ情報を受信する。この様にして、ゲーム装置1は、他のゲーム装置1からキャラクタ情報を取得する。
なお、操作画面には、第1の実施形態と同様に、すれちがい通信操作子G6が表示される。第2の実施形態でも、すれちがい通信操作子G6が表示されている。このすれちがい通信操作G6を用いてすれちがい通信処理の実行がユーザから指示される点も第2の実施形態は第1の実施形態と同様である。
以下に、図19を用いて、ゲーム装置1が他のゲーム装置1から取得したキャラクタ情報を用いて敵キャラクタG10を倒す方法を説明する。図19は、ゲーム装置1が敵キャラクタに攻撃する様子を示すバトル画面の一例を示す図である。バトル画面には、保有コイン数G4及び敵キャラクタ画像G10とともに、勇者キャラクタの画像G11(以下、「勇者キャラクタ画像G11」と記載する)が表示される。このバトル画面は上側LCD22に表示される。
勇者キャラクタ画像G11は、「すれちがい通信」によって受信したキャラクタ情報に基づいて生成された画像である。本実施形態では、ゲーム装置1は、所定のキャラクタ情報生成アプリケーションを実行することで、ユーザにキャラクタ情報を生成させる。ゲーム装置1は、目、口、鼻等のキャラクタを構成する各パーツ毎に複数種類の画像データ(後述のキャラクタ画像データD24)を記憶する。例えば、口のパーツには、複数種類の口の画像が記憶される。キャラクタ情報は、各パーツ毎に複数種類のキャラクタ画像データD24から1のキャラクタ画像データD24を特定する情報である。ゲーム装置1は、キャラクタ情報で特定されるキャラクタ画像データD24を組み合わせて勇者キャラクタ画像G11を生成して表示する。
なお、本実施形態では、ゲーム装置1は他のゲーム装置1との間でキャラクタ情報を送受信しているが、これに代えて勇者キャラクタ画像G11の画像データそのものを送受信する構成であってもよい。
また、第2の実施形態でも、第1の実施形態と同様に、「すれちがい通信」によるキャラクタ情報の取得の不足を補うため、ゲーム装置1は自機の移動に関する情報に基づいてキャラクタ情報を生成することができる。第2の実施形態でも、第1の実施形態と同様に、ゲーム装置1が、歩数計として機能し、この機能により検出したユーザの歩数に基づいてキャラクタ情報を生成する。ここで、第1の実施形態と同様に第2の実施形態でも、ユーザの歩数が保有コイン数aに変換される。そして、この保有コイン数aを消費してキャラクタ情報が購入される。
本実施形態では、ゲーム装置1がキャラクタ情報を受信すると、勇者キャラクタ画像11を生成し表示するとともに、当該勇者キャラクタに対応する攻撃値を決定する。本実施形態では、この攻撃値は、過去に同じキャラクタ情報を受信した回数(すれ違った回数)に基づいて決定され、すれ違った回数が多い程大きな値に設定される。なお、本実施形態では、すれ違った回数に基づいて勇者キャラクタの攻撃値が決定されているが、別の条件に基づいて勇者キャラクタの攻撃値を決定してもよい。また、勇者キャラクタの攻撃値は一定であってもよい。
そして、敵キャラクタには限界のダメージ値が設定される。そして、ゲーム装置1は、勇者キャラクタに対応する攻撃値を敵キャラクタのダメージ値として記憶し、このダメージ値が敵キャラクタに設定された限界ダメージ値に至ると敵キャラクタが倒されたと決定し、次の順番の敵キャラクタを表示する。なお、敵キャラクタがボスキャラクタであるときには、勇者バトルゲームがゲームクリアとなる。
ここで、1の勇者キャラクタに対応する攻撃値だけでは敵キャラクタを倒すことができないときには、更に次の勇者キャラクタの攻撃値がダメージ値に加算され、このダメージ値が限界ダメージ値に達したときに、敵キャラクタを倒すことができる。
次に第2の実施形態の他の特徴を説明する。この他の特徴は、勇者キャラクタには属性が設定され、この属性が所定の条件(以下、「攻撃有効条件」と記載する)を満たすときに限って、勇者キャラクタの敵キャラクタへの攻撃が有効と扱われることである。これによって、どのような属性の勇者キャラクタであっても敵キャラクタを攻撃可能ということはなくなり、勇者バトル処理をより多彩に行うことができ、勇者バトルゲームの興趣性を高めることができる。
なお、保有コイン数aを消費して購入したキャラクタ情報に基づいて敵キャラクタを攻撃する方法についても、上述した「すれちがい通信」で取得したキャラクタ情報に基づいて敵キャラクタを攻撃する方法と同様である。
以下に、図20を参照して、第2の実施形態で実行されるすれちがい通信処理を説明する。このすれちがい通信処理については、情報フレームD3に含まれる本文データD4aの内容以外は第1の実施形態と同様である。このため、本文データD4の内容以外については説明を省略する。図20は、第2の実施形態にかかる本文データD4aの内容を示す図である。本文データD4aは、識別IDとキャラクタ情報D20とから構成される。識別IDは、アプリケーションを特定するための情報であり、第2の実施形態では特に注釈がなければ識別IDは勇者バトルアプリケーションを特定するための情報である。キャラクタ情報D20の内容については詳しくは後述する。情報フレームD3がキャラクタ情報D20を含むことで、ゲーム装置1は他のゲーム装置1との間でキャラクタ情報D20を送受信することができる。
以下に、図21を参照して、第2の実施形態においてメインメモリ32に記憶されるプログラム及びデータの内容を説明する。図21は、メインメモリ32に記憶されるプログラム及びデータの内容の一例を示すメモリマップである。なお、メインメモリ32には、第1の実施形態と同様にプログラム記憶領域32aとデータ記憶領域32bとが設けられている。そして、プログラム記憶領域32aには、ピース集めアプリケーションに代えて勇者バトルアプリケーションP3が記憶されている点、キャラクタ情報生成プログラムP4が更に記憶されている点が第1の実施形態と異なっている。
勇者バトルアプリケーションP3は、上述したようにゲーム装置1に勇者バトル処理を実行させるためのプログラムであり、図25〜図27を用いて詳細を後述する。また、キャラクタ情報生成プログラムP4は、上述したようにゲーム装置1にキャラクタ情報D20を生成させるためのプログラムである。なお、このキャラクタ情報生成プログラムP4及び勇者バトルアプリケーションP3は、保存用データメモリ34又はメモリカード28、カートリッジ29等から適宜読み出されて記憶される。
また、データ記憶領域32bは、交換対象ピース情報記憶領域321及び取得ピース情報記憶領域322に代えて、交換対象キャラクタ情報記憶領域321a及び取得キャラクタ情報記憶領域322aを有する点が第1の実施形態とは異なっている。
交換対象キャラクタ情報記憶領域321aには、他のゲーム装置1に対して「すれちがい通信」によって送信されるキャラクタ情報D20が交換対象キャラクタ情報D21として記憶される。以下に図22Aを用いてキャラクタ情報D20及び交換対象キャラクタ情報D21について説明する。図22Aは、キャラクタ情報D20及び交換対象キャラクタ情報D21の一例を示す図である。
キャラクタ情報D20及び交換対象キャラクタ情報D21は、ユーザが自機でキャラクタを生成する際に設定された色を示す色情報、身長・体格情報、キャラクタ名、キャラクタID及びキャラクタ画像情報を含む。身長・体格情報はユーザに設定されたキャラクタの身長(高さ)及び体格(太さ)を示す情報である。キャラクタ名はユーザに設定されたキャラクタ名を示す。キャラクタIDは、キャラクタ情報生成時に自動的に設定されるキャラクタ固有の識別情報である。キャラクタ画像情報は、各パーツ毎にユーザに選択されたキャラクタ画像データD24(後述)を示す情報である。キャラクタ情報生成処理において、ゲーム装置1は似顔絵キャラクタを生成するために目、鼻、口、輪郭及び髪等の各パーツ毎に複数の選択候補となるキャラクタ画像データD24から1のデータ24を選択する操作をユーザから受け付ける。キャラクタ画像情報は、この選択されたキャラクタ画像データD24のIDを各パーツIDに対応付けて示す情報である。
図21に戻って、取得キャラクタ情報記憶領域322aには、他のゲーム装置1から取得したキャラクタ情報D20に受信日時を付加して生成された取得キャラクタ情報D22が記憶される。勿論、複数の取得キャラクタ情報D22が生成されているときには、複数個の取得キャラクタ情報D22が記憶される。なお、取得キャラクタ情報D22の内容は、図22Aで示すキャラクタ情報D20及び交換対象キャラクタ情報D21の内容に受信日時が付加されたものである。
また、第2の実施形態では、受信ボックス323及び送信ボックス324に記憶される情報の内容が第1の実施形態とは異なっている。すなわち、受信ボックス323及び送信ボックス324は、本文データD4に代えて本文データD4aを記憶する。
本文データD4aは、「すれちがい通信」によって他のゲーム装置1から受信した情報フレームD3に含まれる本文データD4aである。なお、情報フレームD3が受信されたときに、この情報フレームD3の本文データD4aが受信日時D8を付加されて記憶される。ここで、情報フレームD3が複数受信されたときには、複数の本文データD4aが記憶される。この本文データD4aのキャラクタ情報D20は、ユーザからの指示に応じてCPU31に読み出されて、取得キャラクタ情報D22として取得キャラクタ情報記憶領域322aに記憶される。なお、新たに記憶させる取得キャラクタ情報D22のキャラクタ情報D20が、既に記憶されている取得キャラクタ情報D22のキャラクタ情報D20と同一であっても、既に記憶されている取得キャラクタ情報D22に追加して記憶される。また、取得キャラクタ情報記憶領域322aに空きがないときには、記憶されている取得キャラクタ情報D22の受信日時D8が参照されて、最も古い取得キャラクタ情報D22が削除された上で、新たな取得キャラクタ情報D22が記憶される。
なお、送信ボックス324には、「すれちがい通信」によって他のゲーム装置1に送信するための本文データD4aを記憶する。送信ボックス324は、受信ボックス323と異なり、記憶される本文データD4aには受信日時D8が付加されておらず、本文データD4aが一つだけ記憶される。「すれちがい通信」時には、本文データD4aはコピーされ、このコピーされたデータD4aが情報フレームD3に含めて送信される。
また、画像データ記憶領域325に記憶される画像データの内容も第1の実施形態とは異なっている。画像データ記憶領域325には、ゲーム装置1に表示される画像データが記憶されが、この画像データには、上述した敵キャラクタ画像G10の画像データD23(以下、「敵キャラクタ画像データD23」と記載する)と勇者キャラクタ画像G11の画像データD24(以下、「キャラクタ画像データD24」と記載する)も含まれる。なお、本実施形態では、上述したように、キャラクタ情報D20がパーツIDに対応するキャラクタ画像データD24のIDを含み、これによって、各パーツに対応するキャラクタ画像データD24が指定され、指定されたキャラクタ画像データD24に基づく画像を対応するパーツの箇所に組み合わせることで、勇者キャラクタ画像G11が生成される。
また、第2の実施形態では、データ記憶領域32bは、勇者情報記憶領域330及び敵情報記憶領域331を備える。以下、図22B及び図22Cを用いて勇者情報記憶領域330に記憶されるデータの内容を説明する。図22Bは、勇者情報記憶領域330に記憶されるデータの一例を示す図である。勇者情報記憶領域330には、勇者キャラクタ情報D25、勇者レベル情報D26及び勇者レベルテーブルT1が記憶される。なお、この勇者キャラクタ情報D25は、勇者キャラクタによる攻撃の実行後(攻撃の成功後又は失敗後)には削除される(もっとも記憶したままでもよい)。そして、新たな勇者キャラクタによる攻撃を開始する前に、新たな勇者キャラクタ情報D25が生成され、勇者情報記憶領域330に記憶される(又は勇者キャラクタ情報D25が更新される)。
勇者キャラクタ情報D25は、敵キャラクタと戦う勇者キャラクタのキャラクタ情報D20である。勇者キャラク画像G21が、この勇者キャラクタ情報D25に基づいて生成されて、図19で示したメイン画面に表示される。また、勇者レベル情報D26は、勇者キャラクタ情報D25に対応する勇者キャラクタの強さのレベル(勇者レベル)を示す情報である。この勇者レベル情報D26に応じた攻撃値で勇者キャラクタが敵キャラクタにダメージを与える。この勇者レベル情報D26は、勇者レベルテーブルT1を参照して決定される。勇者レベルテーブルT1について図22Cを用いて説明する。図22Cは、勇者レベルテーブルT1の一例を示す図である。勇者レベルテーブルT1は、「すれちがい回数」及びコイン枚数に対応する勇者レベルの情報が登録されている。
「すれちがい通信」によってキャラクタ情報D20が取得されたときには、「すれちがい回数」で勇者レベルテーブルT1が検索されて、「すれちがい回数」に対応するレベル情報が取得される。なお、この「すれちがい回数」は、取得キャラクタ情報記憶領域322aに同じ(同じキャラクタIDの)キャラクタ情報D20が記憶されている個数を参照して取得される。また、保有コイン数aを消費してキャラクタ情報D20が購入されたときには、消費したコインの枚数で勇者レベルテーブルT1が検索されて、これによって、コイン枚数に対応する勇者レベルの情報が取得される。そして、勇者レベルテーブルT1から取得された勇者レベルの情報が勇者レベル情報D26として勇者情報記憶領域330に記憶される。すなわち、「すれちがい通信」によってキャラクタ情報D20が取得された場合と、保有コイン数aを消費してキャラクタ情報D20が購入された場合とで、同じ種類のデータを生成して勇者情報記憶領域330に記憶されることになる。
次に、図23〜図24Cを用いて、敵情報記憶領域331に記憶されるデータの内容を説明する。図23は、敵情報記憶領域331に記憶されるデータの一例を示す図である。敵情報記憶領域331には、敵情報D27、敵ナンバー情報D28、敵情報テーブルT2及び攻撃有効条件テーブルT3が記憶される。
敵情報D27は、勇者キャラクタと戦う順番が到来した敵キャラクタの情報を示す。以下に図24Aを用いて敵情報D27を説明する。図24Aは、敵情報D27の一例を示す図である。敵情報D27は、敵ナンバー情報、敵名情報、限界ダメージ値情報、現在のダメージ値情報、種別情報及び条件IDが含まれる。敵ナンバー情報は勇者キャラクタと戦う順番を示す。例えば、敵キャラクタの種類が3体あるときに、敵ナンバー情報は1〜3までの何れかの番号である。そして、ナンバー情報の若い順番の敵キャラクタから順に敵キャラクタが勇者キャラクタと戦う。なお、敵ナンバー情報は上述した敵キャラクタ画像データD23に対応づけられており、敵ナンバー情報に対応する敵キャラクタ画像データD23を用いて敵キャラクタ画像G10が生成されて表示される。また、敵名情報は敵キャラクタの名称を示す。限界ダメージ値情報は敵キャラクタの体力値に相当する限界ダメージ値を示す。現在のダメージ値情報は、敵ナンバー情報に対応する敵キャラクタの現在のダメージ値を示す。この現在のダメージ値情報は、敵キャラクタと戦った勇者キャラクタの攻撃値が加算されたものであり、現在のダメージ値が限界ダメージ値を超えたときに敵キャラクタが倒される。種別情報は、敵ナンバーに対応する敵キャラクタかザコ敵かボス敵かの別を示す。条件IDは、現在設定されている攻撃有効条件を識別するIDである。攻撃有効条件が設定されていないときには、設定されていないことを示す情報(「攻撃有効条件なし」を示す情報)が条件IDとして含められる。
敵ナンバー情報D28は、勇者キャラクタと現在戦っている敵キャラクタに対応する敵ナンバー情報である。
敵情報テーブルT2は、敵情報D27を生成するためのテーブルである。以下、図24Bを用いて敵情報テーブルT2を説明する。図24Bは、敵情報テーブルT2の一例を示す図である。敵情報テーブルT2には、敵ナンバー情報に対応づけて、敵名情報、限界ダメージ値情報及び種別情報が登録されている。なお、敵情報D27は、敵ナンバー情報D28で敵情報テーブルT2が検索されて、敵名情報、限界ダメージ値情報及び種別情報が取得され、これらの取得された情報を含めて生成される。
攻撃有効条件テーブルT3は、勇者キャラクタの攻撃が有効になるための条件が登録されたテーブルである。本実施形態では、種別情報がボス敵を示すときには、勇者キャラクタの攻撃が有効になる条件が設定される。この条件が攻撃有効条件テーブルT3を用いて設定されるのである。以下、図24Cを用いて攻撃有効条件テーブルT3を説明する。図24Cは、攻撃有効条件テーブルT3の一例を示す図である。攻撃有効条件テーブルT3は、条件ID、ダメージ値情報及び攻撃有効条件が互いに対応づけて登録されている。そして、勇者キャラクタが敵キャラクタを攻撃する際には、敵情報D27の条件IDで攻撃有効条件テーブルT3が検索されて、条件IDに対応するダメージ値情報及び攻撃有効条件が取得される。具体的には、敵情報D27の条件IDが1を示すときには、ダメージ値情報が「300」であり、攻撃有効条件が「キャラクタ名が「あ」から始めること」が取得される。この場合には、現在のダメージ値がダメージ値300であるときに限って、キャラクタ名が「あ」から始めること、という攻撃有効条件を満たすかが判断される。すなわち、勇者キャラクタ情報D25がこの攻撃有効条件を満たすときにのみ、勇者キャラクタの攻撃が有効になり、勇者レベル情報D26に対応する攻撃値が敵情報D27の現在のダメージ値に加算される。なお、現在のダメージ値がダメージ値300でないときには、攻撃有効条件が判断されず、勇者キャラクタの攻撃は必ず有効になる。また、勇者キャラクタ情報D25が攻撃有効条件を満たしたときには、敵情報D27の条件IDが次の条件IDに更新されて、次の攻撃有効条件が設定される。例えば、敵情報D27の条件IDが「1」から「2」に更新されて、現在のダメージ値が400のときには「色情報が赤の勇者であること」が判断されることになる。なお、テーブルT3の各条件IDには、例えば連続的な番号がそれぞれ設定されている。
なお、メインメモリ32は、第1の実施形態と同様に、歩数データ記憶領域326、保有コイン数記憶領域327、受信フレームデータ記憶領域328、送信フレームデータ記憶領域329及び図略のVRAM領域が設けられている。
なお、上述したデータのうち、データD4a、D21〜D28は、例えば、勇者バトルアプリケーションP3の起動時に、保存用データメモリ34から読み出されてデータ記憶領域32bに記憶される。また、データD4a、D21〜D28は、勇者バトルアプリケーションP3の終了時には、保存用データメモリ34に記憶される。また、テーブルT1〜T3はメモリカード28、カートリッジ29等から読み出されてデータ記憶領域32bに記憶される。
以下に、図23〜図28を用いて第2の実施形態にかかる勇者バトル処理を説明する。図25〜図27は、勇者バトル処理の一例を示すフローチャートである。なお、勇者バトル処理において、第1の実施形態にかかるピース集め処理と同じ処理を実行するステップについては同じステップ番号を付与する。勇者バトル処理は、勇者バトルアプリケーションの実行がユーザに指示されたときに開始される。
まず、CPU31は、敵情報テーブルT2、敵情報D27及び敵ナンバー情報D28を保存用データメモリ34から読み出す。ここで、敵情報D27及び敵ナンバー情報D28は勇者バトルアプリケーションの初回起動時には保存用データメモリ34には記憶されていない。このときには、CPU31は、敵ナンバー情報D28を「1」とするとともに、この敵ナンバー情報D28で敵情報テーブルT2を検索して敵情報D27を生成する。CPU31は、保存用データメモリ34から読み出した、又は生成した敵情報D27及び敵ナンバー情報D28をメインメモリ32に設定する(S61)。なお、ザコ敵の敵情報D27を生成するときには条件IDは必ず「攻撃有効条件なし」を示す情報が含められるまた、ボス敵の敵情報D27の生成する際には、一番小さい番号の条件IDが含められる。
次に、CPU31は、敵ナンバーD28に対応する敵キャラクタ画像データD23と歩数データD10を用いて図18に示すメイン画面及び操作画面の表示処理を実行する(S62)。そして、CPU31は「すれちがい通信」を実行する指示をユーザから受け付けたかどうかを判断する(S8)。そして、「すれちがい通信」を実行する指示をユーザから受け付けていないと判断したときには(S8でNO)、CPU31はステップS62に処理を戻す。一方、「すれちがい通信」を実行する指示をユーザから受け付けたと判断したときには(S8でYES)、CPU31は、歩数カウント処理の実行をマイコン38に指示する(S9)。
なお、ステップS9〜ステップS17の処理については、第1の実施形態にかかるピース集め処理(図8を参照)と同じであるため詳細な説明を省略する。このステップS9〜ステップS17では、すれちがい通信処理、スリープモードに関する処理及び歩数データD10をコイン数データD11に変換する処理等が実行される。
図26を参照して、ステップS17の実行後には、CPU31は、ステップS19及びS20の処理を実行する。すなわち、CPU31は、受信ボックス323に本文データD4aが記憶されているかどうかを判断し、受信ボックス323に本文データD4aが記憶されていると判断したとき(S19でYES)、CPU31は、1の本文データD4aを選択して受信ボックス323から読み出し、本文データD4aに含まれるキャラクタ情報D20及び受信日時D8を取得する(S20)。そして、CPU31は、取得したキャラクタ情報D20及び受信日時D8を含めて取得キャラクタ情報D22として取得キャラクタ情報記憶領域322aに記憶させる。これとともに、CPU31は、取得したキャラクタ情報D20を勇者キャラクタ情報D25としてメインメモリ32に記憶させる(S63)。そして、ステップS20で処理された本文データD4aは受信ボックス323から削除される、この後、CPU31は、保存用データメモリ34から勇者レベルテーブルT1を読み出して、この勇者レベルテーブルT1を用いて勇者キャラクタ情報D25に対応する勇者レベル情報D26を決定して、この勇者レベル情報D26をメインメモリ32に設定する(S64)。
CPU31は、設定した勇者レベル情報D26に対応する攻撃値を決定する。この決定は、例えば、次のようになされる。すなわち、各レベル情報に対応する攻撃値が、例えばテーブルの形式で保存用データメモリ34に記憶され、このテーブルが参照されて、勇者レベル情報D26で示すレベル情報に対応する攻撃値が決定される。
この後、CPU31は、図19で示すようなバトル画面の表示処理を実行する(S65)。具体的には、CPU31は、勇者キャラクタ情報D25に基づいて勇者キャラクタ画像G11を生成して、この勇者キャラクタ画像G11を敵キャラクタ画像G10とともにバトル画面に表示するための処理を行う。
この後、CPU31は、攻撃有効条件を決定する(S66)。具体的には、攻撃有効条件テーブルT3を保存用データメモリ34から読み出す。そして、敵情報D27に含まれる種別情報がザコ敵を示せば、攻撃有効条件のないことが決定される。また、種別情報がボス敵を示していても、敵情報D27に含まれる条件IDが「攻撃有効条件なし」を示していれば、攻撃有効条件のないことが決定される。しかしながら、種別情報がボス敵を示し、条件IDが「攻撃有効条件なし」を示していなければ、この条件IDで条件テーブルT3が検索されて、ダメージ値情報及び攻撃有効条件が取得される。そして、敵情報D27の示す現在のダメージ値が、取得したダメージ値情報の値でないときには、攻撃有効条件のないことが決定され、取得したダメージ値情報の値であれば取得した攻撃有効条件が決定される。
そして、CPU31は、勇者キャラクタ情報D25に含まれる情報に基づいて攻撃有効条件を満たすか判断する(S67)。例えば、攻撃有効条件が「色情報が赤であること」であるときには、勇者キャラクタ情報D25に含まれる色情報が赤を示すときに、攻撃有効条件を満たすと判断される。なお、攻撃有効条件の設定がないときには必ずステップS67でYESと判断される。攻撃有効条件を満たすと判断したときに(S67でYES)、CPU31は敵情報D27の現在のダメージ値情報に攻撃値を加算する(S68)。また、敵情報D27の識別情報がボス敵であり、かつ敵情報D27の条件IDが攻撃有効条件のないことを示す情報でないときには、CPU31は、敵情報D27の条件IDを次の条件IDに更新する(次の条件IDがないときには「攻撃有効条件なし」を示す情報に更新する)。そして、CPU31は攻撃成功の演出の表示処理を実行する(S69)。この後、CPU31は処理をステップ71に進める。
一方、攻撃有効条件を満たさないと判断したときには(S67でNO)、CPU31は、攻撃失敗の演出の表示処理を行う(S70)。この後、CPU31は処理をステップS71に進める。
図27を参照して、ステップS71では、CPU31は敵情報D27の現在のダメージ値が限界ダメージ値情報の値に到達したかどうかを判断する(S71)。ここで、現在のダメージ値が限界ダメージ値情報に達していないと判断したときには(S71でNO)、CPU31は、同じ敵キャラクタ画像G10のみを上側LCD22に表示する表示処理(例えば図19で示すメイン画面の表示処理)を行って(S72)、処理を後述のステップS79に進める。
一方、現在のダメージ値が限界ダメージ値情報に達したと判断したときには(S71でYES)、CPU31は、敵ナンバー情報D28を参照して全ての敵キャラクタを倒したかどうかを判断する(S73)。そして、全ての敵キャラクタを倒したと判断したときには(S73でYES)、CPU31はゲームクリアの演出の表示処理を実行する(S74)。この後、CPU31は保存用データメモリ34に記憶されているデータD25〜D28を削除する等の所定の初期化処理を実行する(S75)。この後、CPU31は本処理をステップS61に戻す。
一方、全ての敵キャラクタを倒していないと判断したときには(S73でNO)、CPU31は敵ナンバー情報D28に1を加算する(S76)。そして、CPU31は、敵ナンバー情報D28で敵情報テーブルT2を検索して、新たな敵情報D27を生成し、メインメモリ32及び保存用データメモリ34に記憶される敵情報D27を更新する(S77)。なお、敵情報D27の現在のダメージ値情報は0に設定される。また、ザコ敵の敵情報D27を生成するときには条件IDとして必ず「攻撃有効条件なし」を示す情報が含められる。また、ボス敵の敵情報D27の生成する際には、一番小さい番号の条件IDが含められる。そして、敵ナンバー情報D28に対応する敵キャラクタ画像データD23を用いて、CPU31は敵キャラクタ画像G10を生成して上側LCD22に表示する表示処理を行う(S78)。
続いて、CPU31は、受信ボックス323に本文データD4aが記憶されているかどうかを判断し(S79)、記憶されていると判断したときには(S79でYES)、ステップS20に処理を戻す。すなわち、受信ボックス323に本文データD4aが記憶されなくなるか(S79でNO)、全ての敵キャラクタを倒すまで(S73でYES)、上記ステップS20、S63〜S78の処理が繰り返し実行される。
一方、受信ボックス323に本文データD4aが記憶されていないと判断したときには(S79でNO)、CPU31は、キャラクタ情報購入画面の表示処理を実行する(S80)。このキャラクタ情報購入画面は、保有コインを用いてキャラクタ情報D20を購入するための操作をユーザにガイドする画面である。例えば、「保有コインで勇者キャラクタを購入することができるよ」といったような、キャラクタ情報D20の購入が許可されていることを示す文が表示される。
次に、CPU31は、保有コイン数aを消費してキャラクタ情報D20を購入する指示をユーザから受け付けたかどうかを判断する(S81)。ここで、キャラクタ情報D20を購入する指示をユーザから受け付けなかったと判断したときには(S81でNO)、CPU31は本処理をステップS61に戻す。
一方、保有コイン数aを消費してキャラクタ情報D20を購入する指示をユーザから受け付けたと判断したときには(S81でYES)、CPU31は保有コイン数aを減して、キャラクタ情報D20をゲーム装置1に取得させるための処理(勇者購入処理)を実行する(S82)。この勇者購入処理についての詳細は、図28を用いて後述する。この処理によって、保有コインによってキャラクタ情報D20が取得されたときには、勇者キャラクタ情報D25としてメインメモリ32に記憶される。この後、CPU31は、勇者キャラクタ情報D25を取得することができたかを判断し(S83)、取得することができなかったときには(S83でNO)、CPU31は本処理をステップS61に戻す。一方、勇者キャラクタ情報D25を取得することができたときには(S83でYES)、本処理をステップS65に戻す。これによって、新たに取得した勇者キャラクタ情報D25に基づいて、勇者キャラクタが敵キャラクタを攻撃する処理を実行することができる。
上述したように、受信ボックス323に本文データD4aが記憶されている限り、勇者購入処理の実行が許可されない。保有コイン数aを消費してのキャラクタ情報の購入はあくまで、「すれちがい通信」によりキャラクタ情報の取得の不足を補うことを目的としているからである。
また、ステップS19でNOと判断したとき、すなわち、「すれちがい通信」によって1つの本文データD4aも取得することができなかったと判断したとき(S19でNO)、CPU31は、上記ステップS80の処理を実行する。この様な場合にも、「すれちがい通信」によりキャラクタ情報の取得の不足を補うことを目的として、保有コイン数aを消費してのキャラクタ情報D20の購入が許可されるのである。
次に、図21及び図28を用いてステップS82で実行される勇者購入処理を説明する。図28は勇者購入処理の一例を示すフローチャートである。まず、CPU31は、歩数データD10を保存用データメモリ34から読み出して、歩数データD10の示す保有コイン数aが所定値(例えば、1)以上であるかを判断する(S821)。この所定値は、キャラクタ情報D20を購入可能な最低金額の保有コイン数aを示す。保有コイン数aが所定値(例えば、1)以上でないと判断したときには(S821でNO)、キャラクタ情報D20を購入可能な数の保有コイン数aをゲーム装置1が有さないため、CPU31は、キャラクタ情報D20の購入のための処理(後述のステップS822〜S828)を行わずに本処理を終了させ、図27で示すメインルーチンに処理を戻す。
一方、保有コイン数aが所定値(例えば、1)以上であると判断したときには(S821でYES)、CPU31は前回のキャラクタ情報D20の取得日は現在日か否かを判断する(S822)。この判断は、保存用データメモリ34に記憶されているキャラクタ取得日付データを参照することで行われる。このキャラクタ取得日付データは、キャラクタ情報D20を取得した最新日を示す。勇者バトルアプリケーションの初回起動時には、保存用データメモリ34にキャラクタ取得日付データが記憶されていない。このときには、本ステップS822において、CPU31は、キャラクタ取得日付データを初期値で保存用データメモリ34に設定し、かつNOと判断する。そして、キャラクタ取得日付データは、勇者購入処理でキャラクタ情報D20が取得されたときに、後述のステップS827によってこの取得日に更新される。
そして、前回のキャラクタ情報D20の取得日は現在日であると判断したときには(S822でYES)、CPU31はキャラクタ情報D20の購入のための処理(後述のステップS823〜S828)を行わずに本処理を終了させ、図27で示すメインルーチンに処理を戻す。この理由は、キャラクタ情報D20は1日に1回しか取得することができないからである。なお、キャラクタ情報D20の購入が、必ずしも1日につき1回に限定されていなくてもよく、1日につき2回以上の所定回数に限定されていてもよい。この場合には、ゲーム装置1は、購入回数を記憶し、この購入回数とキャラクタ取得日データを参照して、キャラクタ情報D20の現在日における購入回数が所定回数以内かを判断すればよい。なお、無制限にキャラクタ情報D20を購入することができる構成であってもよい。
一方、前回のキャラクタ情報D20の取得日は現在日でないと判断したときには(S822でNO)、CPU31は消費する保有コイン数aの選択をユーザにガイドする画面を表示するための表示処理を行う(S823)。本実施形態では、消費する保有コイン数aに応じて、勇者レベル情報D26が高く、すなわち攻撃値が高く設定される。従って、ステップS823では、消費する保有コイン数aに応じた勇者レベルが表示されるのである。例えば、消費する保有コイン数aが1枚であると勇者レベルが1、枚数が2枚であると勇者レベルが2、等のように表示される。なお、勇者レベルが、固定であり、ユーザの操作に応じて可変ではない構成であってもよい。
そして、CPU31は、消費する保有コイン数aの選択をユーザから受け付けたかを受け付けたと判断するまで判断する(S824)。ここで、消費する保有コイン数aの選択をユーザから受け付けたかを受け付けたと判断したときに(S824でYES)。CPU31は、キャラクタ情報D20を算出して勇者キャラクタ情報D25としてメインメモリ32に記憶させる(S825)。また、CPU31は、生成したキャラクタ情報D20を生成した日時を受信日時としてこのキャラクタ情報D20に付加して取得キャラクタ情報D22として保存用データメモリ34に記憶させる。なお、キャラクタ情報D20の生成方法を以下に述べる。キャラクタ情報D20は、上述したようにパーツIDに対応するキャラクタ画像データD24のIDを各パーツID毎に示す。従って、キャラクタ情報D20の生成は、所定の乱数発生処理が実行されることにより、キャラクタ画像データD24のIDが発生されることで行われる。このキャラクタ画像データD24のIDの生成が全てのパーツIDについて実行され、発生されたキャラクタ画像データD24のIDとパーツIDとを対応づけて含めることでキャラクタ情報D20が生成されるのである。なお、色情報、身長・体格情報及びキャラクタ名も、複数の候補の中からランダムで選択されて、キャラクタ情報D20に含められる。また、キャラクタIDも他のキャラクタ情報D20と重複しないように決定されて、キャラクタ情報D20に含められる。
続いて、CPU31は、ステップS824で受け付けた消費する保有コイン数aで勇者レベルテーブルT1を検索して勇者レベルを取得し、取得した勇者レベルを示す勇者レベル情報D26を生成してメインメモリ32に記憶させる(S826)。この後、CPU31は保存用データメモリ34のキャラクタ取得日データを現在日に更新する(S827)。そして、CPU31は、ステップS824で受け付けた消費する保有コイン数aを保有コイン数aから減算して(S828)、本処理を終了させて、処理を図27で示すメインルーチンに戻す。
上述したように、第2の実施形態でも第1の実施形態と同様に、「すれちがい通信」によるキャラクタ情報D20の取得方法の他に、ゲーム装置1のユーザの歩数に応じてキャラクタ情報D20を取得する取得方法によって、ゲーム装置1がキャラクタ情報D20を取得することができる。そして、第2の実施形態でも第1の実施形態と同様に、「すれちがい通信」によってキャラクタ情報D20が全く取得することができないとき、及び、「すれちがい通信」によって取得したキャラクタ情報D20では全ての敵キャラクタを倒すことができないときに、1日に限られた回数に限って、ゲーム装置1のユーザの歩数に応じてキャラクタ情報D20を取得することができる。
以下、第1及第2の実施形態の変形例を記載する。
(1)第1及び第2の実施形態では、2つのゲーム装置1の間でピース情報D5又はキャラクタ情報D20が送受信されるが、ピース情報D5又はキャラクタ情報D20に代えて、ピース画像データD9又はキャラクタ画像データD24自体が送受信される構成であってもよい。
(2)また、第2の実施形態では、保有コイン数aを用いてキャラクタ情報D20を生成しているが、このキャラクタ情報D20を生成することなく、パーツID毎に、所定の乱数発生処理によってキャラクタ画像データD24のIDを発生し、発生したIDのキャラクタ画像データD24を読み出して勇者キャラクタ画像G11が生成されてもよい。
(3)第1及び第2の実施形態では、「すれちがい通信」によってピース情報D5又はキャラクタ情報D20を全く取得することができなかったとき、及び取得することができたがゲームクリアするには不足しているときに限って、ゲーム装置1の保有コインによって購入することで(ユーザの歩数に応じて)ピース情報D5又はキャラクタ情報D20を取得することができる。しかしながら、この様な構成に代えて、「すれちがい通信」によるピース情報D5又はキャラクタ情報D20の取得と、保有コインによるピース情報D5又はキャラクタ情報D20の取得との何れかをユーザが自由に選択することができる構成であってもよい。
(4)第1及び第2の実施形態では、ゲーム装置1が、ピース集めアプリケーション又は勇者バトルアプリケーションの何れかを実行しているが、ピース集め処理及び勇者バトル処理のうちユーザに選択された処理をゲーム装置1に実行させるためのアプリケーションを記憶し、このアプリケーションの実行によってピース集め処理及び勇者バトル処理のうちユーザに選択された処理を実行してもよい。そして、第1の実施形態のピース情報と第2の実施形態のキャラクタ情報の両方を同時に上記「すれちがい通信」で送受信しても良い。
(5)なお、第1及び第2の実施形態では、ユーザの指示に応じてゲーム装置1が自機をスリープ状態にしてすれちがい通信処理を実行するが、この構成に代えて、ゲーム装置1が、主電源がオンになっているときは常に(ゲーム処理中でも)すれちがい通信処理を実行し、ユーザの指示に応じて、すれちがい通信処理で取得したピース情報D5又はキャラクタ情報D20がピース集めアプリケーション又は勇者バトルアプリケーションで使用されてもよい。
(6)第1及び第2の実施形態では、ゲーム装置1は専用機であるが、例えば、携帯電話機、簡易型携帯電話機(PHS)、PDA等の携帯情報端末にも本発明の適用は可能である。また、第1及び第2の実施形態は、本発明の情報処理プログラムをゲームプログラムに適用した形態であるが、本発明の情報処理プログラムは、「すれちがい通信」によって取得した情報(データ、プログラム等)を使用して何らかの処理を行うプログラムであれば、ゲームプログラム以外の他のプログラムにも適用することが可能である。
(7)また、第1及び第2の実施形態では、ゲーム装置1は、同種のゲーム装置1との間でピース情報D5又はキャラクタ情報D20を送受信しているが、これらの情報D5又はD20を受信するだけの構成であってもよい。この場合には、ゲーム装置1は、他のゲーム装置1からでなく、アクセスポイント、据え置き型ゲーム機及びパーソナルコンピュータ等からピース情報D5又はキャラクタ情報D20を受信してもよい。
(8)なお、第1及び第2の実施形態では、ゲーム装置1のみがピース集め処理又は勇者バトル処理を実行しているが、この処理のうち一部の処理がサーバで分担されてもよい。