(57)【要約】    【課題】  複雑なゲームステージも作成することができる。    【構成】  ゲームシステム１は、本体装置２に内蔵されるプロセッサ（８１）を含み、プロセッサは、プレイヤの操作入力に基づいて、仮想の部屋に対応するパーツ（２２０）を選択し、パーツに対応するパネル（２１２）を碁盤目状の配置領域（２１０）に配置して、ゲームステージを作成する。仮想の部屋には、通路（３０６）、階段および通路を塞ぐ鍵付きの扉（３２０）および宝箱（３１０）が配置される。宝箱には、鍵付きの扉を開錠するための鍵（３１２）が入っている。プレイヤは、ゲームを開始するスタートの部屋からボスの敵オブジェクトが配置された部屋に到達する間に、通路および階段をすべて連結するとともに、鍵付きの扉および鍵の入った宝箱の配置を考慮して、ゲームステージを作成する。【選択図】  図１
2020199048.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置のコンピュータにおいて実行され、ゲームをプレイするためのゲームステージを作成するための情報処理プログラムであって、
前記コンピュータを、
前記ゲームステージにおける、プレイヤオブジェクトの初期位置を設定する初期位置設定手段と、
ユーザの指示に基づく前記ゲームステージ内の位置に、前記ゲームにおいて前記プレイヤオブジェクトが通行することができない禁止要素を配置する禁止要素配置手段と、
前記ユーザの指示に基づく前記ゲームステージ内の位置に、前記ゲームにおいて前記禁止要素を解除して通行できるようにする解除要素を配置する解除要素配置手段と、
前記初期位置、前記禁止要素の数および配置位置、並びに、前記解除要素の数および配置位置に基づいて、前記プレイヤオブジェクトが前記ゲームステージの特定の位置に到達可能か否かを判定する到達判定手段と、
前記特定の位置に到達可能である場合に、当該特定の位置に到達可能であることを前記ユーザに示す到達情報を生成する到達情報生成手段として機能させる、情報処理プログラム。
【請求項２】
前記ゲームステージに基づくゲーム空間において前記プレイヤオブジェクトを操作する前記ゲームを実行するゲーム実行手段として前記コンピュータをさらに機能させる、請求項１記載の情報処理プログラム。
【請求項３】
前記ゲームステージをクリアするためのクリア条件を、当該ゲームステージに設定する条件設定手段として前記コンピュータをさらに機能させる、請求項２記載の情報処理プログラム。
【請求項４】
前記ゲームステージにおける、前記クリア条件を満たすために到達することが必要な位置である終了位置を設定する終了位置設定手段として前記コンピュータをさらに機能させ、
前記禁止要素配置手段は、前記終了位置への通行を禁止する前記禁止要素である第１禁止要素を前記ゲームステージに配置し、
前記ゲーム実行手段は、前記第１禁止要素以外の前記禁止要素である第２禁止要素を解除する前記解除要素である第２解除要素とは異なる第１解除要素により前記第１禁止要素を解除する、請求項３記載の情報処理プログラム。
【請求項５】
前記ゲーム実行手段は、前記プレイヤオブジェクトが最後に入手する前記解除要素を前記第１解除要素として設定する、請求項４記載の情報処理プログラム。
【請求項６】
前記解除要素配置手段は、前記ユーザの指示に基づく前記ゲームステージ内の位置に、前記解除要素を入手できる可能性のある潜在的解除要素を配置し、
前記ゲーム実行手段は、前記解除要素によらずとも前記クリア条件を満たすことが可能な前記潜在的解除要素からは当該解除要素を入手させない、請求項３から５までのいずれかに記載の情報処理プログラム。
【請求項７】
前記解除要素は、前記プレイヤオブジェクトが入手するものであり、
前記ゲーム実行手段は、前記禁止要素を解除する毎に、前記プレイヤオブジェクトが所有する前記解除要素の数を減らす、請求項２から６までのいずれかに記載の情報処理プログラム。
【請求項８】
前記ユーザの指示に基づく前記ゲームステージ内の位置から、別の離れた位置に前記プレイヤオブジェクトが移動する特殊移動要素を配置する特殊移動要素配置手段として前記コンピュータをさらに機能させる、請求項１から７までのいずれかに記載の情報処理プログラム。
【請求項９】
前記到達判定手段は、前記プレイヤオブジェクトが前記初期位置から到達可能な位置を、到達不可能な位置と判別可能な態様で表示するための情報を出力する、請求項１から８までのいずれかに記載の情報処理プログラム。
【請求項１０】
前記ユーザによって配置されたゲームパーツに基づいて、前記ゲーム空間を生成するゲーム空間生成手段として前記コンピュータをさらに機能させる、請求項１から９までのいずれかに記載の情報処理プログラム。
【請求項１１】
前記ゲームパーツは、前記ゲームステージにおける部屋および通路の少なくとも一方を表すものである、請求項１０記載の情報処理プログラム。
【請求項１２】
前記禁止要素配置手段は、前記禁止要素を含む前記ゲームパーツの配置に基づいて、前記禁止要素を配置する、請求項１０または１１記載の情報処理プログラム。
【請求項１３】
前記解除要素配置手段は、前記解除要素を含む前記ゲームパーツの配置に基づいて、前記解除要素を配置する、請求項１０から１２までのいずれかに記載の情報処理プログラム。
【請求項１４】
前記ゲームパーツは、定められた配置枠に配置されるパネルである、請求項１０から１３までのいずれかに記載の情報処理プログラム。
【請求項１５】
前記到達判定手段は、前記クリア条件を満たすために必要な前記特定の位置に到達することが可能な場合には、前記ゲームステージが完成したものと判定し、
前記ゲーム実行手段は、前記クリア条件が満たされたときに、前記ゲームの実行を許可する、請求項１から１４までのいずれかに記載の情報処理プログラム。
【請求項１６】
ゲームをプレイするためのゲームステージを作成するための情報処理装置であって、
前記ゲームステージにおける、プレイヤオブジェクトの初期位置を設定する初期位置設定手段と、
ユーザの指示に基づく前記ゲームステージ内の位置に、前記ゲームにおいて前記プレイヤオブジェクトが通行することができない禁止要素を配置する禁止要素配置手段と、
前記ユーザの指示に基づく前記ゲームステージ内の位置に、前記ゲームにおいて前記禁止要素を解除して通行できるようにする解除要素を配置する解除要素配置手段と、
前記初期位置、前記禁止要素の数および配置位置、並びに、前記解除要素の数および配置位置に基づいて、前記プレイヤオブジェクトが前記ゲームステージの特定の位置に到達可能か否かを判定する到達判定手段と、
前記特定の位置に到達可能である場合に、当該特定の位置に到達可能であることを前記ユーザに示す到達情報を生成する到達情報生成手段を備える、情報処理装置。
【請求項１７】
ゲームをプレイするためのゲームステージを作成するための情報処理システムであって、
前記ゲームステージにおける、プレイヤオブジェクトの初期位置を設定する初期位置設定手段と、
ユーザの指示に基づく前記ゲームステージ内の位置に、前記ゲームにおいて前記プレイヤオブジェクトが通行することができない禁止要素を配置する禁止要素配置手段と、
前記ユーザの指示に基づく前記ゲームステージ内の位置に、前記ゲームにおいて前記禁止要素を解除して通行できるようにする解除要素を配置する解除要素配置手段と、
前記初期位置、前記禁止要素の数および配置位置、並びに、前記解除要素の数および配置位置に基づいて、前記プレイヤオブジェクトが前記ゲームステージの特定の位置に到達可能か否かを判定する到達判定手段と、
前記特定の位置に到達可能である場合に、当該特定の位置に到達可能であることを前記ユーザに示す到達情報を生成する到達情報生成手段を備える、情報処理システム。
【請求項１８】
ゲームをプレイするためのゲームステージを作成するための情報処理方法であって、
（ａ）前記ゲームステージにおける、プレイヤオブジェクトの初期位置を設定するステップと、
（ｂ）ユーザの指示に基づく前記ゲームステージ内の位置に、前記ゲームにおいて前記プレイヤオブジェクトが通行することができない禁止要素を配置するステップと、
（ｃ）前記ユーザの指示に基づく前記ゲームステージ内の位置に、前記ゲームにおいて前記禁止要素を解除して通行できるようにする解除要素を配置するステップと、
（ｄ）前記初期位置、前記禁止要素の数および配置位置、並びに、前記解除要素の数および配置位置に基づいて、前記プレイヤオブジェクトが前記ゲームステージの特定の位置に到達可能か否かを判定するステップと、
（ｅ）前記特定の位置に到達可能である場合に、当該特定の位置に到達可能であることを前記ユーザに示す到達情報を生成するステップを含む、情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は情報処理プログラム、情報処理装置、情報処理システムおよび情報処理方法に関し、特にたとえば、ゲームをプレイするためのゲームステージを作成する、情報処理プログラム、情報処理装置、情報処理システムおよび情報処理方法に関する。
【背景技術】
【０００２】
背景技術の一例が特許文献１に開示される。この特許文献１では、２次元で表される領域の全体をマトリクス状に分割した個々の領域の集合体として構成され、起点エリアと終点エリアを有するマップにおいて、ユーザは、マップピースを選択し、マップの任意の領域に配置して、起点と終点を結ぶルートを形成する。マップピース上には、たとえば、直線、十字線、折れ線、Ｔ字線の仮想ルートが形成されており、ユーザは、マップピースを配置する際、マップピースの種類を選択し、マップピースを適宜回転させて仮想ルートの方向を決定する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１５−１６１２７号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
この特許文献１では、起点と終点を結ぶルートが形成されたかどうかが判断されるだけであるため、複雑なマップを作ることができなかった。
【０００５】
それゆえに、この発明の主たる目的は、新規な、情報処理プログラム、情報処理装置、情報処理システムおよび情報処理方法を提供することである。
【０００６】
また、この発明の他の目的は、複雑なゲームステージも作成することができる、情報処理プログラム、情報処理装置、情報処理システムおよび情報処理方法を提供することである。
【課題を解決するための手段】
【０００７】
第１の発明は、情報処理装置のコンピュータにおいて実行され、ゲームをプレイするためのゲームステージを作成するための情報処理プログラムであって、コンピュータを、ゲームステージにおける、プレイヤオブジェクトの初期位置を設定する初期位置設定手段と、ユーザの指示に基づくゲームステージ内の位置に、ゲームにおいてプレイヤオブジェクトが通行することができない禁止要素を配置する禁止要素配置手段と、ユーザの指示に基づくゲームステージ内の位置に、ゲームにおいて禁止要素を解除して通行できるようにする解除要素を配置する解除要素配置手段と、初期位置、禁止要素の数および配置位置、並びに、解除要素の数および配置位置に基づいて、プレイヤオブジェクトがゲームステージの特定の位置に到達可能か否かを判定する到達判定手段と、特定の位置に到達可能である場合に、当該特定の位置に到達可能であることをユーザに示す到達情報を生成する到達情報生成手段として機能させる、情報処理プログラムである。
【０００８】
第２の発明は、第１の発明に従属し、ゲームステージに基づくゲーム空間においてプレイヤオブジェクトを操作するゲームを実行するゲーム実行手段としてコンピュータをさらに機能させる。
【０００９】
第３の発明は、第２の発明に従属し、ゲームステージをクリアするためのクリア条件を、当該ゲームステージに設定する条件設定手段としてコンピュータをさらに機能させる。
【００１０】
第４の発明は、第３の発明に従属し、ゲームステージにおける、クリア条件を満たすために到達することが必要な位置である終了位置を設定する終了位置設定手段としてコンピュータをさらに機能させ、禁止要素配置手段は、終了位置への通行を禁止する禁止要素である第１禁止要素をゲームステージに配置し、ゲーム実行手段は、第１禁止要素以外の禁止要素である第２禁止要素を解除する解除要素である第２解除要素とは異なる第１解除要素により第１禁止要素を解除する。
【００１１】
第５の発明は、第４の発明に従属し、ゲーム実行手段は、プレイヤオブジェクトが最後に入手する解除要素を第１解除要素として設定する。
【００１２】
第６の発明は、第３の発明から第５の発明までのいずれかに従属し、解除要素配置手段は、ユーザの指示に基づくゲームステージ内の位置に、解除要素を入手できる可能性のある潜在的解除要素を配置し、ゲーム実行手段は、解除要素によらずともクリア条件を満たすことが可能な潜在的解除要素からは当該解除要素を入手させない。
【００１３】
第７の発明は、第２の発明から第６の発明までのいずれかに従属し、解除要素は、プレイヤオブジェクトが入手するものであり、ゲーム実行手段は、禁止要素を解除する毎に、プレイヤオブジェクトが所有する解除要素の数を減らす。
【００１４】
第８の発明は、第１の発明から第７の発明までのいずれかに従属し、ユーザの指示に基づくゲームステージ内の位置から、別の離れた位置にプレイヤオブジェクトが移動する特殊移動要素を配置する特殊移動要素配置手段としてコンピュータをさらに機能させる。
【００１５】
第９の発明は、第１の発明から第８の発明までのいずれかに従属し、到達判定手段は、プレイヤオブジェクトが初期位置から到達可能な位置を、到達不可能な位置と判別可能な態様で表示するための情報を出力する。
【００１６】
第１０の発明は、第１の発明から第９の発明までのいずれかに従属し、ユーザによって配置されたゲームパーツに基づいて、ゲーム空間を生成するゲーム空間生成手段としてコンピュータをさらに機能させる。
【００１７】
第１１の発明は、第１０の発明に従属し、ゲームパーツは、ゲームステージにおける部屋および通路の少なくとも一方を表すものである。
【００１８】
第１２の発明は、第１０の発明または第１１の発明に従属し、禁止要素配置手段は、禁止要素を含むゲームパーツの配置に基づいて、禁止要素を配置する。
【００１９】
第１３の発明は、第１０の発明から第１２の発明までのいずれかに従属し、解除要素配置手段は、解除要素を含むゲームパーツの配置に基づいて、解除要素を配置する。
【００２０】
第１４の発明は、第１０の発明から第１３の発明までのいずれかに従属し、ゲームパーツは、定められた配置枠に配置されるパネルである。
【００２１】
第１５の発明は、第１の発明から第１４の発明までのいずれかに従属し、到達判定手段は、クリア条件を満たすために必要な特定の位置に到達することが可能な場合には、ゲームステージが完成したものと判定し、ゲーム実行手段は、クリア条件が満たされたときに、ゲームの実行を許可する。
【００２２】
第１６の発明は、ゲームをプレイするためのゲームステージを作成するための情報処理装置であって、ゲームステージにおける、プレイヤオブジェクトの初期位置を設定する初期位置設定手段と、ユーザの指示に基づくゲームステージ内の位置に、ゲームにおいてプレイヤオブジェクトが通行することができない禁止要素を配置する禁止要素配置手段と、ユーザの指示に基づくゲームステージ内の位置に、ゲームにおいて禁止要素を解除して通行できるようにする解除要素を配置する解除要素配置手段と、初期位置、禁止要素の数および配置位置、並びに、解除要素の数および配置位置に基づいて、プレイヤオブジェクトがゲームステージの特定の位置に到達可能か否かを判定する到達判定手段と、特定の位置に到達可能である場合に、当該特定の位置に到達可能であることをユーザに示す到達情報を生成する到達情報生成手段を備える、情報処理装置である。
【００２３】
第１７の発明は、ゲームをプレイするためのゲームステージを作成するための情報処理システムであって、ゲームステージにおける、プレイヤオブジェクトの初期位置を設定する初期位置設定手段と、ユーザの指示に基づくゲームステージ内の位置に、ゲームにおいてプレイヤオブジェクトが通行することができない禁止要素を配置する禁止要素配置手段と、ユーザの指示に基づくゲームステージ内の位置に、ゲームにおいて禁止要素を解除して通行できるようにする解除要素を配置する解除要素配置手段と、初期位置、禁止要素の数および配置位置、並びに、解除要素の数および配置位置に基づいて、プレイヤオブジェクトがゲームステージの特定の位置に到達可能か否かを判定する到達判定手段と、特定の位置に到達可能である場合に、当該特定の位置に到達可能であることをユーザに示す到達情報を生成する到達情報生成手段を備える、情報処理システムである。
【００２４】
第１８の発明は、ゲームをプレイするためのゲームステージを作成するための情報処理方法であって、（ａ）ゲームステージにおける、プレイヤオブジェクトの初期位置を設定するステップと、（ｂ）ユーザの指示に基づくゲームステージ内の位置に、ゲームにおいてプレイヤオブジェクトが通行することができない禁止要素を配置するステップと、（ｃ）ユーザの指示に基づくゲームステージ内の位置に、ゲームにおいて禁止要素を解除して通行できるようにする解除要素を配置するステップと、（ｄ）初期位置、禁止要素の数および配置位置、並びに、解除要素の数および配置位置に基づいて、プレイヤオブジェクトがゲームステージの特定の位置に到達可能か否かを判定するステップと、（ｅ）特定の位置に到達可能である場合に、当該特定の位置に到達可能であることをユーザに示す到達情報を生成するステップを含む、情報処理方法である。
【発明の効果】
【００２５】
この発明によれば、複雑なゲームステージも作成することができる。
【００２６】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【００２７】
【図１】図１はこの実施例の本体装置に左コントローラおよび右コントローラを装着した状態の限定しない一例を示す図である。
【図２】図２は本体装置から左コントローラおよび右コントローラをそれぞれ外した状態の限定しない一例を示す図である。
【図３】図３は図１および図２に示した本体装置の限定しない一例を示す六面図である。
【図４】図４は図１および図２に示した左コントローラの限定しない一例を示す六面図である。
【図５】図５は図１および図２に示した右コントローラの限定しない一例を示す六面図である。
【図６】図６は図１および図２に示した本体装置の内部構成の限定しない一例を示すブロック図である。
【図７】図７は図１および図２に示した本体装置と左コントローラおよび右コントローラとの内部構成の限定しない一例を示すブロック図である。
【図８】図８はゲームステージの作成画面の限定しない第１の例を示す図である。
【図９】図９はゲームステージの作成時に選択するパーツの限定しない例を説明するための図である。
【図１０】図１０はゲームステージの作成画面の限定しない第２の例を示す図である。
【図１１】図１１（Ａ）はゲームステージの作成時に配置領域に配置されるパネルの限定しない例を説明するための図であり、図１１（Ｂ）はゲームステージの作成時に配置領域に配置されるパネルの限定しない他の例を説明するための図であり、図１１（Ｃ）はゲームステージの作成時に配置領域に配置されるパネルであって、隣接する２つのパネル間に対応する通路に設けられる鍵扉を説明するための図である。
【図１２】図１２はゲームステージの作成画面の限定しない第３の例を示す図である。
【図１３】図１３はゲームステージの作成画面の限定しない第４の例を示す図である。
【図１４】図１４はゲームステージの作成画面の限定しない第５の例を示す図である。
【図１５】図１５はゲーム画面の限定しない第１の例を示す図である。
【図１６】図１６はゲーム画面の限定しない第２の例を示す図である。
【図１７】図１７はゲーム画面の限定しない第３の例を示す図である。
【図１８】図１８はゲーム画面の限定しない第４の例を示す図である。
【図１９】図１９はゲーム画面の限定しない第５の例を示す図である。
【図２０】図２０は図６に示す本体装置のＤＲＡＭのメモリマップの限定しない一例を示す図である。
【図２１】図２１は図６に示す本体装置のプロセッサのゲーム全体処理の限定しない一例を示すフロー図である。
【図２２】図２２は図６に示す本体装置のプロセッサのゲーム制御処理の限定しない一例の一部を示すフロー図である。
【図２３】図２３は図６に示す本体装置のプロセッサのゲーム制御処理の他の一部であって、図２２に後続するフロー図である。
【図２４】図２４は図６に示す本体装置のプロセッサのクリア可能判定処理の限定しない一例を示すフロー図である。
【図２５】図２５は図６に示す本体装置のプロセッサの経路探索処理の限定しない一例を示すフロー図である。
【図２６】図２６は図６に示す本体装置のプロセッサの部屋情報収集処理の限定しない一例の一部を示すフロー図である。
【図２７】図２７は図６に示す本体装置のプロセッサの部屋情報収集処理の他の一部であって、図２６に後続するフロー図である。
【発明を実施するための形態】
【００２８】
以下、この実施例の限定しない一例に係るゲームシステムについて説明する。この実施例におけるゲームシステム１の一例は、本体装置（情報処理装置；この実施例ではゲーム装置本体として機能する）２と左コントローラ３および右コントローラ４とを含む。本体装置２は、左コントローラ３および右コントローラ４がそれぞれ着脱可能である。つまり、ゲームシステム１は、左コントローラ３および右コントローラ４をそれぞれ本体装置２に装着して一体化された装置として利用できる。また、ゲームシステム１は、本体装置２と左コントローラ３および右コントローラ４とを別体として利用することもできる（図２参照）。以下では、この実施例のゲームシステム１のハードウェア構成について説明し、その後に、この実施例のゲームシステム１の制御について説明する。
【００２９】
図１は、本体装置２に左コントローラ３および右コントローラ４を装着した状態の一例を示す図である。図１に示すように、左コントローラ３および右コントローラ４は、それぞれ本体装置２に装着されて一体化されている。本体装置２は、ゲームシステム１における各種の処理（例えば、ゲーム処理）を実行する装置である。本体装置２は、ディスプレイ１２を備える。左コントローラ３および右コントローラ４は、ユーザが入力を行うための操作部を備える装置である。
【００３０】
図２は、本体装置２から左コントローラ３および右コントローラ４をそれぞれ外した状態の一例を示す図である。図１および図２に示すように、左コントローラ３および右コントローラ４は、本体装置２に着脱可能である。なお、以下において、左コントローラ３および右コントローラ４の総称として「コントローラ」と記載することがある。
【００３１】
図３は、本体装置２の一例を示す六面図である。図３に示すように、本体装置２は、略板状のハウジング１１を備える。この実施例において、ハウジング１１の主面（換言すれば、表側の面、すなわち、ディスプレイ１２が設けられる面）は、大略的には矩形形状である。
【００３２】
なお、ハウジング１１の形状および大きさは、任意である。一例として、ハウジング１１は、携帯可能な大きさであってよい。また、本体装置２単体または本体装置２に左コントローラ３および右コントローラ４が装着された一体型装置は、携帯型装置となってもよい。また、本体装置２または一体型装置が手持ち型の装置となってもよい。また、本体装置２または一体型装置が可搬型装置となってもよい。
【００３３】
図３に示すように、本体装置２は、ハウジング１１の主面に設けられるディスプレイ１２を備える。ディスプレイ１２は、本体装置２が生成した画像を表示する。この実施例においては、ディスプレイ１２は、液晶表示装置（ＬＣＤ）とする。ただし、ディスプレイ１２は任意の種類の表示装置であってよい。
【００３４】
また、本体装置２は、ディスプレイ１２の画面上にタッチパネル１３を備える。この実施例においては、タッチパネル１３は、マルチタッチ入力が可能な方式（例えば、静電容量方式）のものである。ただし、タッチパネル１３は、任意の種類のものであってよく、例えば、シングルタッチ入力が可能な方式（例えば、抵抗膜方式）のものであってもよい。
【００３５】
本体装置２は、ハウジング１１の内部においてスピーカ（すなわち、図６に示すスピーカ８８）を備えている。図３に示すように、ハウジング１１の主面には、スピーカ孔１１ａおよび１１ｂが形成される。そして、スピーカ８８の出力音は、これらのスピーカ孔１１ａおよび１１ｂからそれぞれ出力される。
【００３６】
また、本体装置２は、本体装置２が左コントローラ３と有線通信を行うための端子である左側端子１７と、本体装置２が右コントローラ４と有線通信を行うための右側端子２１を備える。
【００３７】
図３に示すように、本体装置２は、スロット２３を備える。スロット２３は、ハウジング１１の上側面に設けられる。スロット２３は、所定の種類の記憶媒体を装着可能な形状を有する。所定の種類の記憶媒体は、例えば、ゲームシステム１およびそれと同種の情報処理装置に専用の記憶媒体（例えば、専用メモリカード）である。所定の種類の記憶媒体は、例えば、本体装置２で利用されるデータ（例えば、アプリケーションのセーブデータ等）、および／または、本体装置２で実行されるプログラム（例えば、アプリケーションのプログラム等）を記憶するために用いられる。また、本体装置２は、電源ボタン２８を備える。
【００３８】
本体装置２は、下側端子２７を備える。下側端子２７は、本体装置２がクレードルと通信を行うための端子である。この実施例において、下側端子２７は、ＵＳＢコネクタ（より具体的には、メス側コネクタ）である。上記一体型装置または本体装置２単体をクレードルに載置した場合、ゲームシステム１は、本体装置２が生成して出力する画像を据置型モニタに表示することができる。また、この実施例においては、クレードルは、載置された上記一体型装置または本体装置２単体を充電する機能を有する。また、クレードルは、ハブ装置（具体的には、ＵＳＢハブ）の機能を有する。
【００３９】
図４は、左コントローラ３の一例を示す六面図である。図４に示すように、左コントローラ３は、ハウジング３１を備える。この実施例においては、ハウジング３１は、縦長の形状、すなわち、上下方向（すなわち、図１および図４に示すｙ軸方向）に長い形状である。左コントローラ３は、本体装置２から外された状態において、縦長となる向きで把持されることも可能である。ハウジング３１は、縦長となる向きで把持される場合に片手、特に左手で把持可能な形状および大きさをしている。また、左コントローラ３は、横長となる向きで把持されることも可能である。左コントローラ３が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【００４０】
左コントローラ３は、アナログスティック３２を備える。図４に示すように、アナログスティック３２は、ハウジング３１の主面に設けられる。アナログスティック３２は、方向を入力することが可能な方向入力部として用いることができる。ユーザは、アナログスティック３２を傾倒することによって傾倒方向に応じた方向の入力（および、傾倒した角度に応じた大きさの入力）が可能である。なお、左コントローラ３は、方向入力部として、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、この実施例においては、アナログスティック３２を押下する入力が可能である。
【００４１】
左コントローラ３は、各種操作ボタンを備える。左コントローラ３は、ハウジング３１の主面上に４つの操作ボタン３３〜３６（具体的には、右方向ボタン３３、下方向ボタン３４、上方向ボタン３５、および左方向ボタン３６）を備える。さらに、左コントローラ３は、録画ボタン３７および−（マイナス）ボタン４７を備える。左コントローラ３は、ハウジング３１の側面の左上にＬボタン３８およびＺＬボタン３９を備える。また、左コントローラ３は、ハウジング３１の側面のうち、本体装置２に装着される際に装着される側の面に、ＳＬボタン４３およびＳＲボタン４４を備える。これらの操作ボタンは、本体装置２で実行される各種プログラム（例えば、ＯＳプログラムやアプリケーションプログラム）に応じた指示を行うために用いられる。
【００４２】
また、左コントローラ３は、左コントローラ３が本体装置２と有線通信を行うための端子４２を備える。
【００４３】
図５は、右コントローラ４の一例を示す六面図である。図５に示すように、右コントローラ４は、ハウジング５１を備える。この実施例においては、ハウジング５１は、縦長の形状、すなわち、上下方向に長い形状である。右コントローラ４は、本体装置２から外された状態において、縦長となる向きで把持されることも可能である。ハウジング５１は、縦長となる向きで把持される場合に片手、特に右手で把持可能な形状および大きさをしている。また、右コントローラ４は、横長となる向きで把持されることも可能である。右コントローラ４が横長となる向きで把持される場合には、両手で把持されるようにしてもよい。
【００４４】
右コントローラ４は、左コントローラ３と同様、方向入力部としてアナログスティック５２を備える。この実施例においては、アナログスティック５２は、左コントローラ３のアナログスティック３２と同じ構成である。また、右コントローラ４は、アナログスティックに代えて、十字キーまたはスライド入力が可能なスライドスティック等を備えるようにしてもよい。また、右コントローラ４は、左コントローラ３と同様、ハウジング５１の主面上に４つの操作ボタン５３〜５６（具体的には、Ａボタン５３、Ｂボタン５４、Ｘボタン５５、およびＹボタン５６）を備える。さらに、右コントローラ４は、＋（プラス）ボタン５７およびホームボタン５８を備える。また、右コントローラ４は、ハウジング５１の側面の右上にＲボタン６０およびＺＲボタン６１を備える。また、右コントローラ４は、左コントローラ３と同様、ＳＬボタン６５およびＳＲボタン６６を備える。
【００４５】
また、右コントローラ４は、右コントローラ４が本体装置２と有線通信を行うための端子６４を備える。
【００４６】
図６は、本体装置２の内部構成の一例を示すブロック図である。本体装置２は、図３に示す構成の他、図６に示す各構成要素８１〜９１、９７、および９８を備える。これらの構成要素８１〜９１、９７、および９８のいくつかは、電子部品として電子回路基板上に実装されてハウジング１１内に収納されてもよい。
【００４７】
本体装置２は、プロセッサ８１を備える。プロセッサ８１は、本体装置２において実行される各種の情報処理を実行する情報処理部であって、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）のみから構成されてもよいし、ＣＰＵ機能、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）機能等の複数の機能を含むＳｏＣ（Ｓｙｓｔｅｍ−ｏｎ−ａ−ｃｈｉｐ）から構成されてもよい。プロセッサ８１は、記憶部（具体的には、フラッシュメモリ８４等の内部記憶媒体、あるいは、スロット２３に装着される外部記憶媒体等）に記憶される情報処理プログラム（例えば、ゲームプログラム）を実行することによって、各種の情報処理を実行する。
【００４８】
本体装置２は、自身に内蔵される内部記憶媒体の一例として、フラッシュメモリ８４およびＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）８５を備える。フラッシュメモリ８４およびＤＲＡＭ８５は、プロセッサ８１に接続される。フラッシュメモリ８４は、主に、本体装置２に保存される各種のデータ（プログラムであってもよい）を記憶するために用いられるメモリである。ＤＲＡＭ８５は、情報処理において用いられる各種のデータを一時的に記憶するために用いられるメモリである。
【００４９】
本体装置２は、スロットインターフェース（以下、「Ｉ／Ｆ」と略記する）９１を備える。スロットＩ／Ｆ９１は、プロセッサ８１に接続される。スロットＩ／Ｆ９１は、スロット２３に接続され、スロット２３に装着された所定の種類の記憶媒体（例えば、専用メモリカード）に対するデータの読み出しおよび書き込みを、プロセッサ８１の指示に応じて行う。
【００５０】
プロセッサ８１は、フラッシュメモリ８４およびＤＲＡＭ８５、ならびに上記各記憶媒体との間でデータを適宜読み出したり書き込んだりして、上記の情報処理を実行する。
【００５１】
本体装置２は、ネットワーク通信部８２を備える。ネットワーク通信部８２は、プロセッサ８１に接続される。ネットワーク通信部８２は、ネットワークを介して外部の装置と通信（具体的には、無線通信）を行う。この実施例においては、ネットワーク通信部８２は、第１の通信態様としてＷｉ−Ｆｉの規格に準拠した方式により、無線ＬＡＮに接続して外部装置と通信を行う。また、ネットワーク通信部８２は、第２の通信態様として所定の通信方式（例えば、独自プロトコルによる通信や、赤外線通信）により、同種の他の本体装置２との間で無線通信を行う。なお、上記第２の通信態様による無線通信は、閉ざされたローカルネットワークエリア内に配置された他の本体装置２との間で無線通信可能であり、複数の本体装置２の間で直接通信することによってデータが送受信される、いわゆる「ローカル通信」を可能とする機能を実現する。
【００５２】
本体装置２は、コントローラ通信部８３を備える。コントローラ通信部８３は、プロセッサ８１に接続される。コントローラ通信部８３は、左コントローラ３および／または右コントローラ４と無線通信を行う。本体装置２と左コントローラ３および右コントローラ４との通信方式は任意であるが、この実施例においては、コントローラ通信部８３は、左コントローラ３との間および右コントローラ４との間で、Ｂｌｕｅｔｏｏｔｈ（登録商標）の規格に従った通信を行う。
【００５３】
プロセッサ８１は、上述の左側端子１７、右側端子２１、および下側端子２７に接続される。プロセッサ８１は、左コントローラ３と有線通信を行う場合、左側端子１７を介して左コントローラ３へデータを送信するとともに、左側端子１７を介して左コントローラ３から操作データを受信（または、取得）する。また、プロセッサ８１は、右コントローラ４と有線通信を行う場合、右側端子２１を介して右コントローラ４へデータを送信するとともに、右側端子２１を介して右コントローラ４から操作データを受信（または、取得）する。また、プロセッサ８１は、クレードルと通信を行う場合、下側端子２７を介してクレードルへデータを送信する。このように、この実施例においては、本体装置２は、左コントローラ３および右コントローラ４との間で、それぞれ有線通信と無線通信との両方を行うことができる。また、左コントローラ３および右コントローラ４が本体装置２に装着された一体型装置または本体装置２単体がクレードルに装着された場合、本体装置２は、クレードルを介してデータ（例えば、表示画像データや音声データ）を据置型モニタ等に出力することができる。
【００５４】
ここで、本体装置２は、複数の左コントローラ３と同時に（換言すれば、並行して）通信を行うことができる。また、本体装置２は、複数の右コントローラ４と同時に（換言すれば、並行して）通信を行うことができる。したがって、複数のユーザは、左コントローラ３および右コントローラ４のセットをそれぞれ用いて、本体装置２に対する入力を同時に行うことができる。一例として、第１ユーザが左コントローラ３および右コントローラ４の第１セットを用いて本体装置２に対して入力を行うと同時に、第２ユーザが左コントローラ３および右コントローラ４の第２セットを用いて本体装置２に対して入力を行うことが可能となる。
【００５５】
本体装置２は、タッチパネル１３の制御を行う回路であるタッチパネルコントローラ８６を備える。タッチパネルコントローラ８６は、タッチパネル１３とプロセッサ８１との間に接続される。タッチパネルコントローラ８６は、タッチパネル１３からの信号に基づいて、例えばタッチ入力が行われた位置を示すデータを生成して、プロセッサ８１へ出力する。
【００５６】
また、ディスプレイ１２は、プロセッサ８１に接続される。プロセッサ８１は、（例えば、上記の情報処理の実行によって）生成した画像および／または外部から取得した画像をディスプレイ１２に表示する。
【００５７】
本体装置２は、コーデック回路８７およびスピーカ（具体的には、左スピーカおよび右スピーカ）８８を備える。コーデック回路８７は、スピーカ８８および音声入出力端子２５に接続されるとともに、プロセッサ８１に接続される。コーデック回路８７は、スピーカ８８および音声入出力端子２５に対する音声データの入出力を制御する回路である。
【００５８】
本体装置２は、電力制御部９７およびバッテリ９８を備える。電力制御部９７は、バッテリ９８およびプロセッサ８１に接続される。また、図示しないが、電力制御部９７は、本体装置２の各部（具体的には、バッテリ９８の電力の給電を受ける各部、左側端子１７、および右側端子２１）に接続される。電力制御部９７は、プロセッサ８１からの指令に基づいて、バッテリ９８から上記各部への電力供給を制御する。
【００５９】
また、バッテリ９８は、下側端子２７に接続される。外部の充電装置（例えば、クレードル）が下側端子２７に接続され、下側端子２７を介して本体装置２に電力が供給される場合、供給された電力がバッテリ９８に充電される。
【００６０】
図７は、本体装置２と左コントローラ３および右コントローラ４との内部構成の一例を示すブロック図である。なお、本体装置２に関する内部構成の詳細については、図６で示しているため図７では省略している。
【００６１】
左コントローラ３は、本体装置２との間で通信を行う通信制御部１０１を備える。図７に示すように、通信制御部１０１は、端子４２を含む各構成要素に接続される。この実施例においては、通信制御部１０１は、端子４２を介した有線通信と、端子４２を介さない無線通信との両方で本体装置２と通信を行うことが可能である。通信制御部１０１は、左コントローラ３が本体装置２に対して行う通信方法を制御する。すなわち、左コントローラ３が本体装置２に装着されている場合、通信制御部１０１は、端子４２を介して本体装置２と通信を行う。また、左コントローラ３が本体装置２から外されている場合、通信制御部１０１は、本体装置２（具体的には、コントローラ通信部８３）との間で無線通信を行う。コントローラ通信部８３と通信制御部１０１との間の無線通信は、例えばＢｌｕｅｔｏｏｔｈ（登録商標）の規格に従って行われる。
【００６２】
また、左コントローラ３は、例えばフラッシュメモリ等のメモリ１０２を備える。通信制御部１０１は、例えばマイコン（マイクロプロセッサとも言う）で構成され、メモリ１０２に記憶されるファームウェアを実行することによって各種の処理を実行する。
【００６３】
左コントローラ３は、各ボタン１０３（具体的には、ボタン３３〜３９、４３、４４、および４７）を備える。また、左コントローラ３は、アナログスティック（図７では「スティック」と記載する）３２を備える。各ボタン１０３およびアナログスティック３２は、自身に対して行われた操作に関する情報を、適宜のタイミングで繰り返し通信制御部１０１へ出力する。
【００６４】
通信制御部１０１は、各入力部（具体的には、各ボタン１０３、アナログスティック３２、各センサ１０４および１０５）から、入力に関する情報（具体的には、操作に関する情報、またはセンサによる検出結果）を取得する。通信制御部１０１は、取得した情報（または取得した情報に所定の加工を行った情報）を含む操作データを本体装置２へ送信する。なお、操作データは、所定時間に１回の割合で繰り返し送信される。なお、入力に関する情報が本体装置２へ送信される間隔は、各入力部について同じであってもよいし、同じでなくてもよい。
【００６５】
上記操作データが本体装置２へ送信されることによって、本体装置２は、左コントローラ３に対して行われた入力を得ることができる。すなわち、本体装置２は、各ボタン１０３およびアナログスティック３２に対する操作を、操作データに基づいて判断することができる。
【００６６】
左コントローラ３は、電力供給部１０８を備える。この実施例において、電力供給部１０８は、バッテリおよび電力制御回路を有する。図示しないが、電力制御回路は、バッテリに接続されるとともに、左コントローラ３の各部（具体的には、バッテリの電力の給電を受ける各部）に接続される。
【００６７】
図７に示すように、右コントローラ４は、本体装置２との間で通信を行う通信制御部１１１を備える。また、右コントローラ４は、通信制御部１１１に接続されるメモリ１１２を備える。通信制御部１１１は、端子６４を含む各構成要素に接続される。通信制御部１１１およびメモリ１１２は、左コントローラ３の通信制御部１０１およびメモリ１０２と同様の機能を有する。したがって、通信制御部１１１は、端子６４を介した有線通信と、端子６４を介さない無線通信（具体的には、Ｂｌｕｅｔｏｏｔｈ（登録商標）の規格に従った通信）との両方で本体装置２と通信を行うことが可能であり、右コントローラ４が本体装置２に対して行う通信方法を制御する。
【００６８】
右コントローラ４は、左コントローラ３の各入力部と同様の各入力部を備える。具体的には、各ボタン１１３、アナログスティック５２を備える。これらの各入力部については、左コントローラ３の各入力部と同様の機能を有し、同様に動作する。
【００６９】
右コントローラ４は、電力供給部１１８を備える。電力供給部１１８は、左コントローラ３の電力供給部１０８と同様の機能を有し、同様に動作する。
【００７０】
次に、図８−図１９を参照して、この実施例のゲームシステム１において実行される仮想のゲームのゲーム処理についての概要を説明する。図８は、この実施例の仮想のゲームのアプリケーションを実行した場合に、表示装置（たとえば、ディスプレイ１２）に表示されるゲーム画像の限定しない第１の例を示す図である。
【００７１】
本体装置２は、画像処理装置としても機能し、ゲーム画像などの各種画面に対応する表示画像データを生成および出力（表示）する。プロセッサ８１は、３次元の仮想空間に各種のオブジェクトおよびキャラクタを配置し、或る情景または場面（シーン）が生成される。このシーンを仮想のカメラで撮影した（視点から見た）画像がゲーム画像としてディスプレイ１２に表示される。
【００７２】
図８は、ゲームステージを作成するための作成画面２００の限定しない一例であり、ゲームをプレイするためのゲームステージを作成する領域（以下、「作成領域」という）２０２と、ゲームステージの元になるパーツ（「ゲームパーツ」に相当する）２２０を選択する領域（以下、「選択領域」という）２０４を含む。作成領域２０２は、パーツ２２０を配置する領域（以下、「配置領域」という）２１０を含み、配置領域２１０は碁盤目状に分割される。配置領域２１０を構成する各升目２１０ａには、パーツ２２０を１つ配置することができる。
【００７３】
パーツ２２０は、３次元仮想空間に形成される仮想の部屋に対応し、２次元の画像で示される。パーツ２２０は、予めゲームで用意されていたり、ゲームステージでプレイするゲーム（たとえば、ミニゲーム）とは異なるゲーム（たとえば、本編のゲーム）をプレイすることにより取得されたり、場合によっては、インターネットのようなネットワークからダウンロードされたりする。
【００７４】
図９はパーツ２２０の限定しない一例を示す。図９に示すように、パーツ２２０の表面には、パーツ２２０に対応する仮想の部屋を仮想空間の上方から見た場合の２次元の画像の縮小画像２２０ａが描画される。ただし、縮小画像２２０ａは簡略化されていてもよい。仮想の部屋は、３次元の仮想空間において直方体の形状であり、仮想空間を上方から見た場合に、四角形（この実施例では、横長の長方形）の形状である。仮想の部屋を構成する４つの壁の少なくとも１つに通路（または、出入口）が設けられ、他の仮想の部屋と連結（または、接続）することができる。ただし、他の実施例では、パーツ２２０は、仮想の部屋では無く、単なる通路であってもよい。つまり、パーツ２２０は、仮想の部屋および通路の少なくとも一方を表すものである。
【００７５】
以下、作成画面２００において、方向を用いて説明する場合には、作成画面２００を正面から見た場合の上、下、左または右を用いることにする。
【００７６】
この実施例では、仮想の部屋を俯瞰的に見た場合に、上、下、左および右に４つの壁が設けられる。また、仮想の部屋の種類は様々であり、通路は、１つのみならず、２つ、３つまたは４つ設けられる場合もある。通路が４つ設けられる場合を除いて、通路の数と、通路が設けられる壁の位置によって、仮想の部屋を分類することができる。仮想の部屋が通路を１つ有する場合には、上、下、左または右の壁に通路が設けられ、４つの種類に分類することができる。また、仮想の部屋が通路を２つ有する場合には、上と下、左と右、上と左、上と右、下と左、または、下と右の壁に２つの通路が設けられ、仮想の部屋を６つの種類に分類することができる。さらに、仮想の部屋が通路を３つ有する場合には、上と下と左、上と下と右、上と左と右、または、下と左と右の壁に３つの通路が設けられ、仮想の部屋を４つの種類に分類することができる。
【００７７】
詳細な説明等は省略するが、ゲームステージを作成する場合には、複数種類の配置領域２１０から所望の配置領域２１０を選択することができる。図８に示した例では、配置領域２１０は、いずれの升目２１０ａにもパネル２１２を配置可能であるが、他の例では、一部の升目２１０ａにパネル２１２を配置できない場合がある。
【００７８】
このとき、隣接する２つのパネル２１２において通路同士が接触する場合には、通路同士は連結される。また、パネル２１２において階段が配置される場合には、その階段は他のパネルに配置された階段と連結される。この場合、階段が配置された仮想の部屋同士は隣接していなくてもよい。つまり、階段は、通路を連結することができない仮想の部屋同士を連結することができる特殊移動要素である。たとえば、階段同士は、地下または空中に設けられた通路を介して接続されたり、ワープするように接続されたりする。ただし、階段が配置されたパネル２１２が３つ以上配置される場合には、作成画面２００の配置領域２１０における２次元の距離が最短となる階段同士が連結される。
【００７９】
この実施例では、配置領域２１０に配置されたパネル２１２に、階段の位置情報（たとえば、２次元の位置座標）が紐づけられている。この位置情報は、仮想の部屋における階段の位置(ローカルの位置）に基づいて、この仮想の部屋のパーツ２２０に対応するパネル２１２が配置領域２１０に配置されたときに算出される。ただし、階段の２次元の位置座標は、パネル２１２の右上に表示される階段の画像２１２ｃ（図１１（Ｂ）参照）の位置座標でもよい。
【００８０】
また、階段同士を連結する方法は一例であり、限定される必要は無い。他の例では、ランダムに選択された階段同士またはプレイヤが手動で選択した階段同士が連結されてもよい。
【００８１】
また、縮小画像２２０ａの下方には、仮想の部屋に配置されるオブジェクトの情報が２次元の画像で示される。この実施例では、仮想の部屋に配置されるオブジェクトは、宝箱を模したオブジェクト、仮想の部屋内に設けられる階段を模したオブジェクト、仮想の部屋に設けられ、通路を塞ぐ鍵付きの扉（以下、この明細書では「鍵扉」という）を模したオブジェクトである。
【００８２】
図９に示す例では、仮想の部屋に、宝箱を模したオブジェクトが配置される場合には、縮小画像２２０ａの左下方に、宝箱の画像２２０ｂが表示される。また、仮想の部屋内に階段を模したオブジェクトが配置される場合には、縮小画像２２０ａの下方に、階段の画像２２０ｃが表示される。さらに、仮想の部屋にその通路を塞ぐ鍵扉を模したオブジェクトが配置される場合には、縮小画像２２０ａの右下方に、鍵穴の画像２２０ｄが表示される。ただし、パーツ２２０では、階段の画像２２０ｃは、宝箱の画像２２０ｂと鍵穴の画像２２０ｄの間に表示される。また、鍵扉が仮想の部屋に複数存在する場合には、その数が鍵穴の画像２２０ｄの横（たとえば、右横）に表示される。
【００８３】
図９では、説明の都合上、画像２２０ｂ、２２０ｃ、２２０ｄが表示されている場合について示してあるが、対応するオブジェクトが仮想の部屋に配置されていない場合には、画像２２０ｂ、２２０ｃ、２２０ｄは表示されない。
【００８４】
図８に戻って、作成画面２００には、指示画像２３０がさらに表示され、この指示画像２３０を移動させることにより、パーツ２２０を指示（または、選択）したり、指示画像２３０で升目２１０ａを指示（または、選択）したりすることができる。たとえば、指示画像２３０は、左スティック３２を用いて作成画面２００上を移動される。ただし、指示画像２３０は、右方向ボタン３３、下方向ボタン３４、上方向ボタン３５、および左方向ボタン３６を用いて作成画面２００上を移動させることもできる。
【００８５】
ユーザないしプレイヤ（以下、単に「プレイヤ」という）は、所望のパーツ２２０を配置領域２１０に配置する場合、左スティック３２で指示画像２３０を移動させて、選択領域２０４に表示された所望のパーツ２２０を指示し、Ａボタン５３を押下する。すると、指示画像２３０によって指示されたパーツ２２０を配置領域２１０に配置することが決定される。そして、プレイヤは、左スティック３２で指示画像２３０を移動させて、配置領域２１０の所望の升目２１０ａを指示し、Ａボタン５３を押下する。すると、配置することが決定されたパーツ２２０に対応するパネル２１２が指示された（つまり、配置先の）升目２１０ａに配置（または、表示）される。
【００８６】
ただし、配置するパーツ２２０を決定する前に、配置先の升目２１０ａが指示（または、決定）されてもよい。かかる場合には、配置するパーツ２２０が決定されると、決定されたパーツ２２０に対応するパネル２１２が先に決定された配置先の升目２１０ａに配置される。
【００８７】
図１０は複数のパーツ２２０が配置領域２１０の複数の升目２１０ａに配置された状態の限定しない一例を示す。図１０に示すように、初期位置を含む仮想の部屋（以下、「スタート部屋Ｓ」という）のパーツ２２０に対応するパネル２１２と、ボスの敵オブジェクトが存在する特定の位置または場所である仮想の部屋（以下、「ボス部屋Ｂ」という）のパーツ２２０に対応するパネル２１２が配置領域２１０に配置され、スタート部屋Ｓとボス部屋Ｂの間に、それら以外の１または複数の仮想の部屋についてのパーツ２２０の各々に対応する複数のパネル２１２が配置される。図１０に示す例では、他の仮想の部屋のパーツ２２０に対応するパネル２１２が５つ配置されている。
【００８８】
以下、この明細書においては、「仮想の部屋のパーツ２２０に対応するパネル２１２」を、「仮想の部屋に対応するパネル２１２」ということにする。
【００８９】
図１０に示すように、この実施例では、スタート部屋Ｓに対応するパネル２１２には、「Ｓ」の文字が描画され、ボス部屋Ｂに対応するパネル２１２には、「Ｂ」の文字が描画される。ただし、これは一例であり、文字に代えて記号が描画されてもよい。また、これ以降では、「それら以外の仮想の部屋」を「通常の部屋」ということにする。スタート部屋Ｓ、ボス部屋Ｂおよび通常の部屋を区別する必要が無い場合には、「仮想の部屋」ということにする。
【００９０】
また、図１１（Ａ）に示すように、宝箱が設けられる仮想の部屋に対応するパネル２１２には、壁および通路を示す枠状の画像２１２ａおよび宝箱の画像２１２ｂが表示される。図１１（Ａ）に示すように、画像２１２ａは、パネル２１２の輪郭線に沿って太枠で示される。パネル２１２の輪郭線は透明であるが、図１１（Ａ）では、分かり易く示すために、通路が配置された部分において、パネル２１２の輪郭線を点線で示してある。このことは、図１１（Ｂ）および図１１（Ｃ）も同じである。詳細な説明は省略するが、図１１（Ａ）のパネル２１２と図１１（Ｃ）のパネル２１２を比較して分かるように、通路の数および位置に応じて、画像２１２ａの形は変わる。また、図１１（Ａ）に示すように、画像２１２ｂは、パネル２１２の中央部分に描画（または、表示）される。
【００９１】
図１１（Ｂ）に示すように、階段が設けられる仮想の部屋に対応するパネル２１２には、画像２１２ａおよび階段の画像２１２ｃが表示される。画像２１２ｃは、パネル２１２の右上部分に描画（または、表示）される。
【００９２】
図１１（Ｃ）に示すように、鍵扉が設けられる仮想の部屋に対応するパネル２１２には、鍵扉が設けられる通路と、隣接する仮想の部屋に対応するパネル２１２の通路に跨るように、鍵穴の画像２１２ｄが描画（または、表示）される。
【００９３】
図１０の配置領域２１０に示したように、ボス部屋Ｂの通路に設けられる鍵扉は、通常の部屋の通路に設けられる鍵扉（第２禁止要素に相当する）と異なる鍵扉（以下、「ボス鍵扉」ということがある）である。したがって、ボス鍵扉（第１禁止要素に相当する）は通常の部屋の通路に設けられる鍵扉を開ける鍵（第２解除要素に相当する）とは異なる鍵（以下、「ボス鍵（第１解除要素に相当する）」という）で開錠することができる。
【００９４】
図１１（Ｄ）に示すように、鍵の違いを表現するために、ボス部屋Ｂの通路に設けられるボス鍵扉に対応する鍵穴の画像２１２ｅは、通常の部屋の通路に設けられる鍵扉に対応する鍵穴の画像２１２ｄとは異なる図柄にしてある。
【００９５】
以下、ボス鍵扉およびボス鍵を、通常の部屋の通路に設けられる鍵扉および鍵と区別する必要が無い場合には、単に「鍵扉」および「鍵」という。
【００９６】
図示は省略するが、上述したように、仮想の部屋には、宝箱、階段および鍵扉のうちの２つ以上が設けられる場合もあり、その場合には、その仮想の部屋に対応するパネル２１２に、画像２１２ｂ、２１２ｃおよび２１２ｄのうちの２つ以上が表示される。また、仮想の部屋に、鍵扉が２つ以上設けられる場合には、その仮想の部屋に対応するパネル２１２に、画像２１２ｄが２つ以上表示される。ただし、鍵穴の画像２１２ｄは、鍵扉が設けられる通路に対応する位置に表示される。
【００９７】
この実施例では、プレイヤが作成したゲームステージを実際にプレイすることができる。ただし、ゲームステージが正しく作成されていない場合には、プレイすることができない。つまり、プレイヤは、ゲームをプレイするためのゲームステージを作成することができる。ゲームステージが正しく作成されていることの条件は、（１）スタート部屋Ｓに対応するパネル２１２とボス部屋Ｂに対応するパネル２１２が配置されていること、つまり、プレイヤオブジェクトの初期位置と特定の位置が設定されていること、（２）仮想の部屋の通路および階段がすべて繋がっていること、（３）鍵扉の数と同じ数またはそれよりも多い数の宝箱が配置されていることである。（１）−（３）の条件は、ゲームステージが正しく作成されていることの前提条件であって、さらに、これらの前提条件を満たした上で、鍵扉と宝箱の位置を考慮した場合に、ゲームをクリアできるかどうかが判定される。つまり、（４）ゲームをクリアできることの条件も満たす必要がある。
【００９８】
この実施例では、鍵扉を開錠するための鍵が、宝箱に入っている。ただし、鍵と鍵扉は対応づけされておらず、鍵扉はいずれの鍵でも開錠することができる。また、鍵扉の開錠に使われた鍵は消費され、無くなる。したがって、上述したように、前提条件は、（３）の条件を含む。また、この実施例では、ボス部屋Ｂの鍵も宝箱に入っているが、ボス部屋Ｂの鍵は最後に入手（または、取得）される。ただし、宝箱の数が鍵扉の数よりも多い場合には、多い分の鍵は不要であるため、鍵以外のアイテムが入手される、または、何も入手されない（すなわち、宝箱は空である）。たとえば、宝箱が２つ余分に配置されている場合には、１つ目と２つ目に開けた宝箱からは鍵は入手されない。
【００９９】
このように、プレイヤオブジェクトが通行することができない禁止要素である鍵扉を開錠して、通行できるようにする解除要素である鍵は宝箱に入っている。宝箱の数が鍵扉の数よりも多い場合には、宝箱に鍵が入っていないこともあるため、宝箱は解除要素である鍵を入手できる可能性のある潜在的な解除要素と言える。
【０１００】
また、（１）−（３）の前提条件を満たす場合であっても、鍵扉が配置された仮想の部屋よりも手前で鍵を入手できるようにゲームステージが作成されていなければ、ゲームをクリアすることができない。
【０１０１】
ただし、この実施例では、ゲームをクリアするためには、ボスの敵オブジェクトを倒す必要があり、そのためには、プレイヤオブジェクトはボス部屋Ｂに到達する必要がある。したがって、ゲームステージにおいて、ゲームをクリアできることの条件は、プレイヤオブジェクトがボス部屋Ｂに到達できることである。
【０１０２】
ゲームステージが正しく作成されているかどうかを判定する必要があるため、この実施例では、仮想の部屋に対応するパーツ２２０に、仮想の部屋に設定されている情報（以下、「設定情報」という）を紐づけしてある。設定情報は、仮想の部屋を３次元仮想空間に生成（または、描画）するための情報である。ただし、ゲームステージが正しく作成されているかどうかを判定するのに必要な情報は、設定情報に含まれる情報の一部であり、具体的には、部屋の種類、通路毎の位置（および方向）、階段の位置、宝箱の位置、鍵扉毎の位置（および方向）が該当する。ただし、部屋の種類は、スタート部屋Ｓ、ボス部屋Ｂまたは通常の部屋である。階段が仮想の部屋に配置されない場合には、階段の位置は設定情報に含まれない。宝箱が仮想の部屋に配置されない場合には、宝箱の位置は設定情報に含まれない。鍵扉が仮想の部屋に配置されない場合には、鍵扉毎の位置は設定情報に含まれない。
【０１０３】
なお、上記の各位置は、仮想の部屋における位置（すなわち、ローカルの位置）であり、３次元仮想空間にゲームステージを生成する場合には、３次元仮想空間における位置に変換される。
【０１０４】
配置領域２１０に配置された複数のパネル２１２を用いてゲームステージが正しく作成されているかどうかを判定する場合には、各パネル２１２に対応するパーツ２２０に紐づけられた設定情報が参照される。また、上述したように、配置領域２１０における２次元の距離が最短となる階段同士が連結されるため、階段を有する仮想の部屋については、パーツ２２０に対応するパネル２１２が配置領域２１０に配置されたときに、配置領域２１０における階段の位置（すなわち、２次元の位置座標）が算出され、階段同士の距離が算出される。
【０１０５】
また、図１０に示すように、配置領域２１０に配置された複数のパネル２１２には、それぞれ、配置された位置を示す情報（以下、「位置情報」という）が紐づけられている。この実施例では、配置領域２１０は、縦方向に８つの升目２１０ａが並ぶとともに、横方向に８つの升目２１０ａが並んであり、升目単位で位置情報は管理される。たとえば、配置領域２１０の左下の角の升目２１０ａが基準の升目２１０ａに設定され、この基準の升目２１０ａの位置情報は（１，１）に設定される。位置情報は、基準の升目２１０ａから、右に１升ずれると左側の要素が１加算され、上に１升ずれると右側の要素が１加算される。したがって、右上の角の升目２１０ａの位置情報は（８，８）である。また、図１０に示す例では、スタート部屋Ｓに対応するパネル２１２の位置情報は（３，２）であり、ボス部屋Ｂに対応するパネル２１２の位置情報は（３，６）である。説明は省略するが、他のパネル２１２の位置情報も同様である。
【０１０６】
（１）−（３）の前提条件を満たすかどうかを判断する場合には、パネル２１２の位置情報、パネル２１２に対応するパーツ２２０の設定情報に含まれる一部の情報を参照して、通路および階段がすべて繋がっているかどうかと、宝箱の数が鍵扉の数以上であるかどうかが判断される。
【０１０７】
また、（１）−（３）の前提条件を満たす場合には、ゲームステージをクリアできるかどうかが判定される。後述するように、クリア可能判定処理（図２４参照）が実行される。クリア可能判定処理では、作成したゲームステージにおいて、スタート部屋Ｓから経路探索処理（図２５参照）が実行され、スタート部屋Ｓから鍵扉を開けずに行ける範囲の経路を探索する。その結果として、すべての宝箱を開けてゲームステージをクリアできる（つまり、経路探索を成功した）か、または、鍵が足りなくなってゲームステージをクリアできない（つまり、経路探索を失敗した）かが調べられる。
【０１０８】
ただし、鍵が残っている場合には、１つだけ鍵扉を開けて、鍵扉を開けた先の仮想の部屋から経路探索処理が実行される。また、複数の鍵扉が有る場合には、すべての組み合わせについて経路探索処理が実行される。
【０１０９】
経路探索処理では、部屋情報収集処理（図２６および図２７参照）が実行されることにより、指定された仮想の部屋についての部屋情報が収集される。この実施例では、部屋情報は、経路探索情報の一部の情報であって、部屋の到達チェック情報および鍵扉の発見の情報である。
【０１１０】
ここで、経路探索情報とは、部屋の到達チェック情報、鍵扉の発見の情報、開閉情報、開けた宝箱の数、および持っている鍵の数である。ただし、部屋の到着チェック情報は、ゲームステージを構成する各仮想の部屋が到着チェック済みかどうかを示す情報（つまり、ＴＲＵＥ／ＦＡＬＳＥ）である。鍵扉の発見の情報は、各仮想の部屋の各方向に鍵扉が配置されているかどうかを示す情報（つまり、ＴＲＵＥ／ＦＡＬＳＥ）である。開閉情報は、鍵扉を開けたかどうかを示す情報（つまり、ＴＲＵＥ／ＦＡＬＳＥ）である。
【０１１１】
部屋情報収集処理では、スタート部屋Ｓに宝箱があれば、宝箱を開ける。この宝箱から鍵が出る条件であれば、鍵を１つ入手する。ただし、すべての宝箱を開けていたら、成功であり、それ以降の経路探索は不要であるため、クリア可能判定処理は終了する。
【０１１２】
部屋情報収集処理では、指定された仮想の部屋の上下左右のそれぞれについて部屋の繋がりを確認し、通路があれば、その先の仮想の部屋についての部屋情報収集処理がさらに実行される。
【０１１３】
ここで、図１０に示す作成画面２００の配置領域２１０に作成されたゲームステージにおける経路探索処理について簡単に説明する。図１０に示すゲームステージでは、スタート部屋Ｓから鍵扉を開けずに行ける範囲は、（２，３）、（３，３）、（３，４）および（４，３）に配置されたパネル２１２に対応する仮想の部屋である。このゲームステージにおいて経路探索が行われた結果、（２，３）および（４，３）に配置されたパネル２１２に対応する仮想の部屋のそれぞれで宝箱を開けることができる。図１０に示すゲームステージでは、宝箱は全部で２つであるため、すべての宝箱を開けることができる。すべての宝箱を開けることができることは、すべての鍵を入手できることを意味するため、このゲームステージはクリアすることができる。
【０１１４】
図１２は作成画面２００の限定しない他の例を示す。図１２において、斜線を付した升目２１０ａはパネル２１２を配置できない升目（つまり、配置範囲外の升目）２１０ａである。図１２に示す例では、配置領域２１０は、右上の４つの升目２１０ａを囲むように、Ｌ字状に配列された５つの升目２１０ａには、パネル２１２を配置することができない。つまり、パネル２１２を配置可能な升目２１０ａが制限される。
【０１１５】
このため、配置範囲外の升目２１０ａを挟んで２つの仮想の部屋を連結するためには、これらの２つの仮想の部屋には階段が配置されている必要がある。図１２に示す作成画面２００の配置領域２１０において作成されたゲームステージでは、（３，４）に配置されるパネル２１２に対応する仮想の部屋に設けられる階段と、（７，７）に配置されるパネル２１２に対応する仮想の部屋に設けられる階段が連結されているものとする。このことは、図１３および図１４も同じである。
【０１１６】
ここで、図１２に示すゲームステージにおける経路探索処理について、簡単に説明する。図１２に示すゲームステージでは、スタート部屋Ｓから鍵扉を開けずに行ける範囲は、（２，３）、（３，３）、（３，４）、（４，３）、（５，３）、（６，３）および（７，７）に配置されたパネル２１２に対応する仮想の部屋である。このゲームスステージにおいて経路探索が行われた結果、（２，３）および（４，３）に配置されたパネル２１２に対応する仮想の部屋のそれぞれで宝箱を開けることができる。図１２に示すゲームステージでは、宝箱は全部で３つであるため、この時点では、ゲームステージをクリアすることができない。
【０１１７】
ここで、鍵が残っている場合には、一つだけ鍵扉を開けて、さらに、鍵扉を開けた先の部屋から経路探索処理が実行される。この場合、鍵扉を開けた先の部屋（説明の都合上、「開始部屋」という）から経路探索処理が開始される。この経路探索処理は、開始部屋から鍵扉を開けずに行ける範囲について実行される。
【０１１８】
図１２に示す例では、上記の経路探索処理において、２つの鍵が入手されている。したがって、（３，４）に配置されたパネル２１２と（３，５）に配置されたパネル２１２の間の鍵扉を開けた場合と、（７，７）に配置されたパネル２１２と（７，８）に配置されたパネル２１２の間の鍵扉を開けた場合について、それぞれ、経路探索処理が実行される。
【０１１９】
図１２に示す例では、（３，４）に配置されたパネル２１２と（３，５）に配置されたパネル２１２の間の鍵扉を開けた場合には、（３，５）に配置されたパネル２１２に対応する仮想の部屋に行くことができるが、この仮想の部屋には宝箱が無い。
【０１２０】
一方、（７，７）に配置されたパネル２１２と（７，８）に配置されたパネル２１２の間の鍵扉を開けた場合には、（７，８）および（８，８）に配置されたパネル２１２に対応する仮想の部屋に行くことができ、（８，８）に配置されたパネル２１２に対応する仮想の部屋で宝箱を開けることができる。つまり、すべての宝箱を開けることができるため、ゲームステージをクリアすることができる。
【０１２１】
また、クリア可能判定処理が実行されると、その判定結果に基づいて、作成画面２００におけるパネル２１２の背景色が変化される。一例として、ゲームステージの作成を開始した当初では、すべてのパネル２１２の背景色は灰色である。クリア可能判定処理が実行されると、プレイヤオブジェクト３０２が到達することができる仮想の部屋に対応するパネル２１２の背景色は青色にされ、プレイヤオブジェクト３０２が到達することができない仮想の部屋に対応するパネル２１２の背景色は赤色にされる。プレイヤオブジェクト３０２が到達することができる仮想の部屋であるか到達することができない部屋であるかは、経路探索情報に含まれる部屋の到達チェック情報で知ることができる。ただし、ゲームステージをクリアすることができる場合には、部屋の到達チェック情報を参照するまでも無く、すべての仮想の部屋に到達することができる。
【０１２２】
図１０および図１２に示したゲームステージは、上述したように、クリアすることができるため、すべての部屋に到達することができる。したがって、図１０および図１２に示したゲームステージを構成するすべてのパネル２１２の背景色は青色にされる。
【０１２３】
一度クリア可能判定処理が実行された後では、パネル２１２が配置されたり、パネル２１２が取り除かれたり、パネル２１２が移動されたりした場合に、前提条件を満たすかどうかが判断され、前提条件を満たしている場合に、クリア可能判定処理が実行され、判定結果に基づいて、ゲームステージを構成する各パネル２１２の背景色が更新される。ただし、前提条件を満たしていない場合には、前回のクリア可能判定処理の判定結果と、満たしていない前提条件に基づいて、ゲームステージを構成する各パネル２１２の背景色が更新される。
【０１２４】
図１３は作成画面２００のその他の例である。図１３に示す作成画面２００は、たとえば、図１２に示す作成画面２００において、（６，３）の位置に配置されているパネル２１２を（７，３）の位置に移動した画面である。図１２に示した作成画面２００においては、ゲームステージが正確に作成されているため、ゲームステージを構成するすべてのパネル２１２の背景色は青色にされる。しかし、上述したように、パネル２１２を移動した図１３の作成画面２００では、（５，３）の位置に配置されたパネル２１２の通路と（７，３）の位置に配置されたパネル２１２の通路は繋がっていないため、それら２つのパネル２１２の背景色は赤色にされる。これは直前のクリア可能判定処理の結果と、パネル２１２の移動により、満たさなくなった前提条件に基づいて各パネル２１２の背景色が更新（または、決定）された結果である。
【０１２５】
図１３では、パネル２１２の背景色が赤色であることを横縞模様で示してある。また、横縞模様を付さないことにより、パネル２１２の背景色が青色であることを示してある。
【０１２６】
この実施例では、パネル２１２の背景色を変えるようにしたが、単なる一例であり、限定される必要はない。他の実施例では、到達可能な部屋のパネル２１２については変化させずに、到達できない部屋のパネル２１２を半透明で表示したり、到達できない部屋のパネル２１２の輝度を低下したりしてもよい。または、到達できない部屋のパネル２１２の明度を所定時間毎に変化させるようにしてもよい。ただし、到達できない部屋のパネル２１２については変化させずに、到達可能な部屋のパネル２１２の輝度を上昇させたり、到達可能な部屋のパネル２１２を所定の色（金色）の枠で囲んだりするようにしてもよい。
【０１２７】
また、この実施例では、前提条件を満たすかどうかは、所定のボタン（Ｙボタン５６）を押下することにより確認することができる。この場合、図１４に示すよう作成画面２００がディスプレイ１２に表示される。この作成画面２００では、作成中のゲームステージにおいて、通路または階段が繋がっている仮想の部屋のパネル２１２については、背景色が青色にされる。また、繋がっている階段同士は線２１４で連結される。また、この実施例では、前提条件を満たすかどうかを確認する場合には、図１４に示すように、選択領域２０４に代えて、表示領域２０６が設けれ、この表示領域２０６に、満たしていない前提条件を説明するためのメッセージがテキストで表示される。また、このとき、満たしていない前提条件に関係するパネル２１２の背景色が黄色にされる。ただし、図１４では、背景色が黄色であることを縦縞模様で示してある。図１４に示す例では、繋がっていない通路があることのメッセージが表示領域２０６に表示されるとともに、その前提条件を満たしていない仮想の部屋に対応するパネル２１２すなわち（５，３）に配置されるパネル２１２の背景色が黄色で示される。
【０１２８】
図示は省略するが、階段同士が繋がっていない場合にも、同様に、繋がっていない階段が配置される仮想の部屋に対応するパネル２１２の背景色が黄色で示される。
【０１２９】
また、鍵扉の数に比べて宝箱の数が少ない場合には、宝箱が足りていない旨のメッセージが表示される。
【０１３０】
さらに、スタート部屋Ｓまたは／およびボス部屋Ｂが配置されていない場合には、スタート部屋Ｓまたは／およびボス部屋Ｂを配置すべき旨のメッセージが表示される。
【０１３１】
ゲームステージが正しく作成されると、この作成されたゲームステージにおいてゲームをプレイすることが可能となる。たとえば、プレイヤがスタート部屋Ｓのパネル２１２を指示画像２３０で指示して、Ａボタン５３を押下すると、ゲームステージにおけるゲームのプレイを開始することが指示される。
【０１３２】
すると、複数のパネル２１２を用いて作成された２次元のゲームステージに基づいて、３次元のゲームステージが生成される。このとき、２次元のゲームステージを構成する複数のパネル２１２のそれぞれに対応するパーツ２２０の設定情報が参照される。ゲームが開始された当初では、スタート部屋Ｓについてのゲーム画面３００がディスプレイ１２に表示される。
【０１３３】
図１５はスタート部屋Ｓについてのゲーム画面３００の限定しない一例を示す。スタート部屋Ｓのスタート位置にプレイヤオブジェクト３０２が配置される。以下、ゲーム画面３００について方向を言うときは、図面において、ゲーム画面３００を正面から見た場合の上下左右を用いて説明することにする。また、この実施例では、ゲーム画面３００は、仮想の部屋を上方から俯瞰的に見た画像が表示される。さらに、この実施例では、ゲーム画面３００において、特に必要のない背景オブジェクト、敵オブジェクトおよびアイテムについては省略してある。
【０１３４】
なお、この実施例では、仮想の部屋を３次元仮想空間の上方から俯瞰的に見た場合のゲーム画面３００をディスプレイ１２に表示し、プレイヤオブジェクト３０２をゲーム画面３００に表示するようにしたが、これに限定される必要はない。一人称視点（ＦＰＳ）でプレイする場合には、プレイヤオブジェクト３０２は表示されなくてよい。かかる場合には、一人称視点に基づくゲーム画面３００がディスプレイ１２に表示される。
【０１３５】
スタート部屋Ｓは、背景オブジェクトとしての壁３０４によって仕切られており、上側の壁３０４に通路３０６が形成される。壁３０４で部屋が仕切られる点は、他の仮想の部屋についても同じである。
【０１３６】
プレイヤオブジェクト３０２は、プレイヤの操作に従って、仮想空間内を移動され、仮想空間内に存在する敵オブジェクトを攻撃し、仮想空間内に配置されるアイテムを入手（または、取得）する。図１５のスタート部屋Ｓにおいては、プレイヤの操作に従って、プレイヤオブジェクト３０２は通路３０６を通ってその上側の仮想の部屋に移動される。
【０１３７】
図１６はスタート部屋Ｓおよびボス部屋Ｂとは異なる通常の部屋についてのゲーム画面３００の限定しない一例を示す。図１６に示すゲーム画面３００では、右側の壁３０４に通路３０６が形成され、プレイヤオブジェクト３０２は他の仮想の部屋からこの通路３０６を通って図１６に示す通常の部屋に到達する。
【０１３８】
図１６に示すように、通常の部屋には、宝箱３１０が配置され、宝箱３１０の前にプレイヤオブジェクト３０２が立っている。宝箱３１０は、通常の部屋に初めから配置されていてもよいし、通常の部屋に存在するすべての敵オブジェクトを倒したことに応じて配置されてもよいし、通常の部屋で所定のアイテムを使用したことに応じて配置されてもよい。
【０１３９】
図１６に示すゲーム画面３００において、プレイヤの操作に従って、プレイヤオブジェクト３０２が宝箱３１０を開けると、この宝箱３１０から鍵３１２が出る条件であれば、図１７に示すように、宝箱３１０から鍵３１２が出現し、プレイヤオブジェクト３０２によって入手される。上述したように、開けていない宝箱３１０の数が、ゲームステージに配置された１または複数の鍵扉のうち、開錠されていない鍵扉の数よりも多い場合には、宝箱３１０から鍵３１２が出る条件ではない。
【０１４０】
図１８は他の通常の部屋についてのゲーム画面３００の限定しない一例である。図１８に示すゲーム画面３００では、上側の壁３０４と下側の壁３０４の各々に通路３０６が形成される。上側の壁３０４に設けられた通路３０６には、鍵扉３２０が配置される。一方、下側の壁３０４に設けられた通路３０６には、鍵扉３２０および鍵の付いていない扉は配置されていない。
【０１４１】
プレイヤオブジェクト３０２は、他の仮想の部屋から下側の壁に設けられた通路３０６を通って図１８に示す通常の部屋に到達する。鍵扉３２０を開くと、上側の仮想の部屋に移動することができる。鍵扉３２０を開くためには、鍵３１２で鍵扉３２０を開錠する必要がある。ただし、鍵３１２を所持していない場合には、鍵扉３２０を開錠することができないため、まだ開けていない宝箱３１０が探される。また、鍵扉３２０が設けられた通路３０６がボス部屋Ｂに通じている場合には、鍵扉３２０（ボス鍵扉）はボス鍵でのみ開錠される。上述したように、ボス鍵は、ゲームステージをクリアするのに必要な数の鍵において、最後に入手されるため、ボス鍵を所持していない場合には、まだ開けていない宝箱３１０を探す必要がある。
【０１４２】
図１８に示すゲーム画面３００において、プレイヤの操作に従って、プレイヤオブジェクト３０２が鍵扉３２０を開けると、プレイヤオブジェクト３０２が所持する鍵３１２の数が１減算される。
【０１４３】
鍵扉３２０が開けられると、図１９に示すように、プレイヤの操作に従って、プレイヤオブジェクト３０２は、鍵扉３２０が配置された通路を移動することができ、通路が繋がっている他の仮想の部屋に到達（または、移動）することができる。
【０１４４】
図示は省略するが、プレイヤの操作に従って、プレイヤオブジェクト３０２が仮想の部屋に設けられた階段を降りる（または、昇る）と、これに連結された階段を昇る（または、降りる）ことにより、他の仮想の部屋に移動することもできる。
【０１４５】
また、図示は省略するが、ボス部屋Ｂに到達すると、プレイヤの操作に従って、プレイヤオブジェクト３０２はボスの敵オブジェクトを攻撃する。また、プレイヤオブジェクト３０２は、ボスの敵オブジェクトに攻撃されたり、プレイヤの操作に従って、その攻撃を防御したりする。プレイヤオブジェクト３０２がボスの敵オブジェクトを倒すと、ゲームステージがクリアされる。また、プレイヤオブジェクト３０２がボスの敵オブジェクトに倒されると、ゲームステージのゲームについてゲームオーバーになる。
【０１４６】
図２０は図６に示したＤＲＡＭ８５のメモリマップ８５０の限定しない一例を示す図である。図２０に示すように、ＤＲＡＭ８５は、プログラム記憶領域８５２およびデータ記憶領域８５４を含む。プログラム記憶領域８５２には、情報処理プログラムの一例であるゲームアプリケーションのプログラム（つまり、ゲームプログラム）が記憶される。図２０に示すように、ゲームプログラムは、メイン処理プログラム８５２ａ、画像生成プログラム８５２ｂ、操作検出プログラム８５２ｃ、オブジェクト制御プログラム８５２ｄ、ゲームステージ作成プログラム８５２ｅ、前提条件判定プログラム８５２ｆ、クリア可能判定プログラム８５２ｇ、経路探索プログラム８５２ｈ、部屋情報収集プログラム８５２ｉおよび画像表示プログラム８５２ｊなどを含む。
【０１４７】
ただし、生成されたゲーム画像などの画像を表示する機能は本体装置２が備える機能である。したがって、画像表示プログラム８５２ｊは、ゲームプログラムに含まれない。
【０１４８】
詳細な説明は省略するが、各プログラム８５２ａ−８５２ｉは、本体装置２に電源が投入された後の適宜のタイミングで、フラッシュメモリ８４および／またはスロット２３に装着された記憶媒体からその一部または全部が読み込まれてＤＲＡＭ８５に記憶される。ただし、各プログラム８５２ａ−８５２ｉの一部または全部は、本体装置２と通信可能な他のコンピュータから取得するようにしてもよい。また、画像表示プログラム８５２ｊは、本体装置２に電源が投入された後の適宜のタイミングで、フラッシュメモリ８４から読み込まれてＤＲＡＭ８５に記憶される。
【０１４９】
メイン処理プログラム８５２ａは、この実施例の仮想のゲームの全体的なゲーム処理を実行するためのプログラムである。画像生成プログラム８５２ｂは、画像生成データ８５４ｂを用いて、ゲーム画像などの各種の画像に対応する表示画像データを生成するためのプログラムである。
【０１５０】
操作検出プログラム８５２ｃは、左コントローラ３または／および右コントローラ４からの操作データ８５４ａを取得するためのプログラムである。つまり、プレイヤの操作入力に応じた操作データ８５４ａが取得される。オブジェクト制御プログラム８５２ｄは、プレイヤの操作入力に基づいて、プレイヤオブジェクト３０２の動作を制御したり、プレイヤの操作入力に関わらず、ノンプレイヤオブジェクトの動作を制御したりするためのプログラムである。
【０１５１】
ゲームステージ作成プログラム８５２ｅは、プレイヤの操作に応じて、ゲームステージを作成するためのプログラムである。前提条件判定プログラム８５２ｆは、ゲームステージの作成において、クリア可能判定処理を実行するための前提条件を満たすかどうかを判定するためのプログラムである。クリア可能判定プログラム８５２ｇは、作成されたゲームステージであって、前提条件を満たしたゲームステージがクリア可能であるかどうかを判定するためのプログラムである。
【０１５２】
経路探索プログラム８５２ｈは、クリア可能判定処理において、スタート部屋Ｓから経路探索を行い、すべての宝箱を開けてゲームステージをクリアすることができる（つまり、経路探索に成功した）か、または、鍵が足りなくなってゲームステージをクリアすることができない（つまり、経路探索に失敗した）かを調べるためのプログラムである。部屋情報収集プログラム８５２ｉは、指定された仮想の部屋について部屋情報を取得するためのプログラムである。この実施例では、上述したように、部屋情報は、部屋の到達チェック情報および鍵扉の発見の情報である。
【０１５３】
画像表示プログラム８５２ｊは、画像生成プログラム８５２ｂに従って生成した表示画像データを表示装置に出力するためのプログラムである。したがって、表示画像データに対応する画像（つまり、作成画面２００およびゲーム画面３００など）がディスプレイ１２などの表示装置に表示される。
【０１５４】
なお、プログラム記憶領域８５２には、ＢＧＭ等の音を出力するための音出力プログラム、他の機器と通信するための通信プログラム、データをフラッシュメモリ８４などの不揮発性の記憶媒体に記憶するためのバックアッププログラムなども記憶される。
【０１５５】
また、データ記憶領域８５４には、操作データ８５４ａ、画像生成データ８５４ｂ、現在位置データ８５４ｃ、パーツデータ８５４ｄ、パネルデータ８５４ｅ、スタート部屋位置データ８５４ｆ、クリア判定データ８５４ｇ、経路探索情報データ８５４ｈおよび結果情報データ８５４ｉなどが記憶される。
【０１５６】
操作データ８５４ａは、左コントローラ３または／および右コントローラ４から受信される操作データである。この実施例においては、本体装置２が左コントローラ３および右コントローラ４の両方から操作データを受信する場合には、本体装置２は、左コントローラ３および右コントローラ４のそれぞれに分類して操作データ８５４ａを記憶する。
【０１５７】
画像生成データ８５４ｂは、ポリゴンデータおよびテクスチャデータなど、表示画像データを生成するために必要なデータである。また、テクスチャデータは、水の流れをアニメーションで表示するためのデータを含む。
【０１５８】
現在位置データ８５４ｃは、プレイヤオブジェクト３０２および敵オブジェクトなどのノンプレイヤオブジェクトのような仮想空間内において移動可能なキャラクタまたはオブジェクトについての現在フレームの位置に対応する位置座標のデータである。
【０１５９】
パーツデータ８５４ｄは、予め用意されている複数のパーツ２２０、または、プレイヤまたはプレイヤオブジェクト３０２が取得している複数のパーツ２２０についてのデータであり、パーツ２２０の画像データのみならず、対応する仮想の部屋についての設定情報のデータを含む。
【０１６０】
パネルデータ８５４ｅは、プレイヤによって作成されたまたは作成中のゲームステージを構成する１または複数のパネル２１２についてのデータであり、各パネル２１２に対応するパーツ２２０の識別情報、各パネル２１２の画像データおよび各パネル２１２の位置情報を含む。また、パネル２１２に対応する仮想の部屋に階段が配置される場合には、このパネル２１２が配置領域２１０に配置された場合の階段の位置情報（２次元の位置座標）も含まれる。
【０１６１】
スタート部屋位置データ８５４ｆは、スタート部屋Ｓの位置情報についてのデータである。クリア判定データ８５４ｇは、作成されたゲームステージがクリア可能であるかどうかを判定した判定結果についてのデータである。この実施例では、クリア不可、クリア出来ない場合あり、または、必ずクリア可能のいずれかの判定結果が示される。
【０１６２】
経路探索情報データ８５４ｈは、上述した経路探索情報に含まれる各変数についてのデータである。結果情報データ８５４ｉは、上述した結果情報に含まれる各変数についてのデータである。
【０１６３】
図示は省略するが、データ記憶領域８５４には、ゲームプログラムの実行に必要な、他のデータが記憶されたり、フラグおよびタイマ（またはカウンタ）が設けられたりする。
【０１６４】
図２１は、本体装置２のプロセッサ８１（またはコンピュータ）のゲームプログラム７処理（ゲーム全体処理）の限定しない一例を示すフロー図である。以下、図２１−図２７を用いて、ゲーム全体処理、ゲーム制御処理、クリア可能判定処理、経路探索処理および部屋情報収集処理についてそれぞれ説明するが、同じ処理を実行するステップについては、重複する説明を省略することにする。
【０１６５】
ただし、図２１−図２７に示すフロー図の各ステップの処理は、単なる一例に過ぎず、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、この実施例では、基本的には、図２１−図２７に示すフロー図の各ステップの処理をプロセッサ８１が実行するものとして説明するが、プロセッサ８１以外のプロセッサや専用回路が一部のステップを実行するようにしてもよい。
【０１６６】
本体装置２の電源が投入されると、ゲーム全体処理の実行に先だって、プロセッサ８１は、図示しないブートＲＯＭに記憶されている起動プログラムを実行し、これによってＤＲＡＭ８５等の各ユニットが初期化される。本体装置２は、ユーザによって、この実施例のゲームプログラムの実行が指示されると、ゲーム全体処理を開始する。
【０１６７】
図２１に示すように、プロセッサ８１は、ゲーム全体処理を開始すると、ステップＳ１で、初期処理を実行する。初期処理では、たとえば、プロセッサ８１は、ゲームの本編についてのゲーム画像を生成および表示するための仮想空間を構築し、この仮想空間に登場する各キャラクタないし各オブジェクトを初期位置に配置する。また、プロセッサ８１は、ゲーム制御処理（Ｓ５）に含まれるゲーム本編の処理で使用される各種パラメータの初期値を設定する。
【０１６８】
なお、詳細な説明は省略するが、ゲーム全体処理の開始に先立って、左コントローラ３および右コントローラ４が本体装置２に装着されているかどうかが判断され、左コントローラ３および右コントローラ４が本体装置２から分離されている場合には、本体装置２と、左コントローラ３および右コントローラ４との間でペアリング処理が実行される。
【０１６９】
続いて、プロセッサ８１は、ステップＳ３で、コントローラ（３，４）から送信されてくる操作データを取得し、ステップＳ５で、後述するゲーム制御処理（図２２−図２３参照）を実行する。
【０１７０】
次のステップＳ７では、プロセッサ８１は、ディスプレイ１２に表示するためのゲーム画像を生成する。簡単に説明すると、プロセッサ８１は、ステップＳ５のゲーム制御処理の結果を表すデータおよび画像生成データ８５４ｂをＤＲＡＭ８５から読み出し、ゲーム画像データを生成する。したがって、ゲームステージの作成中においては、図８−図１４に示したような作成画面２００に対応するゲーム画像データが生成され、ゲームステージのゲームのプレイ中においては、図１５−図１９に示したようなゲーム画面３００に対応するゲーム画像データが生成される。
【０１７１】
さらに、ステップＳ９では、プロセッサ８１は、スピーカ８８に出力するためのゲーム音声を生成する。簡単に説明すると、プロセッサ８１は、ステップＳ５のゲーム制御処理の結果を表すデータおよび音データをＤＲＡＭ８５から読出し、ゲーム音声データを生成する。
【０１７２】
ステップＳ１１では、ステップＳ７で生成したゲーム画像データをディスプレイ１２に出力し、ステップＳ１３では、ステップＳ９で生成したゲーム音声データを、コーデック回路８７を介してスピーカ８８に出力する。ただし、ゲーム音声データは、音声入出力端子２５に出力される場合もある。
【０１７３】
そして、ステップＳ１５では、ゲームを終了するかどうかを判断する。ステップＳ１５の判断は、たとえば、プレイヤがゲームを終了することを指示したかどうかによって行われる。ステップＳ１５で“ＮＯ”であれば、つまりゲームを終了しない場合には、ステップＳ３に戻る。一方、ステップＳ１５で“ＹＥＳ”であれば、つまりゲームを終了する場合には、ゲーム全体処理を終了する。
【０１７４】
図２２−図２３は、図２１のステップＳ５に示した本体装置２のプロセッサ８１（またはコンピュータ）のゲーム制御処理の限定しない一例を示すフロー図である。
【０１７５】
図２２に示すように、プロセッサ８１は、ゲーム制御処理を開始すると、ステップＳ２１で、ゲームステージの作成中であるかどうかを判断する。ステップＳ２１で“ＹＥＳ”であれば、つまり、ゲームステージの作成中であれば、図２３に示すステップＳ３７に進む。一方、ステップＳ２１で“ＮＯ”であれば、つまり、ゲームステージの作成中でなければ、ステップＳ２３で、ゲームステージのプレイ開始かどうかを判断する。プロセッサ８１は、ステップＳ２３で、ゲームステージのプレイ開始が指示されたかどうかを判断する。
【０１７６】
ステップＳ２３で“ＹＥＳ”であれば、つまり、ゲームステージのプレイ開始であれば、ステップＳ２５で、ゲームステージの初期処理を実行し、ゲーム制御処理を終了して、ゲーム全体処理にリターンする。ステップＳ２５では、ゲームステージについてのゲーム画像を生成および表示するための仮想空間を構築し、この仮想空間に登場する各キャラクタないし各オブジェクトを初期位置に配置する。
【０１７７】
一方、ステップＳ２３で“ＮＯ”であれば、つまり、ゲームステージのプレイ開始でなければ、ステップＳ２７で、ゲームステージのプレイ中であるかどうかを判断する。ステップＳ２７で“ＮＯ”であれば、つまり、ゲームステージのプレイ中でなければ、ステップＳ２９で、ゲームステージ以外の処理を実行して、ゲーム全体処理にリターンする。ステップＳ２９では、プレイするゲームステージが選択されたり、ゲームステージとは異なるゲームの本編のプレイに関する処理が実行されたりする。
【０１７８】
一方、ステップＳ２７で“ＹＥＳ”であれば、つまり、ゲームステージのプレイ中であれば、ステップＳ３１で、ステップＳ３で取得した操作データに応じてプレイヤオブジェクト３０２の制御を行う。つまり、プロセッサ８１は、操作データに応じた動作をプレイヤオブジェクト３０２に実行させる。したがって、プレイヤオブジェクト３０２は、ゲームステージを構成する仮想の部屋内を移動したり、宝箱３１０を開けて鍵３１２を取得したり、ボスオブジェクトを含む敵オブジェクトを攻撃したり、敵オブジェクトの攻撃を防御したりする。
【０１７９】
次のステップＳ３３では、ステップＳ３で取得した操作データに関係無く、ノンプレイヤオブジェクトの制御を行う。つまり、プロセッサ８１は、操作データに関係無く、プログラムに従ってノンプレイヤオブジェクトを動作させる。したがって、敵オブジェクトがゲームステージ内を移動したり、プレイヤオブジェクト３０２に攻撃したり、プレイヤオブジェクト３０２に攻撃されたりする。
【０１８０】
続くステップＳ３５では、その他の制御を行い、ゲーム制御処理を終了して、ゲーム全体処理にリターンする。ステップＳ３５では、プロセッサ８１は、鍵３１２を含むアイテムを配置したり（または、出現させたり）、アイテムを消滅させたり、鍵扉３２０などの扉を開いたりする。また、プレイヤオブジェクト３０２が鍵３１２を取得した場合には、プロセッサ８１は、持っている鍵３１２の数を１加算する。さらに、プレイヤオブジェクト３０２が鍵３１２を用いて鍵扉３２０を開錠した場合には、プロセッサ８１は、持っている鍵３１２の数を１減算する。
【０１８１】
上述したように、ゲームステージの作成中であれば、図２３に示すように、ステップＳ３７で、作成中のゲームステージについて前提条件を満たすかどうかの確認であるかどうかを判断する。つまり、プロセッサ８１は、ステップＳ３で検出した操作データがＹボタン５６の押下であるかどうかを判断する。
【０１８２】
ステップＳ３７で“ＹＥＳ”であれば、つまり、作成中のゲームステージについて前提条件を満たすかどうかの確認であれば、ステップＳ３９で、前提条件を満たすかどうかの確認を指示して、ゲーム制御処理を終了し、ゲーム全体処理にリターンする。ステップＳ３９では、前提条件を満たすかどうかの判定結果（つまり、前回の判定結果）が参照され、これに基づいて、図１４に示したような作成画面２００の表示が指示される。
【０１８３】
一方、ステップＳ３７で“ＮＯ”であれば、つまり、作成中のゲームステージについて前提条件を満たすかどうかの確認でなければ、ステップＳ４１で、パネル２１２の配置かどうかを判断する。ここでは、プロセッサ８１は、選択領域２０４で選択されたパーツ２２０に対応するパネル２１２を配置領域２１０に配置するかどうかを判断する。
【０１８４】
ステップＳ４１で“ＹＥＳ”であれば、つまり、パネル２１２の配置であれば、ステップＳ４３で、指定された升目２１０ａに、選択されたパーツ２２０に対応するパネル２１２を配置して、ステップＳ５５に進む。
【０１８５】
一方、ステップＳ４１で“ＮＯ”であれば、つまり、パネル２１２の配置でなければ、ステップＳ４５で、パネル２１２の移動かどうかを判断する。プロセッサ８１は、配置領域２１０に配置されているパネル２１２を指定して、別の升目２１０ａに移動することが指示されたかどうかを判断する。ステップＳ４５で“ＹＥＳ”であれば、つまり、パネル２１２の移動であれば、ステップＳ４７で、指定されたパネル２１２を、指示画像２３０で指示された升目２１０ａに移動して、ステップＳ５５に進む。このとき、指示画像２３０は、ステップＳ３で取得された操作データに従って移動される。
【０１８６】
一方、ステップＳ４５で“ＮＯ”であれば、つまり、パネル２１２の移動でなければ、ステップＳ４９で、パネル２１２を外すかどうかを判断する。プロセッサ８１は、パネル２１２が指定された状態で、Ｘボタン５５が押下されたかどうかを判断する。ステップＳ４９で“ＹＥＳ”であれば、つまり、パネル２１２を外す場合には、ステップＳ５１で、指定されたパネル２１２を外して、ステップＳ５５に進む。つまり、ステップＳ５１では、プロセッ８１は、指定されたパネル２１２を配置領域２１０から削除し、当該パネル２１２に対応するパーツ２２０を選択領域２０４で選択可能に表示する。
【０１８７】
一方、ステップＳ４９で“ＮＯ”であれば、つまり、パネル２１２を外さない場合には、ステップＳ５３で、その他の処理を実行して、ゲーム制御処理を終了し、ゲーム全体処理にリターンする。ステップＳ５３では、ステップＳ３で取得した操作データに従って指示画像２３０を移動し、選択領域２０４においてパーツ２２０を選択したり、配置領域２１０において升目２１０ａまたはパネル２１２を選択したりする。
【０１８８】
ステップＳ５５では、前提条件を満たすかどうかを判断する。ステップＳ５５で“ＮＯ”であれば、つまり、前提条件を満たさない場合には、ゲーム制御処理を終了し、ゲーム全体処理にリターンする。一方、ステップＳ５５で“ＹＥＳ”であれば、つまり、前提条件を満たす場合には、ステップＳ５７で、後述するクリア可能判定処理（図２４参照）を開始して、ゲーム制御処理を終了し、ゲーム全体処理にリターンする。
【０１８９】
図２４はクリア可能判定処理の限定しない一例を示すフロー図である。図２４に示すように、プロセッサ８１は、クリア可能判定処理を開始すると、ステップＳ８１で、経路探索情報および結果情報についての変数をＤＲＡＭ８５に記憶する。
【０１９０】
経路探索情報は、上述したように、部屋の到達チェック情報、鍵扉の発見の情報、開閉情報、開けた宝箱の数、および持っている鍵の数である。また、結果情報は、作成したゲームステージを経路探索した結果の情報であり、経路探索に成功した回数（すなわち、成功回数）および経路探索に失敗した回数（すなわち、失敗回数）である。ゲームステージ内のすべての宝箱３１０を開けることができた場合に、経路探索に成功し、ゲームステージ内のすべての宝箱３１０を開ける前に、鍵３１２が無くなった場合（すなわち、鍵３１２が足りない場合）に、経路探索に失敗する。
【０１９１】
次のステップＳ８３では、後述する経路探索処理（図２５参照）をスタート部屋Ｓから開始し、ステップＳ８５で、成功回数が１以上であるかどうかを判断する。ステップＳ８５で“ＮＯ”であれば、つまり、成功回数が０であれば、ステップＳ８７で、クリア不可能と判定して、クリア可能判定処理を終了する。
【０１９２】
一方、ステップＳ８５で“ＹＥＳ”であれば、つまり、成功回数が１以上であれば、ステップＳ８９で、失敗回数が０であるかどうかを判断する。ステップＳ８９で“ＮＯ”であれば、つまり、失敗回数が１以上であれば、ステップＳ９１で、クリアできない場合があると判定して、クリア可能判定処理を終了する。
【０１９３】
一方、ステップＳ８９で“ＹＥＳ”であれば、つまり、失敗回数が０であれば、ステップＳ９３で、クリア可能と判定して、クリア可能判定処理を終了する。
【０１９４】
ステップＳ８７、Ｓ９１またはＳ９３の判定結果が、クリア判定データ８５４ｇとしてＤＲＡＭ８５のデータ記憶領域８５４に記憶される。
【０１９５】
図２５は図２４のステップＳ８３に示した経路探索処理の限定しない一例のフロー図である。図２５に示すように、ステップＳ１１１では、後述する部屋情報収集処理（図２６および図２７参照）を引数で指定された仮想の部屋から開始する。最初に部屋情報収集処理が実行される場合に引数で指定されるのは、スタート部屋Ｓである。後述するように、鍵扉３２０を開けた場合には、ステップＳ１１１では、鍵扉３２０の先の仮想の部屋が指定される。ただし、経路探索処理においては、引数は、経路探索情報、結果情報およびスタート部屋Ｓの位置である。また、指定された仮想の部屋は、配置領域２１０において指定されたパネル２１２に対応する仮想の部屋を意味する。パネル２１２は、位置情報を用いて指定される。
【０１９６】
続くステップＳ１１３では、ゲームステージに配置されたすべての宝箱３１０を開けたかどうかを判断する。ステップＳ１１３で“ＹＥＳ”であれば、つまり、ゲームステージに配置されたすべての宝箱３１０を開けた場合には、ステップＳ１１５で、成功回数を１加算して、経路探索処理を終了する。一方、ステップＳ１１３で“ＮＯ”であれば、つまり、ゲームステージに配置されたすべての宝箱３１０のうち、開けていない宝箱３１０が有る場合には、ステップＳ１１７で、鍵３１２を持っているかどうかを判断する。
【０１９７】
ステップＳ１１７で“ＮＯ”であれば、つまり、鍵３１２を持っていない場合には、鍵３１２が足りないと判断し、ステップＳ１１９で、失敗回数を１加算し、経路探索処理を終了して、クリア可能判定処理にリターンする。一方、ステップＳ１１７で“ＹＥＳ”であれば、つまり、鍵３１２を持っている場合には、ステップＳ１２１で、鍵３１２の数を１減算し、ステップＳ１２３で、すべての鍵扉３２０を試したかどうかを判断する。
【０１９８】
ステップＳ１２３で“ＹＥＳ”であれば、つまり、すべての鍵扉３２０を試していれば、経路探索処理を終了して、クリア可能判定処理にリターンする。一方、ステップＳ１２３で“ＮＯ”であれば、つまり、まだ試していない鍵扉３２０があれば、ステップＳ１２５で、まだ試していない鍵扉３２０を１つ開けたことにする。
【０１９９】
続くステップＳ１２７では、経路探索処理を、鍵扉３２０を開けた先の部屋を指定して開始する。このとき、プロセッサ８１は、現在実行中の経路探索処理を一時停止する。ステップＳ１２７における経路探索処理を終了すると、ステップＳ１２９で、開けたことにした鍵扉３２０を開けていない状態に戻して、ステップＳ１２３に戻る。つまり、ステップＳ１２７の経路探索処理を終了し、ステップＳ１２９の処理を実行することにより、一時停止した経路探索処理が継続（または、再開）される。
【０２００】
図２６および図２７は、図２５のステップＳ１１１に示した部屋情報収集処理の限定しない一例のフロー図である。図２６に示すように、プロセッサ８１は、部屋情報収集処理を開始すると、ステップＳ１５１で、指定された部屋が配置範囲の範囲外であるかどうかを判断する。ここでは、指定された升目２１０ａがパネル２１２を配置できない升目２１０ａであるかどうかを判断する。
【０２０１】
ステップＳ１５１で“ＹＥＳ”であれば、つまり、指定された部屋が配置範囲の範囲外であれば、部屋情報収集処理を終了し、図２５に示した経路探索処理にリターンする。一方、ステップＳ１５１で“ＮＯ”であれば、つまり、指定された部屋が配置範囲の範囲内であれば、ステップＳ１５３で、指定された部屋がすでにチェック済みであるかどうかを判断する。ここでは、プロセッサ８１は、部屋の到達チェック情報を参照して、指定された部屋が既に到達チェック済みになっているかどうかを判断する。
【０２０２】
ステップＳ１５３で“ＹＥＳ”であれば、つまり、指定され部屋が既にチェック済みであれば、部屋情報収集処理を終了し、経路探索処理にリターンする。一方、ステップＳ１５３で“ＮＯ”であれば、つまり、指定された部屋がチェック済みでなければ、ステップＳ１５５で、指定された部屋をチェック済みにして、ステップＳ１５７で、指定された部屋に宝箱３１０があるかどうかを判断する。ステップＳ１５５では、プロセッサ８１は、経路探索情報に含まれる部屋の到達チェック情報において、指定された部屋を到達チェック済み（ＴＲＵＥ）にする。
【０２０３】
ステップＳ１５７で“ＮＯ”であれば、つまり、指定された部屋に宝箱３１０が無ければ、図２７に示すステップＳ１６５に進む。一方、ステップＳ１５７で“ＹＥＳ”であれば、つまり、指定された部屋に宝箱３１０が有れば、ステップＳ１５９で、開けた宝箱３１０の数が鍵扉３２０の数未満であるかどうかを判断する。
【０２０４】
ステップＳ１５９で“ＮＯ”であれば、つまり、開けた宝箱３１０の数が鍵扉３２０の数未満でなければ、ステップＳ１６３に進む。一方、ステップＳ１５９で“ＹＥＳ”であれば、開けた宝箱３１０の数が鍵扉３２０の数未満であれば、ステップＳ１６１で、鍵３１２を１つ入手して、ステップＳ１６３に進む。
【０２０５】
ステップＳ１６３では、すべての宝箱３１０を開けたかどうかを判断する。ステップＳ１６３で“ＹＥＳ”であれば、つまり、すべての宝箱３１０を開ければ、部屋情報収集処理を終了し、経路探索処理にリターンする。一方、ステップＳ１６３で“ＮＯ”であれば、つまり、開けていない宝箱３１０が有れば、ステップＳ１６５に進む。
【０２０６】
図２７に示すように、ステップＳ１６５では、指定した部屋の上下左右の通路３０６をすべて確認したかどうかを判断する。ステップＳ１６５で“ＮＯ”であれば、つまり、指定した部屋で確認していない通路３０６が有れば、ステップＳ１６７で、指定した方向に通路３０６があるかどうかを判断する。詳細な説明は省略するが、基準の方向（たとえば、上方向）から時計周り（または、反時計周り）の順に、方向は指定される。このステップＳ１６７では、指定した方向に鍵扉３２０が有る場合には、通路３０６が無いと判断される。
【０２０７】
ステップＳ１６７で“ＹＥＳ”であれば、つまり、指定した方向に通路３０６が有れば、ステップＳ１６９で、部屋情報収集処理を通路３０６の先の部屋で実行して、ステップＳ１６５に戻る。ステップＳ１６９の処理が実行されるときに、現在実行中の部屋情報収集処理が一時停止される。このことは、後述するステップＳ１７９の処理が実行される場合にも同様である。
【０２０８】
一方、ステップＳ１６７で“ＮＯ”であれば、つまり、指定した方向に通路３０６が無ければ、ステップＳ１７１で、指定した方向に鍵扉３２０が有るかどうかを判断する。ステップＳ１７１で“ＮＯ”であれば、つまり、指定した方向に鍵扉３２０が有れば、ステップＳ１６５に戻る。一方、ステップＳ１７１で“ＹＥＳ”であれば、つまり、指定した方向に鍵扉３２０が有れば、ステップＳ１７３で、経路探索情報にこの鍵扉３２０の情報が有るかどうかを判断する。
【０２０９】
ステップＳ１７３で“ＹＥＳ”であれば、つまり、経路探索情報にこの鍵扉３２０の情報が有れば、ステップＳ１６５に戻る。一方、ステップＳ１７３で“ＮＯ”であれば、つまり、経路探索情報にこの鍵扉３２０の情報が無ければ、ステップＳ１７５で、経路探索情報の鍵扉の発見の情報に、この鍵扉３２０の情報を追加して、ステップＳ１６５に戻る。
【０２１０】
また、ステップＳ１６５で“ＹＥＳ”であれば、つまり、指定した部屋の上下左右の通路３０６をすべて確認すれば、ステップＳ１７７で、指定された部屋に階段が有るかどうかを判断する。ステップＳ１７７で“ＮＯ”であれば、つまり、指定された部屋に階段が無ければ、部屋情報収集処理を終了し、経路探索処理にリターンする。一方、ステップＳ１７７で“ＹＥＳ”であれば、つまり、指定された部屋に階段が有れば、ステップＳ１７９で、部屋情報収集処理を、階段の先の部屋で実行して、部屋情報収集処理を終了し、経路探索処理にリターンする。
【０２１１】
この実施例によれば、単にスタートからゴールまでを繋いでゲームステージを作成するのではなく、通路および階段の連結、宝箱の有無、鍵扉の有無を考慮して、ゲームステージを作成するので、複雑なゲームステージを作成することができる。また、ゲームステージを作成する楽しさを提供することができる。
【０２１２】
なお、この実施例では、宝箱を開けると鍵を入手できるようにしたが、これに限定される必要はない。鍵は宝箱以外の入れ物に入っていてもよいし、鍵そのものが仮想の部屋に配置されていてもよい。また、仮想の部屋に存在する敵オブジェクトを倒すなどの所定の条件を満たしたことにより、鍵を出現させるようにしてもよい。
【０２１３】
また、この実施例では、接続された他の仮想の部屋に繋がる通路の通行を禁止する禁止要素として鍵扉を通路に配置するようにしたが、禁止要素はこれに限定される必要はい。鍵扉に代えて、岩石オブジェクト、石像オブジェクトまたは敵オブジェクトを配置するようにしてもよい。かかる場合には、禁止要素を解除するための解除要素は、たとえば、岩石オブジェクトまたは石像オブジェクトを壊す爆弾オブジェクトであり、敵オブジェクトを倒す武器のようなアイテムオブジェクトである。また、鍵扉は、解除要素である鍵に代えて、鍵扉が配置された仮想の部屋に設けられたボタンを押下することにより、開錠されてもよい。かかる場合には、所定のアイテムオブジェクトを取得することにより、または、所定の敵オブジェクトを倒すことにより、ボタンが押下可能な状態に変化される。
【０２１４】
さらに、この実施例では、配置領域において、パネルを配置できない升目を一部に設けるようにして、パネルの配置に制限を加えるようにしたが、他の制限を加えるようにしてもよい。他の例では、配置領域の一部の升目において、配置されるパネルの種類が制限される。具体的には、スタート部屋に対応するパネル、ボス部屋に対応するパネル、宝箱が配置された仮想の部屋に対応するパネルまたは鍵扉が配置された仮想の部屋に対応するパネルを配置することが、一部の升目に予め指定されるようにしてもよい。この場合には、前提条件として、予め指定された種類のパネルが配置されているかどうかも判断される。
【０２１５】
さらにまた、この実施例では、２次元のパーツに対応する２次元のパネルを用いてゲームステージを作成し、３次元のゲームステージを生成してゲームをプレイするようにしたが、３次元のパーツを用いてゲームステージを作成するようにしてもよい。
【０２１６】
また、この実施例では、情報処理システムの一例としてゲームシステム１を示したが、その構成は限定される必要は無く、他の構成を採用することが可能である。たとえば、上記「コンピュータ」は、上述の実施例においては、１つのコンピュータ（具体的には、プロセッサ８１）であるが、他の実施例においては、複数のコンピュータであってもよい。上記「コンピュータ」は、例えば、複数の装置に設けられる（複数の）コンピュータであってもよく、より具体的には、上記「コンピュータ」は、本体装置２のプロセッサ８１と、コントローラが備える通信制御部（マイクロプロセッサ）１０１、１１１とによって構成されてもよい。
【０２１７】
さらに、他の実施例では、インターネットのようなネットワーク上のサーバで、図２１−図２７に示したゲーム制御処理、ゲーム画像の生成処理、ゲーム音声の生成処理、クリア可能判定処理、経路探索処理および部屋情報収集処理を実行するようにしてもよい。かかる場合には、本体装置２のプロセッサ８１は、左コントローラ３および右コントローラ４から受信した操作データを、ネットワーク通信部８２およびネットワークを介して上記のサーバに送信し、サーバでゲーム制御処理、ゲーム画像の生成処理、ゲーム音声の生成処理、クリア可能判定処理、経路探索処理および部屋情報収集処理を実行された結果（つまり、ゲーム画像のデータおよびゲーム音声のデータ）を受信して、ゲーム画像をディスプレイ１２に表示するとともに、ゲーム音声をスピーカ８８から出力する。つまり、上記の実施例で示したゲームシステム１とネットワーク上のサーバを含む情報処理システムを構成することもできる。
【０２１８】
さらにまた、上述の実施例では、ディスプレイ１２にゲーム画像を表示する場合について説明したが、これに限定される必要はない。本体装置２を、クレードルを介して据置型モニタ（たとえば、テレビモニタ）に接続することにより、ゲーム画像を据置型モニタに表示することもできる。かかる場合には、ゲームシステム１と据置型モニタを含む情報処理システムを構成することもできる。
【０２１９】
また、上述の実施例では、本体装置２に左コントローラ３および右コントローラ４を着脱可能な構成のゲームシステム１を用いた場合について説明したが、これに限定される必要はない。たとえば、左コントローラ３および右コントローラ４と同様の操作ボタンおよびアナログスティックを有する操作部を本体装置２に一体的に設けたゲーム装置またはゲームプログラムを実行可能な他の電子機器のような情報処理装置を用いることもできる。他の電子機器としては、スマートフォンまたはタブレットＰＣなどが該当する。かかる場合には、操作部はソフトウェアキーで構成することもできる。
【０２２０】
さらに、その他の実施例では、連結部材を用いて、左コントローラ３および右コントローラ４を一体的に構成して１つのコントローラとして使用するようにしてもよい。
【０２２１】
さらにまた、上述の実施例で示した具体的な数値および画像は一例であり、実際の製品に応じて適宜変更可能である。
【符号の説明】
【０２２２】
１  …ゲームシステム
２  …本体装置
３  …左コントローラ
４  …右コントローラ
３２、５２  …アナログスティック
３９  …ＺＬボタン
６０  …Ｒボタン
６１  …ＺＲボタン
８１  …プロセッサ
【図１】
2020199048.tif 000003
【図２】
2020199048.tif 000004
【図３】
2020199048.tif 000005
【図４】
2020199048.tif 000006
【図５】
2020199048.tif 000007
【図６】
2020199048.tif 000008
【図７】
2020199048.tif 000009
【図８】
2020199048.tif 000010
【図９】
2020199048.tif 000011
【図１０】
2020199048.tif 000012
【図１１】
2020199048.tif 000013
【図１２】
2020199048.tif 000014
【図１３】
2020199048.tif 000015
【図１４】
2020199048.tif 000016
【図１５】
2020199048.tif 000017
【図１６】
2020199048.tif 000018
【図１７】
2020199048.tif 000019
【図１８】
2020199048.tif 000020
【図１９】
2020199048.tif 000021
【図２０】
2020199048.tif 000022
【図２１】
2020199048.tif 000023
【図２２】
2020199048.tif 000024
【図２３】
2020199048.tif 000025
【図２４】
2020199048.tif 000026
【図２５】
2020199048.tif 000027
【図２６】
2020199048.tif 000028
【図２７】
2020199048.tif 000029