(57)【要約】    【構成】  ゲーム装置１０はＬＣＤ１４を含み、このＬＣＤ１４上にタッチパネル２４が設けられる。ＬＣＤ１４には、トランプゲームのゲーム画面（１００，２００）が表示される。プレイヤがゲーム画面（１００，２００）に表示されたカードオブジェクト（ＯＢＪ）をタッチオンすると、タッチオンされたカードオブジェクト（ＯＢＪ）上に他のカードオブジェクト（ＯＢＪ）が重なっており、その重なり具合が大きい場合には、当該他のカードオブジェクト（ＯＢＪ）が移動される。したがって、プレイヤがタッチオンしたカードオブジェクト（ＯＢＪ）のマークおよび文字（数字または英字）が視認可能に表示される。    【効果】  表示画面の大きさに制約があっても、所望のオブジェクトの内容を容易に知ることができる。【選択図】  図１
2010170290.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置のコンピュータによって実行される情報処理プログラムであって、
ポインティングデバイスからの信号に基づいて座標データを検出する入力検出ステップ、
前記入力検出ステップによって検出された座標データに基づいて、表示装置の表示領域に対して第１操作が行われたかどうかを判断する第１操作判定ステップ、および
前記第１操作判定ステップによって第１操作が行われたことが判定されたとき、前記表示領域において重なった状態で配置された複数のオブジェクトのうちの少なくとも１つのオブジェクトを移動させて、下層のオブジェクトの露出量を増加させるオブジェクト移動制御ステップを実行させる、情報処理プログラム。
【請求項２】
前記オブジェクト移動制御ステップは、前記座標データが示す位置に対応するオブジェクト以外のオブジェクトを移動させる、請求項１記載の情報処理プログラム。
【請求項３】
前記オブジェクト移動制御ステップは、前記少なくとも１つのオブジェクトを前記座標データが示す位置から離れる方向に移動させる、請求項１記載の情報処理プログラム。
【請求項４】
前記複数のオブジェクトの重なり具合を算出する重なり算出ステップをさらに実行させ、
前記オブジェクト移動制御ステップは、前記重なり算出ステップで算出された前記複数のオブジェクトの重なり具合に応じて、前記複数のオブジェクトの少なくとも１つを移動させる、請求項１記載の情報処理プログラム。
【請求項５】
前記重なり算出ステップは、前記複数のオブジェクトの重なり具合を示す値を算出し、
前記オブジェクト移動制御ステップは、前記第１操作判定ステップによって第１操作が行われたと判定され、かつ、重なり算出ステップによって算出された重なり具合を示す値が所定値以上であるときに、前記複数のオブジェクトのうちの少なくとも１つのオブジェクトを移動させる、請求項４記載の情報処理プログラム。
【請求項６】
前記入力検出ステップによって検出された座標データに基づいて前記第１操作とは異なる第２操作が行われたか否かを判定する第２操作判定ステップ、および
前記第２操作判定ステップによって第２操作が行われたことが判定されたときに、前記入力検出ステップによって検出された座標データと前記重なった状態の複数のオブジェクトとに基づいて、選択可能なオブジェクトのうち、少なくとも１つのオブジェクトを自動的に選択するオブジェクト選択ステップをさらに実行させる、請求項１ないし５のいずれかに記載の情報処理プログラム。
【請求項７】
前記複数のオブジェクトから選択可能なオブジェクトを決定する選択可能オブジェクト決定ステップをさらに実行させ、
前記オブジェクト選択ステップは、前記第２操作判定ステップによって第２操作が行われたことが判定されたときに、前記選択可能オブジェクト決定ステップによって決定された選択可能なオブジェクトのうち、少なくとも１つのオブジェクトを自動的に選択する、請求項６記載の情報処理プログラム。
【請求項８】
前記オブジェクト選択ステップは、前記選択可能なオブジェクトのうち、前記入力検出ステップによって検出された座標データが示す位置に最も近い位置に配置されているオブジェクトを選択する、請求項６または７記載の情報処理プログラム。
【請求項９】
前記オブジェクト選択ステップは、前記第２操作判定ステップによって第２操作が行われたことが判定され、かつ、前記座標データが示す位置に対応するオブジェクトが選択可能でないときに、選択可能なオブジェクトのうち、少なくとも１つのオブジェクトを自動的に選択する、請求項６または７記載の情報処理プログラム。
【請求項１０】
前記オブジェクト選択ステップは、前記入力検出ステップによって検出された座標データが示す位置に最も近い位置に配置されているオブジェクトに関連するオブジェクトをさらに選択する、請求項６ないし９のいずれかに記載の情報処理プログラム。
【請求項１１】
前記オブジェクト選択ステップによって選択された少なくとも１つのオブジェクトを前記表示装置に表示させる表示ステップをさらに実行させる、請求項６ないし１０のいずれかに記載の情報処理プログラム。
【請求項１２】
前記表示ステップは、前記オブジェクト選択ステップによって選択された前記少なくとも１つのオブジェクトを、前記入力検出ステップによって検出された座標データ示す位置に応じた前記表示領域の位置に表示させる、請求項１１記載の情報処理プログラム。
【請求項１３】
前記移動制御ステップは、前記重なった状態の複数のオブジェクトの露出量が一定量になるように、当該複数のオブジェクトのうちの少なくとも１つを移動させる、請求項１ないし１２のいずれかに記載の情報処理プログラム。
【請求項１４】
前記ポインティングデバイスは、タッチパネルを含み、
前記入力検出ステップは、前記タッチパネルへのタッチオンの位置に対する前記表示領域の座標に対応する座標データを検出する、請求項１ないし１３のいずれかに記載の情報処理プログラム。
【請求項１５】
前記第１操作判定手段は、前記入力検出ステップによって検出された座標データに基づいて、前記タッチパネルへのタッチオン操作を検出したとき、前記第１操作が有ることを判定する、請求項１４記載の情報処理プログラム。
【請求項１６】
前記第２操作判定手段は、前記入力検出ステップによって検出された座標データに基づいて、前記タッチパネルへのドラッグ操作を検出したとき、前記第２操作が有ることを判定する、請求項１４または１５記載の情報処理プログラム。
【請求項１７】
前記移動制御ステップによって前記少なくとも１つのオブジェクトを移動して前記第１操作判定ステップで第１操作が行われなくなったと判定されたときに、当該少なくとも１つのオブジェクトを移動前の位置に戻す復元ステップをさらに実行させる、請求項１ないし１６のいずれかに記載の情報処理プログラム。
【請求項１８】
前記復元ステップは、前記移動制御ステップによって前記少なくとも１つのオブジェクトを移動して前記第１操作判定ステップで第１操作が行われなくなったと判定されたときから一定時間が経過したとき、当該少なくとも１つのオブジェクトを移動前の位置に戻す、請求項１７記載の情報処理プログラム。
【請求項１９】
前記オブジェクト選択ステップによって選択された前記少なくとも１つのオブジェクトを、前記入力検出ステップによって検出された座標データが示す位置に追従するように移動させる選択オブジェクト移動制御ステップをさらに実行させる、請求項６ないし請求項１８のいずれかに記載の情報処理プログラム。
【請求項２０】
内容を視認可能なオブジェクトと内容を視認不能なオブジェクトとが存在し、
前記オブジェクト選択ステップは、前記内容を視認可能なオブジェクトから、前記少なくとも１つのオブジェクトを選択する、請求項６ないし１９のいずれかに記載の情報処理プログラム。
【請求項２１】
内容を視認可能なオブジェクトと内容を視認不能なオブジェクトとが存在し、
前記オブジェクト移動制御ステップは、前記内容を視認可能なオブジェクトから、前記少なくとも１つのオブジェクトを移動させる、請求項１ないし１９のいずれかに記載の情報処理プログラム。
【請求項２２】
前記オブジェクトは、内容を視認可能な状態と内容を視認不能な状態とを有する、請求項２０または２１記載の情報処理プログラム。
【請求項２３】
１または複数のオブジェクトによって構成される複数のグループが存在し、
前記重なり判断ステップは、前記入力検出ステップによって検出された座標データが示す位置によって指示された１つのグループ内において、重なった状態で複数のオブジェクトが配置されているかどうかを判断し、
前記移動制御オブジェクトは、前記重なり判断ステップによって、重なった状態で複数のオブジェクトが配置されていると判断されたとき、当該複数のオブジェクトのうちの少なくとも１つを移動させて、下層のオブジェクトの露出量を増加させる、請求項１記載の情報処理プログラム。
【請求項２４】
前記グループに含まれるオブジェクトの数に応じて、前記複数のグループの各々におけるオブジェクトの重なり具合が異なる、請求項２３記載の情報処理プログラム。
【請求項２５】
１の前記グループに含まれるオブジェクトは他の前記グループに移動可能である、請求項２３または２４記載の情報処理プログラム。
【請求項２６】
ポインティングデバイスからの信号に基づいて座標データを検出する入力検出手段、
前記入力検出手段によって検出された座標データに基づいて、表示装置の表示領域に対して所定の操作が行われたかどうかを判断する操作判定手段、および
前記操作判定手段によって所定の操作が行われたことが判定されたとき、前記表示領域において重なった状態で配置された複数のオブジェクトのうちの少なくとも１つのオブジェクトを移動させて、下層のオブジェクトの露出量を増加させるオブジェクト移動制御手段を備える、情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は情報処理プログラムおよび情報処理装置に関し、特にたとえば、タッチパネルのようなポインティングデバイスを用いた、情報処理プログラムおよび情報処理装置に関する。
【背景技術】
【０００２】
背景技術の一例が非特許文献１に開示されている。この非特許文献１には、クロンダイクやスパイダーなどのトランプゲームを、ＰＣのディスプレイにウインドウを開いてプレイすることが記載されている。たとえば、クロンダイクやスパイダーでは、トランプのカードを所定のルールに従って場に積み重ねるため、カードの列が長くなった場合には、プレイヤないしユーザは、ウインドウを大きくして、カードの種類が見えるようにするのが一般的である。ただし、カードの種類とは、マーク（スペード、ダイヤ、クローバー、ハートなど）と、数字（２−１０）または英字（Ａ，Ｊ，Ｑ，Ｋ）とを意味する。また、英字Ａ，Ｊ，Ｑ，Ｋは、それぞれ、数字の１，１１，１２，１３に相当する。
【０００３】
また、背景技術の他の例が非特許文献２ないし４に開示されている。非特許文献２−４は、いずれも、携帯電話機のようなゲーム機能を備えた携帯端末を用いて、クロンダイクやスパイダーなどのトランプゲームをプレイすることが記載されている。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】http://jp.realarcade.com/kabegami/games/compulsive solitaire/index.html
【非特許文献２】http://www.kemco.jp/applipage/04_game/soli.html
【非特許文献３】http://www.g-mode.jp/appli/tenshisolitaire/
【非特許文献４】http://www.g-mode.jp/appli/tenshisolitaire/dx/
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述したように、非特許文献１に開示されているように、ＰＣでトランプゲームをプレイする場合には、場に配置されたカードの列が長くなっても、ウインドウを大きくすることにより、カードを表示する領域が大きくされるため、カードの種類が見えなくなることはない。つまり、プレイに支障はない。しかし、携帯電話機のような携帯端末では、ＬＣＤのような表示器の表示画面は小さく、しかも固定されているため、ＰＣでトランプゲームをプレイする場合のように、ウインドウを大きくすることができない。このため、カードの種類が見えないことが起こり得る。そのため、非特許文献２−４では、カードの数や種類を制限して、表示されるカードの種類を視認可能にしてある。また、非特許文献３および４では、内容を見なくてもその種類が分かるカードについては、重なり合うカード同士を詰めて表示することにより、ゲームに使用されるカードの数を比較的多くするようにしてあるが、この場合であっても、表示画面（ウインドウ）を拡大することはできないため、ＰＣで遊ぶ場合に比べて、使用するカードの数や種類は制限されてしまう。このため、携帯端末を用いる場合には、ゲームが簡単になってしまい、面白味に欠けるという問題がある。
【０００６】
それゆえに、この発明の主たる目的は、新規な、情報処理プログラムおよび情報処理装置を提供することである。
【０００７】
また、この発明の他の目的は、表示画面の大きさに制約がある場合であっても、重なり合った複数のオブジェクトの内容を容易に把握することができる、情報処理プログラムおよび情報処理装置を提供することである。
【課題を解決するための手段】
【０００８】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【０００９】
第１の発明は、情報処理装置のコンピュータによって実行される情報処理プログラムであって、ポインティングデバイスからの信号に基づいて座標データを検出する入力検出ステップ、入力検出ステップによって検出された座標データに基づいて、表示装置の表示領域に対して第１操作が行われたかどうかを判断する第１操作判定ステップ、および第１操作判定ステップによって第１操作が行われたことが判定されたとき、表示領域において重なった状態で配置された複数のオブジェクトのうちの少なくとも１つのオブジェクトを移動させて、下層のオブジェクトの露出量を増加させるオブジェクト移動制御ステップを実行させる、情報処理プログラムである。
【００１０】
第１の発明では、情報処理プログラムは、情報処理装置（１０）のコンピュータによって実行される。入力検出ステップ（３４）は、ポインティングデバイス（２４）からの信号に基づいて座標データを検出する。第１操作判定ステップ（３４，Ｓ１９）は、入力検出ステップによって検出された座標データに基づいて、表示装置（１４）の表示領域に対して第１操作が行われたかどうかを判断する。オブジェクト移動制御ステップ（３４，Ｓ１１）は、第１操作判定ステップによって第１操作が行われたことが判定されたとき（Ｓ１９で“ＹＥＳ”）、表示領域において重なった状態で配置された複数のオブジェクトのうちの少なくとも１つを移動させて、下層のオブジェクトの露出量を増加させる。以下、単に「オブジェクト」と言う場合には、単数または複数のオブジェクトを意味する。
【００１１】
第１の発明によれば、表示領域に対する第１操作が有ると、重なった状態の複数のオブジェクトのうちの少なくとも１つのオブジェクトを移動させることにより、下層に在るオブジェクトの露出量を増加させるので、その表示内容を視認可能にすることができる。つまり、表示画面の大きさに制約がある場合であっても、重なり合った複数のオブジェクトの内容を容易に把握することができる。
【００１２】
第２の発明は、第１の発明に従属し、オブジェクト移動制御ステップは、座標データが示す位置に対応するオブジェクト以外のオブジェクトを移動させる。
【００１３】
第２の発明では、オブジェクト移動制御ステップは、座標データが示す位置に対応するオブジェクト以外のオブジェクトを移動させる。つまり、ポインティングデバイスによって指示されたオブジェクト以外のオブジェクトが移動される。
【００１４】
第２の発明によれば、ポインティングデバイスによって指示されたオブジェクト以外のオブジェクトが移動されるので、指示されたオブジェクトはそのままであり、当該指示されたオブジェクトを見易くすることができる。
【００１５】
第３の発明は、第１の発明に従属し、オブジェクト移動制御ステップは、少なくとも１つのオブジェクトを座標データが示す位置から離れる方向に移動させる。
【００１６】
第３の発明では、オブジェクト移動制御ステップは、少なくとも１つのオブジェクトを座標データが示す位置から離れる方向に移動させる。したがって、たとえば、ポインティングデバイスによって指示されたオブジェクト以外のオブジェクトが、当該指示されたオブジェクトから離れるように、移動される。
【００１７】
第３の発明によれば、指示された位置から離れるようにオブジェクトを移動させるので、指示されたオブジェクトを見易くすることができる。
【００１８】
第４の発明は第１の発明に従属し、複数のオブジェクトの重なり具合を算出する重なり算出ステップをさらに実行させ、オブジェクト移動制御ステップは、重なり算出ステップで算出された複数のオブジェクトの重なり具合に応じて、複数のオブジェクトの少なくとも１つを移動させる。
【００１９】
第４の発明では、重なり算出ステップ（３４，Ｓ１６３）は、複数のオブジェクトの重なり具合を算出する。オブジェクト移動制御ステップは、算出された重なり具合に応じて、複数のオブジェクトの少なくとも１つを移動させる。
【００２０】
第４の発明によれば、重なり具合に応じてオブジェクトを移動させるので、オブジェクトの移動制御を適切に行うことができる。
【００２１】
第５の発明は第４の発明に従属し、重なり算出ステップは、複数のオブジェクトの重なり具合を示す値を算出し、オブジェクト移動制御ステップは、第１操作判定ステップによって第１操作が行われたと判定され、かつ、重なり算出ステップによって算出された重なり具合を示す値が所定値以上であるときに、複数のオブジェクトのうちの少なくとも１つのオブジェクトを移動させる。
【００２２】
第５の発明では、重なり算出ステップは、複数のオブジェクトの重なり具合を示す値（実施例では、Ｙ座標間隔）を算出する。ただし、Ｙ座標間隔が小さければ、重なり具合は大きく、Ｙ座標間隔が大きければ、重なり具合は小さい。オブジェクト移動制御ステップは、第１操作判定ステップによって第１操作が行われたと判定され、かつ、重なり算出ステップによって算出された重なり具合を示す値が所定値以上であるときに（Ｓ１６５で“ＮＯ”）、複数のオブジェクトのうちの少なくとも１つのオブジェクトを移動させる。
【００２３】
第５の発明によれば、重なり具合を示す値が所定値以上である場合に、オブジェクトを移動させるので、たとえば所定値をオブジェクトの内容を見ることができる値に設定しておけば、オブジェクトの内容が見えない場合にのみ、オブジェクトを移動させるようにすることができる。
【００２４】
第６の発明は第１ないし第５の発明に従属し、入力検出ステップによって検出された座標データに基づいて第１操作とは異なる第２操作が行われたか否かを判定する第２操作判定ステップ、および第２操作判定ステップによって第２操作が行われたことが判定されたときに、入力検出ステップによって検出された座標データと重なった状態の複数のオブジェクトとに基づいて、選択可能なオブジェクトのうち、少なくとも１つのオブジェクトを自動的に選択するオブジェクト選択ステップをさらに実行させる。
【００２５】
第６の発明では、第２操作判定ステップ（３４，Ｓ１１３）は、入力検出ステップによって検出された座標データに基づいて第１操作とは異なる第２操作が行われたか否かを判定する。オブジェクト選択ステップ（３４，Ｓ１１７，Ｓ１１９，Ｓ１２１，Ｓ１２３，Ｓ１２５）は、入力検出ステップによって検出された座標データと重なった状態の複数のオブジェクトとに基づいて、選択可能なオブジェクトのうち、少なくとも１つのオブジェクトを自動的に選択するオブジェクト選択ステップをさらに実行させる。
【００２６】
第６の発明によれば、第２操作があったときに、選択可能なオブジェクトの中から、少なくとも１つのオブジェクトを選択するので、たとえば、第１操作によってオブジェクトの内容を知り、その後の第２操作によって所望のオブジェクトを選択することができる。さらに、選択可能なオブジェクトの中から、少なくとも１つのオブジェクトを自動的に選択するので、操作性を向上させることができる。
【００２７】
第７の発明は第６の発明に従属し、複数のオブジェクトから選択可能なオブジェクトを決定する選択可能オブジェクト決定ステップをさらに実行させ、オブジェクト選択ステップは、第２操作判定ステップによって第２操作が行われたことが判定されたときに、選択可能オブジェクト決定ステップによって決定された選択可能なオブジェクトのうち、少なくとも１つのオブジェクトを自動的に選択する。
【００２８】
第７の発明では、選択可能オブジェクト決定ステップ（３２，Ｓ１１９）は、複数のオブジェクトから選択可能なオブジェクトを決定する。実施例では、トランプゲームのルールの従って選択可能なオブジェクトが決定される。オブジェクト選択ステップは、第２操作が行われたと判定されたときに、決定された選択可能なオブジェクトのうち、少なくとも１つのオブジェクトを自動的に選択する。
【００２９】
第７の発明によれば、たとえば所定のルールに従って決定された選択可能なオブジェクトの中から、所望のオブジェクトを選択することができる。
【００３０】
第８の発明は、第６または第７の発明に従属し、オブジェクト選択ステップは、選択可能なオブジェクトのうち、入力検出ステップによって検出された座標データが示す位置に最も近い位置に配置されているオブジェクトを選択する。
【００３１】
第８の発明では、オブジェクト選択ステップは、選択可能なオブジェクトのうち、検出された座標データが示す位置に最も近い位置に配置されているオブジェクトを選択する。
【００３２】
第８の発明によれば、検出された座標に最も近い位置に配置されているオブジェクトを選択するので、直接的にオブジェクトを指示しなくても、所望のオブジェクトを選択することができる。
【００３３】
第９の発明は、第６または第７の発明のいずれかに従属し、オブジェクト選択ステップは、第２操作判定ステップによって第２操作が行われたことが判定され、かつ、座標データが示す位置に対応するオブジェクトが選択可能でないときに、選択可能なオブジェクトのうち、少なくとも１つのオブジェクトを自動的に選択する。
【００３４】
第９の発明では、オブジェクト選択ステップは、第２操作が行われたことが判定され、かつ座標データ示す位置に対応する位置にオブジェクトが選択可能でないときに、選択可能なオブジェクトのうち、少なくとも１つのオブジェクトを自動的に選択する。つまり、ポインティングデバイスによって指示したオブジェクトが選択可能でない場合には、選択可能なオブジェクトからオブジェクトが選択される。
【００３５】
第９の発明によれば、直接オブジェクトを指示しなくても、所望のオブジェクトを選択することができる。
【００３６】
第１０の発明は、第６ないし第９の発明のいずれかに従属し、オブジェクト選択ステップは、入力検出ステップによって検出された座標データが示す位置に最も近い位置に配置されているオブジェクトに関連するオブジェクトをさらに選択する。
【００３７】
第１０の発明では、オブジェクト選択ステップは、検出された座標データが示す位置に最も近い位置に配置されているオブジェクトに関連するオブジェクトをさらに選択する。
【００３８】
第１０の発明によれば、所望のオブジェクトのみならず、それに関連するオブジェクトを第２操作によって選択することができる。
【００３９】
第１１の発明は第６ないし第１１の発明のいずれかに従属し、オブジェクト選択ステップによって選択された少なくとも１つのオブジェクトを表示装置に表示させる表示ステップをさらに実行させる。
【００４０】
第１１の発明では、表示ステップ（３４，Ｓ５３，Ｓ５５，Ｓ５７，Ｓ５９，Ｓ６１，Ｓ１２９）は、オブジェクト選択ステップによって選択された少なくとも１つのオブジェクトを表示装置に表示させる。
【００４１】
第１１の発明によれば、選択されたオブジェクトを表示装置に表示するので、たとえば表示装置に表示されていないオブジェクトを選択した場合であっても、選択後に表示させることにより、選択したオブジェクトをユーザに把握させることができる。
【００４２】
第１２の発明は第１１の発明に従属し、表示ステップは、オブジェクト選択ステップによって選択された少なくとも１つのオブジェクトを、入力検出ステップによって検出された座標データ示す位置に応じた表示領域の位置に表示させる。
【００４３】
第１２の発明では、表示ステップは、選択されたオブジェクトを検出された座標データが示す位置に応じた表示領域の位置に表示させる。たとえば、指示された表示領域の位置（座標）に選択されたオブジェクトが表示される。
【００４４】
第１２の発明によれば、検出された座標に対応してオブジェクトを表示するので、たとえば座標に追従するように選択されたオブジェクトを表示することができる。
【００４５】
第１３の発明は第１ないし第１２の発明に従属し、移動制御ステップは、重なった状態の複数のオブジェクトの露出量が一定量になるように、当該複数のオブジェクトのうちの少なくとも１つを移動させる。
【００４６】
第１３の発明では、移動制御ステップは、重なった状態の複数のオブジェクトの露出量が一定量になるように、当該複数のオブジェクトのうちの少なくとも１つを移動させる。たとえば、重なった状態のオブジェクトが２つであれば、一方のオブジェクトをいずれかの方向に移動させたり、両方のオブジェクトを互いに逆向きに移動させたりする。
【００４７】
第１３の発明によれば、重なった状態の複数のオブジェクトの露出量が一定量になるようにオブジェクトを移動させるので、一定量をオブジェクトの内容が見える値に設定しておけば、適切にオブジェクトを移動させることができる。
【００４８】
第１４の発明は第１ないし第１３の発明のいずれかに従属し、ポインティングデバイスは、タッチパネルを含み、入力検出ステップは、タッチパネルへのタッチオンの位置に対する表示領域の座標に対応する座標データを検出する。
【００４９】
第１４の発明では、ポインティングデバイスは、タッチパネルを含む。入力検出ステップは、タッチオンの位置に対する表示領域の座標に対応する座標データを検出する。
【００５０】
第１４の発明によれば、タッチパネルへのタッチオンの位置に対する表示領域の座標を検出するので、直感的に入力操作を行うことができる。
【００５１】
第１５の発明は第１４の発明に従属し、第１操作判定手段は、入力検出ステップによって検出された座標データに基づいて、タッチパネルへのタッチオン操作を検出したとき、第１操作が有ることを判定する。
【００５２】
第１５の発明では、第１操作判定手段は、検出された座標データに基づいて、タッチパネルへのタッチオン操作を検出したとき、第１操作が有ることを判定する。たとえば、座標データが入力されていない状態から座標データが入力された状態になったときに、タッチオン操作が検出され、これによって第１操作があることが判定される。
【００５３】
第１５の発明によれば、タッチオン操作を検出するだけなので、第１操作を簡単に判定することができる。
【００５４】
第１６の発明は第１４または第１５の発明に従属し、第２操作判定手段は、入力検出ステップによって検出された座標データに基づいて、タッチパネルへのドラッグ操作を検出したとき、第２操作が有ることを判定する。
【００５５】
第１６の発明では、第２操作判定手段は、検出された座標データに基づいて、タッチパネルへのドラッグ操作を検出したとき、第２操作が有ることを判定する。たとえば、座標データが入力されている状態が継続的に検出され、時間的に連続する座標データが示す２つの座標の差分が所定値以上である場合に、ドラッグ操作が検出され、これによって第２操作があることが判定される。
【００５６】
第１６の発明によれば、ドラッグ操作を検出するだけなので、第２操作を簡単に判定することができる。
【００５７】
第１７の発明は第１ないし第１６の発明に従属し、移動制御ステップによって少なくとも１つのオブジェクトを移動して第１操作判定ステップで第１操作が行われなくなったと判定されたときに、当該少なくとも１つのオブジェクトを移動前の位置に戻す復元ステップをさらに実行させる。
【００５８】
第１７の発明では、復元ステップ（３４，Ｓ１４５，Ｓ１４７，Ｓ１４９，Ｓ１５１，Ｓ１６３，Ｓ１６５，Ｓ１６９，Ｓ１７３，Ｓ１７７）は、移動制御ステップによって少なくとも１つのオブジェクトを移動して第１操作判定ステップで第１操作が行われなくなったと判定されたときに、当該少なくとも１つのオブジェクトを移動前の位置に戻す。
【００５９】
第１７の発明によれば、第１操作が行われなくなったときに、第１操作に応じて移動させたオブジェクトを元の位置に戻すので、第１操作前のオブジェクトの配置位置を崩さずに、所望のオブジェクトの内容を見ることができる。
【００６０】
第１８の発明は第１７の発明に従属し、復元ステップは、移動制御ステップによって少なくとも１つのオブジェクトを移動して第１操作判定ステップで第１操作が行われなくなったと判定されたときから一定時間が経過したとき、当該少なくとも１つのオブジェクトを移動前の位置に戻す。
【００６１】
第１８の発明では、復元ステップは、移動制御ステップによって少なくとも１つのオブジェクトを移動して第１操作が行われなくなったと判定されたときから一定時間が経過したとき、当該少なくとも１つのオブジェクトを移動前の位置に戻す。
【００６２】
第１８の発明によれば、第１操作が行われなくなってから一定時間が経過したときに、第１操作に応じて移動させたオブジェクトを元の位置に戻すので、第１操作前のオブジェクトの配置位置を崩さず、所望のオブジェクトの内容を確実に見ることができる。
【００６３】
第１９の発明は、第６ないし第１８の発明のいずれかに従属し、オブジェクト選択ステップによって選択された少なくとも１つのオブジェクトを、入力検出ステップによって検出された座標データが示す位置に追従するように移動させる選択オブジェクト移動制御ステップをさらに実行させる。
【００６４】
第１９の発明では、選択オブジェクト移動ステップ（３４，Ｓ５３，Ｓ５５，Ｓ５７，Ｓ５９，Ｓ６１）は、オブジェクト選択ステップによって選択された少なくとも１つのオブジェクトを、検出された座標データが示す位置に追従するように移動させる。
【００６５】
第１９の発明によれば、選択されたオブジェクトが検出された座標に追従するように移動されるので、直感的な操作によってオブジェクトを移動させることができる。
【００６６】
第２０の発明は第６ないし第１９の発明のいずれかに従属し、内容を視認可能なオブジェクトと内容を視認不能なオブジェクトとが存在し、オブジェクト選択ステップは、内容を視認可能なオブジェクトから、少なくとも１つのオブジェクトを選択する。
【００６７】
第２０の発明では、内容を視認可能なオブジェクト（実施例では、表向きのＯＢＪ）と内容を視認不能なオブジェクト（実施例では、裏向きのＯＢＪ）が存在する。オブジェクト選択ステップは、内容を視認可能なオブジェクトから、オブジェクトを選択する。つまり、選択可能なオブジェクトは、内容が視認可能なオブジェクトである。
【００６８】
第２０の発明によれば、内容を視認可能なオブジェクトが重なっている場合に、第１操作によって移動させてその内容を確認し、所望のオブジェクトを選択することができる。
【００６９】
第２１の発明は、第１ないし第１９の発明のいずれかに従属し、内容を視認可能なオブジェクトと内容を視認不能なオブジェクトとが存在し、オブジェクト移動制御ステップは、内容を視認可能なオブジェクトから、少なくとも１つのオブジェクトを移動させる。
【００７０】
第２１の発明では、内容を視認可能なオブジェクト（実施例では、表向きのＯＢＪ）と内容を視認不能なオブジェクト（実施例では、裏向きのＯＢＪ）が存在する。オブジェクト移動制御ステップは、内容を視認可能なオブジェクトから、少なくとも１つのオブジェクトを移動させる。つまり、内容が視認可能なオブジェクトのみが移動される。
【００７１】
第２１の発明によれば、内容が視認可能なオブジェクトのみが移動されるので、視認不能なオブジェクトを移動させることがなく、画面を見易く表示することができる。
【００７２】
第２２の発明の発明は第２０または第２１の発明に従属し、オブジェクトは、内容を視認可能な状態と内容を視認不能な状態とを有する。
【００７３】
第２２の発明では、単一のオブジェクトが、内容を視認可能な状態と内容を視認不能な状態とを有する。たとえば、オブジェクトを表向きおよび裏向きに表示可能にしておけば、表にのみ内容を記載したり、裏にのみ内容を記載したりして、上記のような両方の状態を有するオブジェクトが生成される。
【００７４】
第２２の発明によれば、内容を視認可能な状態と内容を視認不能な状態とを単一のオブジェクトが有するので、その状態も変化させながら、オブジェクトの内容を見たり、所望のオブジェクトを選択したりすることができる。
【００７５】
第２３の発明は第１の発明に従属し、１または複数のオブジェクトによって構成される複数のグループが存在し、重なり判断ステップは、入力検出ステップによって検出された座標データが示す位置によって指示された１つのグループ内において、重なった状態で複数のオブジェクトが配置されているかどうかを判断し、移動制御オブジェクトは、重なり判断ステップによって、重なった状態で複数のオブジェクトが配置されていると判断されたとき、当該複数のオブジェクトのうちの少なくとも１つを移動させて、下層のオブジェクトの露出量を増加させる。
【００７６】
第２３の発明では、１または複数のオブジェクトによって構成される複数のグループ（実施例では、場札の列）が存在する。したがって、重なり判断ステップは、検出された座標データが示す位置によって指示された１つのグループ内において、重なった状態で複数のオブジェクトが配置されているかどうかを判断し、移動制御オブジェクトは、重なった状態で複数のオブジェクトが配置されていると判断されたとき、当該複数のオブジェクトのうちの少なくとも１つを移動させて、下層のオブジェクトの露出量を増加させる。
【００７７】
第２３の発明においても、第１の発明と同様に表示画面の大きさに制約がある場合であっても、重なり合った複数のオブジェクトの内容を容易に把握することができる。
【００７８】
第２４の発明は第２３の発明に従属し、グループに含まれるオブジェクトの数に応じて、複数のグループの各々におけるオブジェクトの重なり具合が異なる。
【００７９】
第２４の発明では、グループに含まれるオブジェクトの数に応じて、複数のグループの各々におけるオブジェクトの重なり具合が異なる。たとえば、各グループでオブジェクトを配置する範囲（領域の大きさ）が同じであれば、オブジェクトの数が増えるに従ってオブジェクト同士の重なる度合いが大きくなる。
【００８０】
第２４の発明によれば、グループ内のオブジェクトの数に応じてオブジェクト同士の重なり具合が異なるため、第１操作に応じて、グループ毎に適切にオブジェクトを移動させることができる。
【００８１】
第２５の発明は第２３または第２４の発明に従属し、１のグループに含まれるオブジェクトは他のグループに移動可能である。
【００８２】
第２５の発明では、オブジェクトはグループ間で移動可能である。
【００８３】
第２５の発明によれば、所望のオブジェクトをグループ間で自由に移動させて、グループ内のオブジェクトの重なり具合を調整し、第１操作によって、所望のオブジェクトの内容を見ることができる。
【００８４】
第２６の発明は、ポインティングデバイスからの信号に基づいて座標データを検出する入力検出手段、入力検出手段によって検出された座標データに基づいて、表示装置の表示領域に対して所定の操作が行われたかどうかを判断する操作判定手段、および操作判定手段によって所定の操作が行われたことが判定されたとき、表示領域において重なった状態で配置された複数のオブジェクトのうちの少なくとも１つを移動させて、下層のオブジェクトの露出量を増加させるオブジェクト移動制御手段を備える、情報処理装置である。
【００８５】
第２６の発明においても、第１の発明と同様に、表示画面の大きさに制約がある場合であっても、重なり合った複数のオブジェクトの内容を容易に把握することができる。
【発明の効果】
【００８６】
この発明によれば、表示領域に対する第１操作が有ると、重なった状態の複数のオブジェクトのうちの少なくとも１つを移動させることにより、下層に在るオブジェクトの露出量を増加させるので、その表示内容を視認可能にすることができる。つまり、表示画面の大きさに制約がある場合であっても、重なり合った複数のオブジェクトの内容を容易に把握することができる。
【００８７】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【００８８】
【図１】図１はこの発明のゲーム装置の一実施例を示す図解図である。
【図２】図２は図１に示すゲーム装置の電気的な構成を示すブロック図である。
【図３】図３は図１に示すゲーム装置のＬＣＤに表示される仮想ゲームのゲーム画面の例を示す図解図である。
【図４】図４は図１に示すゲーム装置のＬＣＤの表示領域およびゲームフィールドを示す図解図である。
【図５】図５は図１に示すゲーム装置のＬＣＤの場札の表示領域にカードオブジェクトが表示される場合の表示方法を説明するための図解図である。
【図６】図６は図１に示すゲーム装置のＬＣＤに表示される仮想ゲームのゲーム画面の他の例を示す図解図である。
【図７】図７はタッチオンされた場札のカードオブジェクトおよびその上層のすべてのカードオブジェクトの表示制御を説明するための図解図である。
【図８】図８は図１のゲーム装置のＬＣＤに表示される他の仮想ゲームのゲーム画面の例を示す図解図である。
【図９】図９は図１に示すゲーム装置のＬＣＤの表示領域を示す図解図である。
【図１０】図１０は図１に示すゲーム装置のＬＣＤに表示される他の仮想ゲームのゲーム画面の第２の例を示す図解図である。
【図１１】図１１は図１に示すゲーム装置のＬＣＤに表示される他の仮想ゲームのゲーム画面の第３の例を示す図解図である。
【図１２】図１２は図１に示すゲーム装置のＬＣＤに表示される他の仮想ゲームのゲーム画面の第４の例を示す図解図である。
【図１３】図１３は図１に示すゲーム装置のＬＣＤに表示される他の仮想ゲームのゲーム画面の第５の例を示す図解図である。
【図１４】図１４はこの実施例の仮想ゲームにおいて、カードオブジェクトをタッチオンおよびドラッグした場合のカードオブジェクトの移動制御の例を説明するための図解図である。
【図１５】図１５はこの実施例の仮想ゲームにおけるカードオブジェクトの原点とタッチ座標との距離を説明するための図解図である。
【図１６】図１６は図２に示すＲＡＭ４２のメモリマップを示す図解図である。
【図１７】図１７は図１６に示すデータ記憶領域の詳細な内容を示す図解図である。
【図１８】図１８は図２に示すＣＰＵコアのメイン処理の一部を示すフロー図である。
【図１９】図１９は図２に示すＣＰＵコアのメイン処理の他の一部を示すフロー図である。
【図２０】図２０は図２に示すＣＰＵコアの手札更新処理を示すフロー図である。
【図２１】図２１は図２に示すＣＰＵコアのリリース処理を示すフロー図である。
【図２２】図２２は図２に示すＣＰＵコアのタッチオン操作処理を示すフロー図である。
【図２３】図２３は図２に示すＣＰＵコアのカード取得処理を示すフロー図である。
【図２４】図２４は図２に示すＣＰＵコアの場札更新処理の一部を示すフロー図である。
【図２５】図２５は図２に示すＣＰＵコアの場札更新処理の他の一部であって、図２４に後続するフロー図である。
【図２６】図２６は図２に示すＣＰＵコアの場札更新処理のその他の一部であって、図２５に後続するフロー図である。
【発明を実施するための形態】
【００８９】
図１を参照して、この発明の実施例であるゲーム装置１０は、第１の液晶表示器（ＬＣＤ）１２および第２のＬＣＤ１４を含む。ＬＣＤ１２およびＬＣＤ１４は、所定の配置位置となるようにハウジング1６に収納される。この実施例では、ハウジング１６は、上側ハウジング１６ａと下側ハウジング１６ｂとによって構成され、ＬＣＤ１２は上側ハウジング１６ａに収納され、ＬＣＤ１４は下側ハウジング１６ｂに収納される。したがって、ＬＣＤ１２とＬＣＤ１４とは縦（上下）に並ぶように近接して配置される。
【００９０】
なお、この実施例では、表示器としてＬＣＤを用いるようにしてあるが、ＬＣＤに代えて、ＥＬ(Electronic Luminescence)ディスプレイやプラズマディスプレイを用いるようにしてもよい。
【００９１】
図１からも分かるように、上側ハウジング１６ａは、ＬＣＤ１２の平面形状よりも少し大きな平面形状を有し、一方主面からＬＣＤ１２の表示面を露出するように開口部が形成される。一方、下側ハウジング１６ｂは、その平面形状が上側ハウジング１６ａと略同じであり、その略中央部にＬＣＤ１４の表示面を露出するように開口部が形成される。下側ハウジング１６ｂの右側面には電源スイッチ１８が設けられる。
【００９２】
また、上側ハウジング１６ａには、ＬＣＤ１２を挟んで左右に、スピーカ３６ａおよび３６ｂ（図２）のための音抜き孔２０ａおよび２０ｂが形成される。そして、下側ハウジング１６ｂには、マイク（図示せず）のためのマイク孔２０ｃが形成されるとともに、操作スイッチ２２（２２ａ，２２ｂ，２２ｃ，２２ｄ，２２ｅ，２２ｆ，２２ｇ，２２Ｌおよび２２Ｒ）が設けられる。
【００９３】
また、上側ハウジング１６ａと下側ハウジング１６ｂとは、上側ハウジング１６ａの下辺（下端）と下側ハウジング１６ｂの上辺（上端）の一部とが回動可能に連結されている。したがって、たとえば、ゲームをプレイしない場合には、ＬＣＤ１２の表示面とＬＣＤ１４の表示面とが対面するように、上側ハウジング１６ａを回動させて折りたたんでおけば、ＬＣＤ１２の表示面およびＬＣＤ１４の表示面に傷がつくなどの破損を防止することができる。ただし、上側ハウジング１６ａと下側ハウジング１６ｂとは、回動可能に連結せずに、それらを一体的（固定的）に設けたハウジング１６を形成するようにしてもよい。
【００９４】
操作スイッチ２２は、方向指示スイッチ（十字スイッチ）２２ａ，スタートスイッチ２２ｂ、セレクトスイッチ２２ｃ、動作スイッチ（Ａボタン）２２ｄ、動作スイッチ（Ｂボタン）２２ｅ、動作スイッチ（Ｘボタン）２２ｆ、動作スイッチ（Ｙボタン）２２ｇ、動作スイッチ（Ｌボタン）２２Ｌおよび動作スイッチ（Ｒボタン）２２Ｒを含む。スイッチ２２ａは、下側ハウジング１６ｂの一方主面であり、ＬＣＤ１４の左側に配置される。その他のスイッチ２２ｂ−２２ｇは、下側ハウジング１６ｂの一方主面であり、ＬＣＤ１４の右側に配置される。さらに、スイッチ２２Ｌおよびスイッチ２２Ｒは、それぞれ、上側ハウジング１６ａとの連結部を挟む下側ハウジング１６ｂの上側面の左右角部に配置される。
【００９５】
方向指示スイッチ２２ａは、ディジタルジョイスティックとして機能し、４つの押圧部の１つを操作することによって、ユーザないしプレイヤによって操作可能なプレイヤキャラクタ(またはプレイヤオブジェクト)の移動方向を指示したり、カーソルの移動方向を指示したりする等に用いられる。また、各押圧部には、特定の役割を割り当てることができ、４つの押圧部の１つを操作することによって、割り当てられた役割を指示（指定）することができる。
【００９６】
スタートスイッチ２２ｂは、プッシュボタンで構成され、ゲームを開始（再開）したり、一時停止(Pause)したりする等に用いられる。また、セレクトスイッチ２２ｃは、プッシュボタンで構成され、ゲームモードの選択等に用いられる。
【００９７】
動作スイッチ２２ｄすなわちＡボタンは、プッシュボタンで構成され、方向指示以外の動作、すなわち、プレイヤキャラクタに打つ（パンチ）、投げる、つかむ（取得）、乗る、ジャンプするなどの任意のアクションをさせることができる。たとえば、アクションゲームにおいては、ジャンプ、パンチ、武器を動かす等を指示することができる。また、ロールプレイングゲーム(ＲＰＧ)やシミュレーションＲＰＧにおいては、アイテムの取得、武器やコマンドの選択および決定等を指示することができる。動作スイッチ２２ｅすなわちＢボタンは、プッシュボタンで構成され、セレクトスイッチ２２ｃで選択したゲームモードの変更やＡボタン２２ｄで決定したアクションの取り消し等のために用いられる。
【００９８】
動作スイッチ２２ｆすなわちＸボタン、および動作スイッチ２２ｇすなわちＹボタンは、プッシュボタンで構成され、Ａボタン２２ｄとＢボタン２２ｅだけでは、ゲーム進行ができないときに、補助的な操作に用いられる。ただし、Ｘボタン２２ｆおよびＹボタン２２ｇは、Ａボタン２２ｄおよびＢボタン２２ｅと同様の操作に用いることも可能である。もちろん、ゲームプレイにおいてＸボタン２２ｆとＹボタン２２ｇとを必ずしも使用しなくてよい。
【００９９】
動作スイッチ２２Ｌ（左押しボタン）および動作スイッチ２２Ｒ（右押しボタン）は、プッシュボタンで構成され、左押しボタン（Ｌボタン）２２Ｌおよび右押しボタン（Ｒボタン）２２Ｒは、Ａボタン２２ｄおよびＢボタン２２ｅと同様の操作に用いることができ、また、Ａボタン２２ｄおよびＢボタン２２ｅの補助的な操作に用いることができる。さらに、Ｌボタン２２ＬおよびＲボタン２２Ｒは、方向スイッチ２２ａ、Ａボタン２２ｄ，Ｂボタン２２ｅ，Ｘボタン２２ｆ，Ｙボタン２２ｇに割り当てられた役割を、他の役割に変更することができる。
【０１００】
また、ＬＣＤ１４の上面には、タッチパネル２４が装着される。タッチパネル２４としては、たとえば、抵抗膜方式、光学式(赤外線方式)および静電容量結合式のいずれかの種類のものを用いることができる。また、タッチパネル２４は、その上面をスティック２６ないしはペン（スタイラスペン）或いは指（以下、これらを「スティック２６等」という場合がある。）で、押圧したり、撫でたり、触れたりすることにより操作（タッチオン操作）すると、スティック２６等の操作位置の座標を検出して、検出した座標（検出座標）に対応する座標データを出力する。
【０１０１】
なお、この実施例では、ＬＣＤ１４（ＬＣＤ１２も同じ、または略同じ）の表示面の解像度は２５６ｄｏｔ×１９２ｄｏｔであり、タッチパネル２４の検出精度も表示画面に対応して２５６ｄｏｔ×１９２ｄｏｔとしてあるが、タッチパネル２４の検出精度は表示画面の解像度よりも低くてもよく、高くてもよい。
【０１０２】
ＬＣＤ１２およびＬＣＤ１４には異なるゲーム画面が表示されてもよい。たとえば、レースゲームでは一方のＬＣＤに運転席からの視点による画面を表示し、他方のＬＣＤにレース（コース）全体の画面を表示することができる。また、ＲＰＧでは、一方のＬＣＤにマップやプレイヤキャラクタ等のキャラクタを表示し、他方のＬＣＤにプレイヤキャラクタが所有するアイテムを表示することができる。さらに、一方のＬＣＤ（この実施例では、ＬＣＤ１４）にゲームの操作画面（ゲーム画面）を表示し、他方のＬＣＤ（この実施例では、ＬＣＤ１２）に当該ゲームに関する情報（得点やレベルなど）を含む他のゲーム画面を表示することができる。さらには、２つのＬＣＤ１２およびＬＣＤ１４を合わせて１つの画面として用いることにより、プレイヤキャラクタが倒さなければならない巨大な怪物（敵キャラクタ）を表示することもできる。
【０１０３】
したがって、プレイヤはスティック２６等でタッチパネル２４を操作することにより、ＬＣＤ１４の画面に表示されるプレイヤキャラクタ、敵キャラクタ、アイテムキャラクタ、操作オブジェクトなどの画像を指示（操作）したり、コマンドを選択（入力）したりすることができる。また、３次元ゲーム空間に設けられる仮想カメラ（視点）の方向（視線の向き）を変化させたり、ゲーム画面（マップ）のスクロール(徐々に移動表示)方向を指示したりすることもできる。
【０１０４】
なお、ゲームの種類によっては、タッチパネル２４を用いることにより、その他の入力指示も可能である。たとえば、座標入力指示を入力したり、ＬＣＤ１４において文字，数字，記号等を手書き入力したりすることができる。
【０１０５】
このように、ゲーム装置１０は、２画面分の表示部となるＬＣＤ１２およびＬＣＤ１４を有し、いずれか一方（この実施例では、ＬＣＤ１４）の上面にタッチパネル２４が設けられるので、２画面（１２，１４）と２系統の操作部（２２，２４）とを有する構成になっている。
【０１０６】
また、この実施例では、スティック２６は、たとえば下側ハウジング１６ｂに設けられる収納部（図示せず）に収納することができ、必要に応じて取り出される。ただし、スティック２６を設けない場合には、その収納部も設ける必要はない。
【０１０７】
さらに、ゲーム装置１０はメモリカード（またはカートリッジ）２８を含み、このメモリカード２８は着脱自在であり、下側ハウジング１６ｂの裏面ないしは下端（底面）に設けられる挿入部３０（図１では点線で示す）に挿入される。図１では省略するが、挿入部３０の奥部には、メモリカード２８の挿入方向先端部に設けられるコネクタ（図示せず）と接合するためのコネクタ３２（図２参照）が設けられており、したがって、メモリカード２８が挿入部３０に挿入されると、コネクタ同士が接合され、ゲーム装置１０のＣＰＵコア３４（図２参照）がメモリカード２８にアクセス可能となる。
【０１０８】
なお、図１では表現できないが、上側ハウジング１６ａの音抜き孔２０ａおよび２０ｂと対応する位置であり、この上側ハウジング１６ａの内部にはスピーカ３６ａおよび３６ｂ（図２参照）が設けられる。
【０１０９】
また、図１では省略するが、たとえば、下側ハウジング１６ｂの裏面側には、電池収容ボックスが設けられ、また、下側ハウジング１６ｂの底面側には、音量スイッチ、外部拡張コネクタおよびイヤフォンジャックなどが設けられる。
【０１１０】
図２はゲーム装置１０の電気的な構成を示すブロック図である。図２を参照して、ゲーム装置１０は電子回路基板３８を含み、この電子回路基板３８には上述のＣＰＵコア３４等の回路コンポーネントが実装される。ＣＰＵコア３４は、バス４０を介して前述のコネクタ３２に接続されるとともに、ＲＡＭ４２、第１のグラフィック処理ユニット（ＧＰＵ）４４、第２のＧＰＵ４６、入出カインターフエース回路（以下、「Ｉ／Ｆ回路」という。）４８およびＬＣＤコントローラ５０が接続される。
【０１１１】
コネクタ３２には、上述したように、メモリカード２８が着脱自在に接続される。メモリカード２８は、ＲＯＭ２８ａおよびＲＡＭ２８ｂを含み、図示は省略するが、ＲＯＭ２８ａおよびＲＡＭ２８ｂは、互いにバスで接続され、さらに、コネクタ３２と接合されるコネクタ（図示せず）に接続される。したがって、上述したように、ＣＰＵコア３４は、ＲＯＭ２８ａおよびＲＡＭ２８ｂにアクセスすることができるのである。
【０１１２】
ＲＯＭ２８ａは、ゲーム装置１０で実行すべきゲームのためのゲームプログラム、画像データ（文字やオブジェクトの画像、背景画像、アイテム画像、アイコン（ボタン）画像、メッセージ画像など）およびゲームに必要な音（音楽）のデータ（音データ）等を予め記憶する。ＲＡＭ（バックアップＲＡＭ）２８ｂは、そのゲームの途中データやゲームの結果データなどを記憶（セーブ）する。
【０１１３】
ＲＡＭ４２は、バッファメモリないしはワーキングメモリとして使用される。つまり、ＣＰＵコア３４は、メモリカード２８のＲＯＭ２８ａに記憶されたゲームプログラム、画像データおよび音データ等をＲＡＭ４２にロードし、ロードしたゲームプログラムを実行する。また、ＣＰＵコア３４は、ゲームの進行に応じて一時的に発生するデータ（ゲームデータやフラグデータ）をＲＡＭ４２に記憶しつつゲーム処理を実行する。
【０１１４】
なお、ゲームプログラム、画像データおよび音データ等は、ＲＯＭ２８ａから一度に全部、または部分的かつ順次的に読み出され、ＲＡＭ４２に記憶（ロード）される。
【０１１５】
ＧＰＵ４４およびＧＰＵ４６は、それぞれ、描画手段の一部を形成し、たとえばシングルチップＡＳＩＣで構成され、ＣＰＵコア３４からのグラフィックスコマンド（作画命令）を受け、そのグラフィックスコマンドに従って画像データを生成する。ただし、ＣＰＵコア３４は、グラフィックスコマンドに加えて、画像データの生成に必要な画像生成プログラム（ゲームプログラムに含まれる。）をＧＰＵ４４およびＧＰＵ４６のそれぞれに与える。
【０１１６】
また、ＧＰＵ４４には、第１のビデオＲＡＭ（以下、「ＶＲＡＭ」という。）５２が接続され、ＧＰＵ４６には、第２のＶＲＡＭ５４が接続される。ＧＰＵ４４およびＧＰＵ４６が作画コマンドを実行するにあたって必要なデータ（画像データ：ポリゴンやテクスチャ等のデータ）は、ＧＰＵ４４およびＧＰＵ４６が、それぞれ、第１のＶＲＡＭ５２および第２のＶＲＡＭ５４にアクセスして取得する。
【０１１７】
なお、ＣＰＵコア３４は、描画に必要な画像データをＧＰＵ４４およびＧＰＵ４６を介して第１のＶＲＡＭ５２および第２のＶＲＡＭ５４に書き込む。ＧＰＵ４４はＶＲＡＭ５２にアクセスして描画のための画像データを作成し、ＧＰＵ４６はＶＲＡＭ５４にアクセスして描画のための画像データを作成する。
【０１１８】
ＶＲＡＭ５２およびＶＲＡＭ５４は、ＬＣＤコントローラ５０に接続される。ＬＣＤコントローラ５０はレジスタ５６を含み、レジスタ５６はたとえば１ビットで構成され、ＣＰＵコア３４の指示によって「０」または「１」の値（データ値）を記憶する。ＬＣＤコントローラ５０は、レジスタ５６のデータ値が「０」である場合には、ＧＰＵ４４によって作成された画像データをＬＣＤ１２に出力し、ＧＰＵ４６によって作成された画像データをＬＣＤ１４に出力する。また、ＬＣＤコントローラ５０は、レジスタ５６のデータ値が「１」である場合には、ＧＰＵ４４によって作成された画像データをＬＣＤ１４に出力し、ＧＰＵ４６によって作成された画像データをＬＣＤ１２に出力する。
【０１１９】
なお、ＬＣＤコントローラ５０は、ＶＲＡＭ５２およびＶＲＡＭ５４から直接画像データを読み出したり、ＧＰＵ４４およびＧＰＵ４６を介してＶＲＡＭ５２およびＶＲＡＭ５４から画像データを読み出したりする。
【０１２０】
Ｉ／Ｆ回路４８には、操作スイッチ２２，タッチパネル２４およびスピーカ３６ａ，３６ｂが接続される。ここで、操作スイッチ２２は、上述したスイッチ２２ａ，２２ｂ，２２ｃ，２２ｄ，２２ｅ，２２ｆ，２２ｇ，２２Ｌおよび２２Ｒであり、操作スイッチ２２が操作されると、対応する操作信号（操作データ）がＩ／Ｆ回路４８を介してＣＰＵコア３４に入力される。また、タッチパネル２４からの座標データがＩ／Ｆ回路４８を介してＣＰＵコア３４に入力される。さらに、ＣＰＵコア３４は、ゲーム音楽（ＢＧＭ）、効果音またはゲームキャラクタの音声（擬制音）などのゲームに必要な音データをＲＡＭ４２から読み出し、Ｉ／Ｆ回路４８を介してスピーカ３６ａ，３６ｂから出力する。
【０１２１】
図３は、この実施例の仮想ゲームをプレイする場合に、ＬＣＤ１４に表示されるゲーム画面１００の例を示す。このゲーム画面１００には、トランプを模したカードのオブジェクト（カードオブジェクト）ＯＢＪが複数表示される。図３に示すゲーム画面１００は、クロンダイクと呼ばれるトランプゲームをプレイするための画面である。図４（Ａ）からも分かるように、このゲーム画面１００は、場札としてのカードオブジェクトＯＢＪを表示するための表示領域１０２、山札としてのカードオブジェクトＯＢＪを表示するための表示領域１０４および組札としてのカードオブジェクトＯＢＪを表示するための表示領域１０６が設けられる。
【０１２２】
以下、この実施例では、単に「カードオブジェクトＯＢＪ」と言う場合には、単数または複数のカードオブジェクトＯＢＪを意味することとする。
【０１２３】
また、ゲーム画面１００には、その左上端部にボタン１１０が表示され、その右下端部にボタン１１２が表示される。ボタン１１０は、この仮想ゲームを止めることを指示するためのＧＵＩ(Graphical User Interface)であり、ボタン１１２は、山札をすべて裏返すためのＧＵＩである。
【０１２４】
さらに、ゲーム画面１００の表示領域１０２には、場札のカードオブジェクトＯＢＪが配置されるべき位置（列）を示す略四角形の枠（指標枠）１２０が表示される。この指標枠１２０は、たとえば、場札のカードオブジェクトＯＢＪが配置されていない列に、プレイヤがカードオブジェクトＯＢＪを移動ないし配置させる際の指標となる。図３に示すゲーム画面１００では、１つの指標枠１２０のみを示してあるが、同様に、場札の各列の背面側には指標枠１２０がそれぞれ設定（表示）されている。
【０１２５】
さらにまた、ゲーム画面１００の表示領域１０６には、組札のカードオブジェクトＯＢＪを配置するべき位置を示す略四角形の枠（指標枠）１２２が表示される。この指標枠１２２には、カードオブジェクトＯＢＪの種類のうち、マークと同じ模様が表示され、ユーザが配置すべきカードオブジェクトＯＢＪのマークを分かり易く示してある。この実施例では、カードオブジェクトＯＢＪの種類とは、マーク（スペード、ダイヤ、クローバー、ハートなど）と、数字（２−１０）または英字（Ａ，Ｊ，Ｑ，Ｋ）とを意味する。また、英字Ａ，Ｊ，Ｑ，Ｋは、それぞれ、数字の１，１１，１２，１３に相当する。以下、「数字」と「英字」とをまとめて「文字」と呼ぶことがある。
【０１２６】
図３に示すゲーム画面１００では、スペードの模様が描画された指標枠１２２とダイヤの模様が描画された指標枠１２２とが表示される。同様に、ハートの模様が描画された指標枠１２２やクローバーの模様が描画された指標枠１２２も組札のカードオブジェクトＯＢＪの背面側にそれぞれ設定（表示）されている。
【０１２７】
ここで、このゲーム画面１００を用いた仮想ゲーム（トランプゲーム）について簡単に説明する。ここでは、トランプゲームとして、ソリティアのクロンダイクをプレイする場合について説明する。図示は省略するが、仮想ゲームが開始された当初では、場札は７列の組（グループ）に分類され、ゲーム画面１００の左から順に第１列（列（１）），第２列（列（２）），第３列（列（３），第４列（列（４）），第５列（列（５）），第６列（列（６）），第７列（列（７））としてある。
【０１２８】
また、カードオブジェクトＯＢＪの枚数は、第１列から第７列に向かうに従って増加するように設定されている。たとえば、第１列には、カードオブジェクトＯＢＪが１枚配置され、第２列には、カードオブジェクトＯＢＪが２枚配置され、第３列には、カードオブジェクトＯＢＪが３枚配置され、第４列には、カードオブジェクトＯＢＪが４枚配置され、第５列には、カードオブジェクトＯＢＪが５枚配置され、第６列には、カードオブジェクトＯＢＪが６枚配置され、そして、第７列には、カードオブジェクトＯＢＪが７枚配置される。
【０１２９】
また、各列では、最前面（最上段）に重ねられたカードオブジェクトＯＢＪはその種類が見えるように、表向きで表示され、それ以外の下側（下層）のカードオブジェクトＯＢＪはその種類が見えないように、裏向きで表示される。ただし、カードオブジェクトＯＢＪは少しずつずらして重ねられる。
【０１３０】
さらに、仮想ゲームが開始された当初では、場札以外のカードオブジェクトＯＢＪは、すべて山札のカードオブジェクトＯＢＪとして裏向きで表示領域１０４に表示される。
【０１３１】
図４（Ｂ）に示すように、２次元或いは３次元の仮想空間には、２次元平面のゲームフィールドが設けられ、このゲームフィールド内に、ＬＣＤ１４の表示領域が設定される。このように、ゲームフィールドをＬＣＤ１４の表示領域よりも大きく設定するのは、ゲームの進行状況によっては、カードオブジェクトＯＢＪがＬＣＤ１４の表示領域をはみ出てしまうことがあるからである（図９，図１１参照）。これを回避するために、場に並べるカードオブジェクトＯＢＪの数を制限したり、仮想ゲームに使用するカードオブジェクトＯＢＪの総数を制限したりすることも考えられるが、そのようにした場合には、ゲームの難易度が低下し、プレイヤが直ぐにゲームに飽きてしまう怖れがある。
【０１３２】
また、図４（Ｂ）に示すように、仮想空間では、横（水平方向）がＸ軸方向であり、縦（上下方向）がＹ軸方向であり、ＬＣＤ１４の表示領域の左上の頂点がワールド座標系の原点Ｏに設定される。ただし、図４（Ｂ）に示すように、右方向がＸ軸のプラス方向であり、下方向がＹ軸のプラス方向である。
【０１３３】
この仮想ゲームでは、一組のトランプ、すなわち、ハート、スペード、ダイヤ、クローバーのそれぞれについて、エース（Ａ）からキング（Ｋ）までの１３枚（合計５２枚）のカードオブジェクトＯＢＪが用いられる。また、この仮想ゲームは、組札として、同じマークのカードオブジェクトＯＢＪを数の小さい順に積み重ねて、４つのマークのそれぞれについて、１３枚のカードオブジェクトＯＢＪの組を完成させることを最終目的とする。そのために、場札のカードオブジェクトＯＢＪを異なる列に移動したり、山札のカードオブジェクトＯＢＪを場札のカードオブジェクトＯＢＪとしていずれかの列に移動したり、組札のカードオブジェクトＯＢＪを場札のカードオブジェクトＯＢＪとしていずれかの列に移動し（戻し）たりする。
【０１３４】
ただし、所定のルールによって、カードオブジェクトＯＢＪの移動は制限される。具体的には、山札、場札または組札のカードオブジェクトＯＢＪを、場札の所望の列（場札のカードオブジェクトＯＢＪの場合は他の列）に移動させる場合には、当該所望の列の最前面のカードオブジェクトＯＢＪと異なる色であり、かつ「１」だけ小さい数のカードオブジェクトＯＢＪを重ねることができる。たとえば、スペードやクローバーのカードオブジェクトＯＢＪには、これよりも「１」だけ小さい数のハートやダイヤのカードオブジェクトＯＢＪを重ねることができる。逆に、ハートやダイヤのカードオブジェクトＯＢＪには、これよりも「１」だけ小さい数のスペードやクローバーのカードオブジェクトＯＢＪを重ねることができる。
【０１３５】
ただし、移動させるカードオブジェクトＯＢＪは、１枚に限定されず、交互に異なる色で前面（上層）に向かうに従って数が１ずつ小さくなるように重なっている複数枚のカードオブジェクトＯＢＪを一度に移動させることも可能である。かかる場合には、複数枚のカードオブジェクトＯＢＪの最背面に位置するカードオブジェクトＯＢＪが、移動させる所望の列の最前面のカードオブジェクトＯＢＪと異なる色であり、かつ「１」だけ小さい数となっている必要がある。
【０１３６】
なお、図面では色の違いを表現することができないが、通常、スペードおよびクローバーのカードオブジェクトＯＢＪのマークおよび文字は黒で記載され、ハートおよびダイヤのカードオブジェクトＯＢＪのマークおよび文字は赤で記載される。以下、同様である。
【０１３７】
また、場札の列にカードオブジェクトＯＢＪが何ら表示されていない場合には、当該列（指標枠１２０が見える列）には、ＫのカードオブジェクトＯＢＪを移動させることができる。ただし、上述した所定のルール（異なる色のマークで数が連続する）に従って重ねられ、ＫのカードオブジェクトＯＢＪを含む複数枚のカードオブジェクトＯＢＪを、指標枠１２０が見える列に移動させることも可能である。
【０１３８】
図示等は省略するが、山札、場札、組札のカードオブジェクトＯＢＪを場札の列に移動させる場合に、移動させるために選択された１枚または複数のカードオブジェクトＯＢＪを手札のカードオブジェクトＯＢＪということがある。クロンダイクでは、場札のカードオブジェクトＯＢＪであって、表向きで表示されているカードオブジェクトＯＢＪ、山札のカードオブジェクトＯＢＪで最前面に表向きで表示されているカードオブジェクトＯＢＪ、および組札のカードオブジェクトＯＢＪで最前面に表向きで表示されているカードオブジェクトＯＢＪが手札として選択可能である。ただし、表向きに表示された場札のカードオブジェクトＯＢＪが２枚以上重なっている場合には、そのうちの所望のカードオブジェクトＯＢＪを選択（タッチオン）し、ドラッグすることにより、タッチオンしたカードオブジェクトＯＢＪを含み、その上層に重なっているカードオブジェクトＯＢＪのすべてを手札として選択することができる。
【０１３９】
さらに、山札や場札のカードオブジェクトＯＢＪを組札のカードオブジェクトＯＢＪとして移動する場合には、移動させたい組の最前面に表示されているカードオブジェクトＯＢＪと同じマークであり、かつ「１」だけ大きい数のカードオブジェクトＯＢＪを重ねることができる。ただし、組に何らカードオブジェクトＯＢＪが表示されていない場合には、指標枠１２２に表示されたマークと同じマークのＡのカードオブジェクトＯＢＪを移動させることができる。
【０１４０】
なお、ゲーム中に、場札のカードオブジェクトＯＢＪを移動した結果、裏向きのカードオブジェクトＯＢＪが場札の列の最前面に位置する場合には、これをタッチオンないしクリック（指定）することにより、当該最前面のカードオブジェクトＯＢＪは表向きで表示される。ただし、裏向きで表示された場札のカードオブジェクトＯＢＪが最前面に位置することとなったときに、自動的に表向きで表示するようにしてもよい。
【０１４１】
また、図３からも分かるように、場札のカードオブジェクトＯＢＪを表示する場合には、列に含まれるカードオブジェクトＯＢＪの数に応じて、重なり合うカードオブジェクトＯＢＪの上端（上辺）のＹ軸方向の間隔（Ｙ座標間隔）ａが算出され、それに従って各カードオブジェクトＯＢＪの当該列内におけるＹ軸方向の位置が決定される。これは、列に含まれるすべてのカードオブジェクトＯＢＪを表示するためである。
【０１４２】
たとえば、図５に示すように、場札の表示領域１０２において、裏向きカードオブジェクトＯＢＪのＹ座標間隔Ｓｃおよび表向きのカードオブジェクトＯＢＪのＹ座標間隔ａが決定される。
【０１４３】
なお、図５（後述する図７も同じ）では、簡単のため、場札を一列のみ示してあり、また、カードオブジェクトＯＢＪの表に記載されたマークと文字とを省略してある。
【０１４４】
ただし、裏向きのカードオブジェクトＯＢＪは、カードオブジェクトＯＢＪが裏向きであることと、その枚数を認識できれば良いため、Ｙ座標間隔Ｓｃは、比較的短い距離で固定的に設定されている。一方、表向きのカードオブジェクトＯＢＪは、その種類を出来るだけ見えるように表示する必要があるため、その枚数に応じて出来るだけ長い距離を確保できるように可変的に設定される。ただし、Ｙ座標間隔ａを必要以上に長い距離を設定すると、ゲーム画面１００が見難くなるため、Ｙ座標間隔ａの上限は最大間隔Ｓｏに設定される。
【０１４５】
ただし、この実施例では、最大間隔Ｓｏは、カードオブジェクトＯＢＪの上端部に記載れているマークと文字とが上層に重なっているカードオブジェクトＯＢＪによって隠れてしまわない距離（長さ）に設定される。
【０１４６】
したがって、図５に示すように、３枚の裏向きのカードオブジェクトＯＢＪの上層に５枚の表向きのカードオブジェクトＯＢＪが配置される場合には、場札の表示領域１０２のＹ軸方向の長さから、３枚の裏向きのカードオブジェクトＯＢＪについてのＹ座標間隔Ｓｃおよび最上層のカードオブジェクトＯＢＪのＹ軸方向の長さＥを引いた残りの長さ（Ｄ−３×Ｓｃ−Ｅ）を５枚のカードオブジェクトＯＢＪで均等に分けるようにしてある。ただし、１ドットよりも短い距離については分割できないため、均等に分けた場合の余りの長さ（ドット）については、場札の表示領域１０２の縦方向の余白となる（背景が表示される）。
【０１４７】
ここで、図３に示すように、第６列では、比較的多数のカードオブジェクトＯＢＪが重なった状態で表示されている。第６列の場札は、第２列の場札や第５列の場札と比較して分かるように、カードオブジェクトＯＢＪ同士の重なり具合が大きいため、上層のカードオブジェクトＯＢＪによって下層のカードオブジェクトＯＢＪの種類（内容）が見え難い。
【０１４８】
したがって、この実施例では、プレイヤが場札のカードオブジェクトＯＢＪをタッチオンし、タッチオンしたカードオブジェクトＯＢＪの上層に他のカードオブジェクトＯＢＪが重なっている場合には、上層のすべてのカードオブジェクトＯＢＪが下方向に移動される。このため、少なくともプレイヤがタッチオンしたカードオブジェクトＯＢＪ（以下、「フォーカスされたカードオブジェクトＯＢＪ」ということがある。）の露出量が大きくされ、このフォーカスされたカードオブジェクトのマークおよび文字が見える。
【０１４９】
この実施例では、図６に示すように、プレイヤがタッチオンした列に複数のカードオブジェクトＯＢＪが存在し、タッチオン操作によって指示したカードオブジェクトＯＢＪの上層に他のカードオブジェクトＯＢＪが重なっており、その重なり具合が大きい場合には、タッチオンされたカードオブジェクトＯＢＪおよびその上層のカードオブジェクトＯＢＪがすべて予め決定してある最大間隔Ｓｏで表示される。
【０１５０】
具体的には、図５に示した状態において、プレイヤがカードオブジェクトＯＢＪをタッチオンすると、図７に示すように、場札の表示領域１０２の大きさ（範囲）に拘わらず、タッチオンされたカードオブジェクトＯＢＪより上層のすべてのカードオブジェクトＯＢＪが移動され、タッチオンされたカードオブジェクトＯＢＪと、これより上層のすべてのカードオブジェクトＯＢＪとのＹ座標間隔ａが最大間隔Ｓｏに設定される。したがって、プレイヤは、少なくとも、タッチオンされたカードオブジェクトＯＢＪすなわちフォーカスされたカードオブジェクトＯＢＪの種類を知ることができる。
【０１５１】
また、この実施例では、タッチオンすることにより、Ｙ座標間隔ａを最大間隔Ｓｏに設定するために移動された上層のすべてのカードオブジェクトＯＢＪは、その後、プレイヤがタッチオフ操作を実行してから一定時間（この実施例では、６０フレーム）経過後に、元の位置に移動される（戻される）。つまり、図６に示した状態で、タッチオフ操作が実行されると、図３に示したゲーム画面１００が再度表示されるのである。ただし、フレームは画面更新の単位時間であり、１フレームは１／６０秒に相当する。
【０１５２】
図８には、他の仮想ゲームをプレイするためのゲーム画面２００が表示される。この他の仮想ゲームは、スパイダーと呼ばれるトランプゲームである。図９からも分かるように、ゲーム画面２００には、場札としてのカードオブジェクトＯＢＪを表示するための表示領域２０２および山札としてのカードオブジェクトＯＢＪを表示するための表示領域２０４が設けられる。場札は複数の（この実施例では、８つの）列（グループ）に分割されており、ゲーム画面２００の左から順に第１列（列（１）），第２列（列（２）），…，第７列（列（７）），第８列（列（８））としてある。
【０１５３】
図９では省略するが、図４（Ｂ）に示したように、仮想空間にはゲームフィールドが設けられ、このゲームフィールド内にＬＣＤ１４の表示領域が設定される。また、仮想空間についてのワールド座標系およびＬＣＤ１４の表示領域の原点Ｏの位置も図４（Ｂ）に示した場合と同じである。
【０１５４】
また、ゲーム画面２００には、ボタン２１０および場札を配置するための指標となる略四角形の枠（指標枠）２２０が表示される。図８では示すことができないが、場札の他の列にも指標枠２２０は表示（設定）されており、列内のカードオブジェクトＯＢＪが無くなると現れる。ボタン２１０は、当該仮想ゲームを止めることを指示（選択）するためのＧＵＩである。
【０１５５】
なお、この実施例では、図示は省略するが、後述するようにして作成された組札を、ボタン２１０と山札の表示領域２０４との間に表示するようにしてもよい。
【０１５６】
この他の仮想ゲームについて簡単に説明する。図示は省略するが、ゲームが開始された当初では、場札として複数の列に複数枚のカードオブジェクトＯＢＪが配置される。ただし、各列におけるカードオブジェクトＯＢＪの枚数は同じでも異なっていてもよい。また、各列では、最前面のカードオブジェクトＯＢＪが表向きで表示され、それ以外の背面のカードオブジェクトＯＢＪは裏向きで表示される。場札のカードオブジェクトＯＢＪ以外のカードオブジェクトＯＢＪは、すべて山札として裏向きで表示領域２０４に表示される。
【０１５７】
この他の仮想ゲームでは、プレイヤは、場札の列において、同じマークのカードオブジェクトＯＢＪをキングからエースまで連続的に数が小さくなるように積み重ねて、１３枚のカードオブジェクトＯＢＪの組を作成し、所定数の組を作成することを最終目標とする。ただし、所定数の組は、使用するトランプのセット数に応じて異なり、使用するトランプのセット数はゲームの難易度に応じて可変的に設定される。
【０１５８】
ゲーム中では、プレイヤは、場札のカードオブジェクトＯＢＪを異なる列に移動させることができる。また、場札のカードオブジェクトＯＢＪを移動できない場合には、山札のカードオブジェクトＯＢＪをクリック（タッチオン）することにより、山札を場札の各列に一枚ずつ追加することができる。ただし、場札のカードオブジェクトＯＢＪを移動させる場合には、所定のルール（クロンダイクとは異なるルール）によって、その移動が制限される。
【０１５９】
具体的には、場札のカードオブジェクトＯＢＪを他の所望の列に移動させる場合には、当該所望の列の最前面に表示されたカードオブジェクトＯＢＪと同じマークであり、かつ数が「１」だけ小さいカードオブジェクトＯＢＪを重ねることができる。ただし、移動させるカードオブジェクトＯＢＪは、１枚に限定されず、同じマークで数が連続する複数枚のカードオブジェクトＯＢＪを一度に移動させることも可能である。かかる場合には、複数枚のカードオブジェクトＯＢＪのうちの最下層のカードオブジェクトＯＢＪが、移動させる所望の列の最前面のカードオブジェクトＯＢＪと同じマークであり、かつ「１」だけ小さい数となっている必要がある。
【０１６０】
ただし、移動させることができるカードオブジェクトＯＢＪ（選択可能なカードオブジェクトＯＢＪ）は、場札の各列の最前面のカードオブジェクトＯＢＪおよび当該最前面のカードオブジェクトＯＢＪと同じマークで、下層に向かうに従って数が連続的に１ずつ増加する１枚または複数枚のカードオブジェクトＯＢＪである。選択可能なカードオブジェクトＯＢＪであれば、そのすべてを選択しなくても、一部のみを選択して移動させることもできる。
【０１６１】
なお、列の途中で、最前面のカードオブジェクトＯＢＪとマークが異なったり、数字が連続していなかったりして、不連続な個所が出来ている場合には、その下層において、同じマークで下層に向かうに従って数が次第に大きくなるように重なっている複数枚のカードオブジェクトＯＢＪが配置されていても、これらは選択可能なカードオブジェクトＯＢＪではない。
【０１６２】
また、カードオブジェクトＯＢＪが表示されていない列すなわち指標枠２２０が見える列には、選択可能なカードオブジェクトＯＢＪであれば、その種類に関係なく、自由に移動させることができる。ただし、指標枠２２０が見える列に複数枚のカードオブジェクトＯＢＪを移動させる場合には、当該複数枚のカードオブジェクトＯＢＪが同じマークで下層に向かうに従って数が１ずつ大きくなるように重なっている必要がある。
【０１６３】
この他の仮想ゲームでは、選択可能なカードオブジェクトＯＢＪの全部または一部を選択して移動させる場合に、選択された１枚または複数枚のオブジェクトＯＢＪが手札のオブジェクトＯＢＪである。
【０１６４】
この他の仮想ゲームにおいても、上述した仮想ゲームと同様に、複数枚のカードオブジェクトＯＢＪのうち、裏向きのカードオブジェクトＯＢＪは、固定的に設定されたＹ座標間隔Ｓｃで配置され、表向きのカードオブジェクトＯＢＪは、上述したように、算出されたＹ座標間隔ａ（最大間隔Ｓｏ）で配置される。したがって、図８に示すゲーム画面２００の場札の第２列に示すように、列内に配置されるカードオブジェクトＯＢＪの数が比較的多数になると、Ｙ座標間隔ａが狭くなり、つまり重なり具合が大きくなり、カードオブジェクトＯＢＪの種類が見え難い。
【０１６５】
このため、この他の仮想ゲームにおいても、プレイヤが所望のカードオブジェクトＯＢＪをタッチオンすると、タッチオンしたカードオブジェクトＯＢＪより上層のカードオブジェクトＯＢＪのＹ座標間隔ａが表示領域２０２の大きさに拘わらず、最大間隔Ｓｏに設定される。したがって、たとえば、図１０に示すように、ゲーム画面２００において、少なくとも、タッチオンされたカードオブジェクトＯＢＪすなわちフォーカスされたカードオブジェクトＯＢＪの種類を見ることができる。
【０１６６】
なお、図１０からも分かるように、ゲーム画面２００からはみ出しているカードオブジェクトＯＢＪについては、見えなくなってしまうが、プレイヤが見たいのはタッチオンしたカードオブジェクトＯＢＪであると考えられるため、何ら支障は無いと考えられる。
【０１６７】
図１１には、ゲーム画面２００の他の例が示される。このゲーム画面２００では、プレイヤがスティック２６を用いてドラッグ操作（スライド操作）を行うことにより、複数のカードオブジェクトＯＢＪ（手札のカードオブジェクトＯＢＪ）が移動される様子が示される。
【０１６８】
図１１から分かるように、複数のカードオブジェクトＯＢＪを移動させる場合には、タッチオンされているカードオブジェクトＯＢＪの上層に重なっている一部のカードオブジェクトＯＢＪは、少しずつ遅れて移動されるように、移動制御される。これは、カードオブジェクトＯＢＪの移動を滑らかに表現して、プレイヤに見易くするためである。
【０１６９】
なお、図示等は省略したが、上述の仮想ゲーム（クロンダイク）において手札のカードオブジェクトＯＢＪを移動させる場合にも、同様の移動制御が実行される。
【０１７０】
この実施例では、選択可能なカードオブジェクトＯＢＪのうち、所望のカードオブジェクトＯＢＪがタッチオンされ、その後のドラッグ操作によって、手札のカードオブジェクトＯＢＪが選択される。ただし、上述したように、場札の列の最上層から下層に向かう途中で、マークが異なったり、数が連続的に大きくなっていなかったりするカードオブジェクトＯＢＪが現れると、それよりも下層に存在するカードオブジェクトＯＢＪは、たとえ同一マークで数が連続して大きくなるように重なっているとしても、移動させることはできない。つまり、手札のカードオブジェクトＯＢＪとして選択することができない。
【０１７１】
たとえば、図１２に示すように、プレイヤが、所望のカードオブジェクトＯＢＪをタッチオンし、その後、図１３に示すように、ドラッグ操作を行うと、タッチオンされたカードオブジェクトＯＢＪではなく、選択可能なカードオブジェクトＯＢＪが手札としてそのドラッグ操作に従って選択される。
【０１７２】
図１２および図１３に示すゲーム画面２００の例では、プレイヤがタッチオンしている列では、最前面にハートの８のカードオブジェクトＯＢＪが表示され、その下層にハートの９および１０のカードオブジェクトＯＢＪが連続して配置されている。また、ハートの１０のカードオブジェクトＯＢＪの下層には、スペードの３のカードオブジェクトＯＢＪが配置される。したがって、上記の所定のルール（マークが同じで数が連続する）に従えば、選択可能なカードオブジェクトＯＢＪは、ハートの８から１０までの３枚のカードオブジェクトＯＢＪである。
【０１７３】
したがって、図１３に示すように、プレイヤが、スペードの８のカードオブジェクトＯＢＪをタッチオンし、その後、ドラッグ操作すると、手札としてハートの８から１０までの３枚のカードオブジェクトＯＢＪが選択されるのである。つまり、プレイヤがタッチオンしているスペードの８のカードオブジェクトＯＢＪは、選択可能なカードオブジェクトＯＢＪではないため、手札として選択されないのである。
【０１７４】
ここで、図１１に示したように、列における最上層のカードオブジェクトＯＢＪからタッチオンしたカードオブジェクトＯＢＪまでが所定のルールに従う順序で並んでいる場合には、タッチオンしたカードオブジェクトＯＢＪを含む複数枚のカードオブジェクトＯＢＪを手札とすることができる。ただし、図１２および図１３に示したように、列の最上層のカードオブジェクトＯＢＪとタッチ座標との間において、マークが異なっていたり、数字が不連続になっていたりする場合には、タッチオンしたカードオブジェクトＯＢＪを含まずに、当該列の最上層のカードオブジェクトＯＢＪとタッチ座標と間にある選択可能なカードオブジェクトＯＢＪが手札として選択される。つまり、選択可能なカードオブジェクトＯＢＪのうち、タッチ座標に最も近いカードオブジェクトＯＢＪおよびそれに関連する（所定のルールに従って重なる）カードオブジェクトＯＢＪが手札として選択されるのである。
【０１７５】
また、上述したように、プレイヤが或る列のカードオブジェクトＯＢＪをタッチオンすると、タッチオンしたカードオブジェクトＯＢＪおよびその上層のすべてのカードオブジェクトＯＢＪのＹ座標間隔ａが最大間隔Ｓｏに設定される。ただし、Ｙ座標間隔ａが最大間隔Ｓｏ未満である場合に限られる。このため、図１２に示すように、列の一部がゲーム画面２００の外にはみ出している。このような場合であっても、図１３に示すように、ドラッグ操作によって手札を選択することができる。つまり、プレイヤは、見えていないカードオブジェクトＯＢＪであっても手札として選択することができるのである。
【０１７６】
図１２および図１３では分かり難いが、この実施例では、タッチオンしたカードオブジェクトＯＢＪと、手札として選択されたカードオブジェクトＯＢＪとが異なり、手札が選択された時点においてタッチ座標と手札のカードオブジェクトＯＢＪとが離れている場合には、その後の処理（後述する手札更新処理）によって、手札のカードオブジェクトＯＢＪがタッチ座標に次第に近づくようにしてある。したがって、ゲーム画面２００からはみ出しているカードオブジェクトＯＢＪが手札として選択された場合であっても、手札更新処理によって、ゲーム画面２００に表示されるのである。
【０１７７】
また、この実施例のトランプゲーム（クロンダイクおよびスパイダー）では、場札のカードオブジェクトＯＢＪのうち、表向きのカードオブジェクトＯＢＪをタッチオンすることにより、タッチオンされたカードオブジェクトＯＢＪおよびその上層のカードオブジェクトＯＢＪのＹ座標間隔ａが最大間隔Ｓｏに設定される。ただし、場札のカードオブジェクトＯＢＪのうち、裏向きのカードオブジェクトＯＢＪがタッチオンされた場合には、表向きのカードオブジェクトＯＢＪがタッチオンされた場合と同様に、タッチオンされた裏向きのカードオブジェクトＯＢＪをフォーカスするための処理（後述する場札更新処理）を実行するが、フォーカスされる際に、裏向きのカードオブジェクトＯＢＪについては、Ｙ座標間隔Ｓｃは変更されない。したがって、かかる場合には、裏向きのカードオブジェクトＯＢＪの上層に重なっている表向きのカードオブジェクトＯＢＪのＹ座標間隔ａが最大間隔Ｓｏに設定される。
【０１７８】
したがって、図１４に示すように、場札の裏向きのカードオブジェクトＯＢＪがタッチオンされた場合には、その上層に重なっている表向きのカードオブジェクトＯＢＪのＹ座標間隔ａが最大間隔Ｓｏに設定され、表向きのカードオブジェクトＯＢＪの種類が視認可能にされる。
【０１７９】
続いて、プレイヤが、ドラッグ操作すると、手札としてのカードオブジェクトＯＢＪが選択される。ただし、上述したように、図１４では、裏向きのカードオブジェクトＯＢＪをタッチオンしているため、つまり選択不能なカードオブジェクトＯＢＪをタッチオンしているため、直接的に手札としてのカードオブジェクトＯＢＪが選択されない。この実施例では、かかる場合には、選択可能なカードオブジェクトＯＢＪから自動的に手札としてのカードオブジェクトＯＢＪが選択される。図１４では、表向きのカードオブジェクトＯＢＪは、すべて所定のルールに従って重なっており、選択可能なカードオブジェクトＯＢＪであるため、これらすべてのカードオブジェクトＯＢＪが手札として選択される。このとき、図１４からも分かるように、手札としてのカードオブジェクトＯＢＪは、タッチ座標にくっつくように移動される。
【０１８０】
また、この実施例のトランプゲーム（クロンダイクおよびスパイダー）では、図１５に示すように、各カードオブジェクトＯＢＪには、その左上の頂点が基準点すなわち原点Ｐに設定される。したがって、カードオブジェクトＯＢＪは、ワールド座標系における配置位置に、原点Ｐが来るように、ゲームフィールドに配置される。
【０１８１】
また、カードオブジェクトＯＢＪがタッチオンされている場合には、タッチ座標とカードオブジェクトＯＢＪとの位置関係（距離）が記憶される。たとえば、図１５に示すように、そのタッチ座標と当該カードオブジェクトＯＢＪの原点Ｐとの距離（Ｏｘ，Ｏｙ）が記憶される。このように、タッチ座標とカードオブジェクトＯＢＪの原点Ｐと距離（Ｏｘ，Ｏｙ）を記憶しておくのは、後述するように、ドラッグ操作（タッチ座標）に従ってカードオブジェクトＯＢＪを移動制御するためである。図示は省略するが、カードオブジェクトＯＢＪ自体がタッチオンされた場合にも、距離（Ｏｘ，Ｏｙ）は記憶される。
【０１８２】
なお、図１５に示すように、距離（Ｏｘ，Ｏｙ）は、原点Ｐの座標（Ｘ１，Ｙ１）−タッチ座標（Ｘ２，Ｙ２）で算出される。つまり、Ｏｘ＝Ｘ１−Ｘ２であり、Ｏｙ＝Ｙ１−Ｙ２である。
【０１８３】
図１６は、図２に示したゲーム装置１０のＲＡＭ４２のメモリマップ７０である。ＲＡＭ４２は、プログラム記憶領域７２およびデータ記憶領域７４を含む。プログラム記憶領域７２には、情報処理プログラムとしてのゲームプログラムが記憶され、ゲームプログラムは、メイン処理プログラム７２ａ、画像生成プログラム７２ｂ、画像表示プログラム７２ｃ、画像更新プログラム７２ｄ、入力判定プログラム７２ｅ、手札更新プログラム７２ｆ、リリース実行プログラム７２ｇ、タッチ操作プログラム７２ｈ、カード取得プログラム７２ｉおよび場札更新プログラム７２ｊなどによって更新される。
【０１８４】
メイン処理プログラム７２ａは、この実施例の仮想ゲームのメインルーチンを処理するためのプログラムである。画像生成プログラム７２ｂは、後述する画像データ７４ｂを用いてゲーム画像を生成するためのプログラムである。画像表示プログラム７２ｃは、画像生成プログラム７２ｂに従って生成されたゲーム画像をゲーム画面（１００，２００）として、ＬＣＤ１４（またはＬＣＤ１２）に表示するためのプログラムである。画像更新プログラム７２ｄは、画像生成プログラム７２ｂに従って生成され、画像表示プログラム７２ｃに従って表示された、ゲーム画像（ゲーム画面）を一定時間（１フレーム）毎に更新するためのプログラムである。
【０１８５】
入力判定プログラム７２ｅは、プレイヤによる入力操作を判定する。この実施例では、タッチオン操作であるかどうか、タッチオフ操作であるかどうか、およびドラッグ操作であるかどうかが判断される。手札更新プログラム７２ｆは、ワールド座標系における手札のカードオブジェクトＯＢＪの位置を更新するためのプログラムである。この実施例では、手札更新プログラム７２ｆは、タッチ座標に応じて、手札のカードオブジェクトＯＢＪの座標（ワールド座標）を更新する。手札のカードオブジェクトＯＢＪが１枚の場合には、当該手札のカードオブジェクトＯＢＪがタッチ座標に従って移動される。また、手札のカードオブジェクトＯＢＪが複数枚の場合には、そのうちの最下層のカードオブジェクトＯＢＪがタッチ座標に従って移動され、最下層のカードオブジェクトＯＢＪよりも上層のカードオブジェクトＯＢＪの各々は、１つ上層のカードオブジェクトＯＢＪを追従するように移動される。
【０１８６】
リリース実行プログラム７２ｇは、手札のカードオブジェクトＯＢＪを場札のカードオブジェクトＯＢＪとして元の位置に戻すためのプログラムである。この実施例では、手札のカードオブジェクトＯＢＪをドラッグしているときに、プレイヤがタッチオフ操作を実行すると、手札のカードオブジェクトＯＢＪを離したと判断して、当該手札のカードオブジェクトＯＢＪが元の場札の列（位置）に移動される。詳細な説明は省略するが、場札のカードオブジェクトＯＢＪから手札のカードオブジェクトＯＢＪが選択された場合であっても、場札としての情報は消去されずに、カードデータ７４ｃの位置データ（図１７参照）に記憶されている。したがって、プレイヤが手札のカードオブジェクトＯＢＪを離すと、カードデータ７４ｃに従って元の位置に戻される。このとき、現在位置から元の位置に、所定の割合（たとえば、２５％）で、Ｘ軸方向およびＹ軸方向の距離（間隔）が縮まるように、手札のカードオブジェクトＯＢＪは移動される。ただし、現在位置は毎フレーム更新される。以下、同様である。
【０１８７】
なお、上述したように、クロンダイクの場合には、山札や組札のカードオブジェクトＯＢＪを手札のカードオブジェクトＯＢＪとして選択することもできるが、この発明の本質的な内容では無いため、これ以降では省略することにする。同様に、リリースした場合のカードオブジェクトＯＢＪの移動についても、この発明の本質的な内容では無いため、これ以降では省略することにする。ただし、山札のカードオブジェクトＯＢＪが手札のカードオブジェクトＯＢＪとして選択された場合には、離されたカードオブジェクトＯＢＪは山札としてその最前面に戻される。また、組札のカードオブジェクトＯＢＪが手札のカードオブジェクトＯＢＪとして選択された場合には、離されたカードオブジェクトＯＢＪは元の組の最前面に戻される。
【０１８８】
タッチ操作プログラム７２ｈは、プレイヤがタッチオンした場札のカードオブジェクトＯＢＪをフォーカスされたカードオブジェクトＯＢＪとして設定するとともに、フォーカスされる一定時間（この実施例では、６０フレーム）を後述するフォーカスカウンタ７４ｊ（図１７参照）に設定するためのプログラムである。
【０１８９】
カード取得プログラム７２ｉは、プレイヤの入力操作に従って、場札のカードオブジェクトＯＢＪから、手札のカードオブジェクトＯＢＪを選択するためのプログラムである。上述したように、プレイヤがタッチオンした場札の列において、選択可能なカードオブジェクトＯＢＪのうち、最上層に存在する１枚ないしそれに重なる複数枚のカードオブジェクトＯＢＪが、タッチオン操作に続くドラッグ操作に応じて、手札として選択される。
【０１９０】
場札更新プログラム７２ｊは、場札のカードオブジェクトＯＢＪを、必要に応じて、列毎にその配置位置を上下に移動させるためのプログラムである。具体的には、プレイヤがタッチオンした場札のカードオブジェクトＯＢＪおよびその上層のすべてのカードオブジェクトＯＢＪのＹ座標間隔ａが最大間隔Ｓｏとなるように、当該上層のすべてのカードオブジェクトＯＢＪが下方向に移動される。また、プレイヤがタッチオフしたときから一定時間（６０フレーム）が経過したときに、タッチオンされたカードオブジェクトＯＢＪをフォーカスするためにＹ座標間隔ａを強制的に最大間隔Ｓｏに設定していたすべてのカードオブジェクトＯＢＪが上方向に移動され、元の配置位置に戻される。
【０１９１】
なお、後述の場札更新処理において説明するように、場札のカードオブジェクトＯＢＪを上下に移動させる場合にも、目標（移動後）の位置座標（目標位置）と現在の位置座標（現在位置）との間隔が所定の割合（この実施例では、２５％）で短くなるように制御される。したがって、手札のカードオブジェクトＯＢＪをドラッグしたり、リリースしたりする場合のみならず、所望のカードオブジェクトＯＢＪをフォーカスしたり、フォーカスを終了したりする場合にも、滑らかにカードオブジェクトＯＢＪが移動される様子が示される。
【０１９２】
図示は省略するが、ゲームプログラムは、音出力プログラムやバックアッププログラムなども含む。音出力プログラムは、プレイヤオブジェクトの音声ないし擬声音、効果音、ＢＧＭなどのゲームに必要な音（音楽）を生成および出力するためのプログラムである。バックアッププログラムは、ゲームデータ（途中データ，結果データ）をメモリカード２８のＲＡＭ２８ｂにセーブするためのプログラムである。
【０１９３】
図１７は、図１６に示したデータ記憶領域７４の具体例を示す図解図である。図１７に示すように、データ記憶領域７４には、入力バッファ７４ａが設けられる。また、データ記憶領域７４には、画像データ７４ｂ、カードデータ７４ｃ、現在タッチ座標データ７４ｄ、前回タッチ座標データ７４ｅ、距離データ７４ｆ、Ｙ座標間隔データ７４ｇ、最大間隔データ７４ｈが記憶される。さらに、データ記憶領域７４には、タッチフラグ７４ｉおよびフォーカスカウンタ７４ｊが設けられる。
【０１９４】
入力バッファ７４ａは、操作スイッチ２２から入力されるキーデータおよびタッチパネル２４から入力される座標データを時系列に従って一時記憶する。キーデータおよび座標データは、ゲーム処理に利用されると、その後、入力バッファ７４ａから削除される。
【０１９５】
画像データ７４ｂは、ゲーム画像を生成するためのポリゴンデータおよびテクスチャデータなどのデータである。カードデータ７４ｃは、ゲームフィールドに存在するすべて（Ｎ枚）のカードオブジェクトＯＢＪの各々についてのデータである。具体的には、カードデータ７４ｃは、カード１データ７４０、カード２データ７４２，…，カードＮデータ７４Ｎを含む。図１７に示すように、カード１データ７４０は、種類データ７４０ａ、位置データ７４０ｂ、大きさデータ７４０ｃおよび状態判別フラグ７４０ｄを含む。
【０１９６】
種類データ７４０ａは、当該カードオブジェクトＯＢＪ（ここでは、カード１である。以下、同じ。）の種類（マークおよび文字）を識別するためのデータである。位置データ７４０ｂは、当該カードオブジェクトＯＢＪが山札、場札、手札のいずれであるかを識別するための識別データおよび当該カードオブジェクトＯＢＪのワールド座標についての座標データを含む。ただし、この実施例では、識別データは、単に山札、場札、手札の別を示す情報のみならず、当該カードオブジェクトＯＢＪが何番目に重ねられているかを示す情報も含まれる。さらに、場札は、列毎に振り分けられるため、列と列内における順番（最下層から順に数えた場合の番号）とを区別するための情報が記憶されている。また、上述したように、プレイヤが手札のカードオブジェクトＯＢＪを離すと、場札のカードオブジェクトＯＢＪとして元の位置に戻すようにしてあるため、場札の情報については、当該カードオブジェクトＯＢＪが手札として選択された場合であっても消去されないようにしてある。ただし、他の列に移動された場合には、手札の情報が消去され、場札の情報（列および順番）が更新される。
【０１９７】
大きさデータ７４０ｃは、当該カードオブジェクトＯＢＪの大きさを示すデータであり、具体的には、当該カードオブジェクトＯＢＪの横および縦の長さ（ドット数）についての数値データである。ただし、同一の仮想ゲームに使用されるすべてのカードオブジェクトＯＢＪは同じ大きさであるため、大きさデータ７４０ｃはカードオブジェクトＯＢＪ毎に記憶せずに、カードデータ７４ｃに１つだけ記憶するようにしてもよい。状態判別フラグ７４０ｄは、カードオブジェクトＯＢＪが裏向きか表向きかを判別するためのフラグである。具体的には、状態判別フラグ７４０ｄは、１ビットのレジスタで構成される。状態判別フラグ７４０ｄがオフ（不成立）であれば、レジスタにデータ値「０」が設定される。一方、状態判別フラグ７４０ｄがオン（成立）であれば、レジスタにデータ値「１」が設定される。ただし、カードオブジェクトＯＢＪが裏向きである場合に、状態判別フラグ７４０ｄがオフされ、カードオブジェクトＯＢＪが表向きである場合に、状態判別フラグ７４０ｄがオンされる。
【０１９８】
詳細な説明は省略するが、カード２データ７４２，…，カードＮデータ７４Ｎについても同様である。
【０１９９】
なお、図示および詳細な説明は省略するが、この実施例の仮想ゲームでは、一手戻すこともできるため、実際には、カードオブジェクトＯＢＪの移動履歴を記憶しており、一手戻す場合には、その移動履歴を逆方向に適用するようにしてある。
【０２００】
現在タッチ座標データ７４ｄは、現フレームにおいて、プレイヤがタッチオンしているタッチ座標についての座標データである。この実施例では、入力バッファ７４ａに一時記憶される現フレームの座標データがコピーされて、現在タッチ座標データ７４ｄとしてデータ記憶領域７４に記憶される。この実施例では、１フレーム毎に、現在タッチ座標データ７４ｄは更新される。ただし、プレイヤがタッチオフしている場合には、入力バッファ７４ａには、座標データが記憶（入力）されないため、かかる場合には、現在タッチ座標データ７４ｄとしてＮＵＬＬデータが記憶される。
【０２０１】
前回タッチ座標データ７４ｅは、現フレームの１つ手前のフレームにおいて、プレイヤがタッチオンしていたタッチ座標についての座標データである。この実施例では、前回タッチ座標データ７４ｅも、１フレーム毎に更新される。具体的には、上述したように、１フレーム毎に、現在タッチ座標データ７４ｄが更新されるため、当該現在タッチ座標データ７４ｄが更新される前に、そのコピーが前回タッチ座標データ７４ｅとしてデータ記憶領域７４に一時記憶される。
【０２０２】
距離データ７４ｆは、手札として選択されたカードオブジェクトＯＢＪのうち、最下層に配置されるカードオブジェクトＯＢＪのローカル座標系における原点Ｐと、手札を選択するためにタッチオンしたときのタッチ座標との距離（ドット数）についての数値データである。ただし、上述したように、距離データ７４ｆが示す距離は、Ｘ軸方向の距離Ｏｘと、Ｙ軸方向の距離Ｏｙとで表わされる。Ｙ座標間隔データ７４ｇは、場札の列毎に、重なるカードオブジェクトＯＢＪ同士のＹ座標間隔ａ（ドット数）を示す数値データである。最大間隔データ７４ｈは、Ｙ座標間隔ａの最大値（最大間隔Ｓｏ）を示す数値データである。
【０２０３】
タッチフラグ７４ｉは、プレイヤがタッチパネル２４をタッチオンしているかどうかを判別するためのフラグであり、１ビットのレジスタで構成される。タッチフラグ７４ｉがオフであれば、レジスタにデータ値「０」が設定され、タッチフラグ７４ｉがオンであれば、レジスタにデータ値「１」が設定される。ただし、プレイヤがタッチパネル２４をタッチオンしていない場合（タッチオフの場合）に、タッチフラグ７４ｉはオフされ、プレイヤがタッチパネル２４をタッチオンしている場合に、タッチフラグ７４ｉはオンされる。
【０２０４】
フォーカスカウンタ７４ｊは、プレイヤがタッチオンしたカードオブジェクトＯＢＪがフォーカスされている一定時間をカウントするためのカウンタである。この実施例では、フォーカスカウンタ７４ｊは、ダウンカウンタであり、タッチオンされたカードオブジェクトＯＢＪがフォーカスされ、プレイヤがタッチオフ操作を実行してからの一定時間（６０フレーム）をカウントする。つまり、プレイヤがタッチオン操作を継続している間は、フォーカスカウンタ７４ｊはカウントダウンされない。
【０２０５】
図示は省略するが、データ記憶領域７４には、ゲームに必要な、他のデータ、他のフラグ、および他のカウンタ（タイマ）も記憶される。
【０２０６】
図１８および図１９は、図２に示したＣＰＵコア３４のメイン処理を示すフロー図である。なお、図示は省略するが、ＣＰＵコア３４は、メイン処理と並列的に、操作スイッチ２２からのキーデータおよびタッチパネル２２からの座標データを検出する処理を実行する。つまり、ＣＰＵコア３４は、操作スイッチ２２から入力されるキーデータおよびタッチパネル２２から入力される座標データを、時系列に従って入力バッファ７４ａに記憶する。
【０２０７】
図１８に示すように、ＣＰＵコア３４は、メイン処理を開始すると、ステップＳ１で、変数Ｔｋおよび変数Ｔｉのそれぞれに「０」を設定する。ただし、変数Ｔｋは、プレイヤがタッチオンした場札の列（ｋ）の番号を示す。また、変数Ｔｉは、プレイヤがタッチオンしたカードオブジェクトＯＢＪの列内における番号を示す。ここで、列内における番号は、最下層（ゲーム画面１００，２００の上側）から上層（ゲーム画面１００，２００の下側）に向かう順序で付される。したがって、ステップＳ１では、プレイヤが場札のカードオブジェクトＯＢＪをタッチオンしていない状態を、変数Ｔｋおよび変数Ｔｉに設定しているのである。
【０２０８】
続くステップＳ３では、手札が有るかどうかを判断する。ここでは、ＣＰＵコア３４は、カードデータ７４ｃを参照して、位置データ（７４０ｂなど）に手札の情報が記載されたカードオブジェクトＯＢＪが存在するかどうかを判断する。ステップ３で“ＮＯ”であれば、つまり手札が無ければ、図１９に示すステップＳ１９に進む。一方、ステップＳ３で“ＹＥＳ”であれば、つまり手札が有れば、ステップＳ５で、タッチ中かどうかを判断する。ここでは、ＣＰＵコア３４は、タッチオンの状態が継続しているかどうかを判断する。具体的には、ＣＰＵコア３４は、タッチフラグ７４ｉがオンであり、かつ現在タッチ座標データ７４ｄとしてＮＵＬＬデータが記憶されていないかどうかを判断する。
【０２０９】
なお、詳細な説明は省略するが、この実施例では、メイン処理が開始された当初では、タッチフラグ７４ｉはオフであり、また、現在タッチ座標データ７４ｄおよび前回タッチ座標データ７４ｅとして、ＮＵＬＬデータが記憶される。
【０２１０】
ステップＳ５で“ＹＥＳ”であれば、つまりタッチフラグ７４ｉがオンであり、現在タッチ座標データ７４ｄとしてＮＵＬＬデータが記憶されていなければ、タッチ中であると判断して、ステップＳ７で、後述する手札更新処理（図２０参照）を実行して、ステップＳ１１に進む。一方、ステップＳ５で“ＮＯ”であれば、つまりタッチフラグ７４ｉはオンであるが、現在タッチ座標データ７４ｄとしてＮＵＬＬデータが記憶されていれば、タッチオフされたと判断して、ステップＳ９で、後述するリリース処理（図２１参照）を実行して、ステップＳ１１に進む。
【０２１１】
なお、図示は省略するが、ステップＳ５で“ＮＯ”と判断されたときに、タッチフラグ７４ｉはオフされる。
【０２１２】
ステップＳ１１では、後述する場札更新処理（図２４−図２６）を実行し、ステップＳ１３では、ステップＳ５と同様に、タッチ中であるかどうかを判断する。ステップＳ１３で“ＹＥＳ”であれば、つまりタッチ中であれば、そのままステップＳ１７に進む。一方、ステップＳ１３で“ＮＯ”であれば、つまりタッチ中でなければ、ステップＳ１５で、プレイヤがタッチオンした場札の列の番号を示す変数Ｔｋに「０」を設定してから、ステップＳ１７に進む。
【０２１３】
ステップＳ１７では、ゲーム画面更新処理を実行する。詳細な説明は省略するが、ここでは、ＣＰＵコア３４は、カードデータ７４ｃに従って、すべてのカードオブジェクトＯＢＪをゲームフィールドに描画する。したがって、ゲーム画面（１００，２００）が更新される。
【０２１４】
また、上述したように、手札が無い場合には、ステップＳ３で“ＮＯ”となり、図１９に示すステップＳ１９で、タッチオンかどうかを判断する。つまり、ＣＰＵコア３４は、タッチオフの状態からタッチオンの状態に変化したかどうかを判断する。具体的には、ＣＰＵコア３４は、タッチフラグ７４ｉがオフであり、かつ、現在タッチ座標データ７４ｄとして座標データが記憶されるとともに、前回タッチ座標データ７４ｅとしてＮＵＬＬデータが記憶されているかどうかを判断する。
【０２１５】
ステップＳ１９で“ＹＥＳ”であれば、つまりタッチフラグ７４ｉがオフであり、かつ、現在タッチ座標データ７４ｄとして座標データが記憶されるとともに、前回タッチ座標データ７４ｅとしてＮＵＬＬデータが記憶されていれば、タッチオンであると判断して、ステップＳ２１で、後述するタッチオン操作処理（図２２参照）を実行して、図１８に示したステップＳ１１に進む。
【０２１６】
図示は省略するが、ステップＳ１９で“ＹＥＳ”と判断されると、タッチフラグ７４ｉはオンされる。
【０２１７】
一方、ステップＳ１９で“ＮＯ”であれば、つまりタッチフラグ７４ｉがオンであったり、タッチフラグ７４ｉはオフであるが、前回タッチ座標データ７４ｅとしてＮＵＬＬデータ以外の座標データが記憶されたり、タッチフラグ７４ｉはオフであるが、現在タッチ座標データ７４ｄとしてＮＵＬＬデータが記憶されたりしている場合には、タッチオンではないと判断して、ステップＳ２３で、ステップＳ５と同様に、タッチ中かどうかを判断する。
【０２１８】
ステップＳ２３で“ＮＯ”であれば、つまりタッチ中でなければ、そのままステップＳ１１に進む。一方、ステップＳ２３で“ＹＥＳ”であれば、つまりタッチ中であれば、ステップＳ２５で、後述するカード取得処理（図２３参照）を実行してから、ステップＳ１１に進む。
【０２１９】
なお、ステップＳ３からステップＳ１７までのスキャンタイムが１フレームである。したがって、ゲーム画面（１００，２００）が１フレーム毎に更新されるのである。
【０２２０】
図２０は、図１８に示したステップＳ７の手札更新処理のフロー図である。図２０に示すように、ＣＰＵコア３４は、手札更新処理を開始すると、距離データ７４ｆが示すＹ軸方向の距離Ｏｙが０より大きいかどうかを判断する。ここでは、ＣＰＵコア３４は、タッチ座標が手札のカードオブジェクトＯＢＪよりも上方であるかどうかを判断しているのである。
【０２２１】
ステップＳ４１で“ＮＯ”であれば、つまりＹ軸方向の距離Ｏｙが０以下であれば、そのままステップＳ４５に進む。一方、ステップＳ４１で“ＹＥＳ”であれば、つまりＹ軸方向の距離Ｏｙが０よりも大きければ、タッチ座標が手札のカードオブジェクトＯＢＪよりも上方であると判断して、ステップＳ４３で、距離ＯｙにＯｙ−Ｏｙ＊０．２５を設定して、ステップＳ４５に進む。つまり、ＣＰＵコア３４は、ステップＳ４３で、距離Ｏｙを２５％短くして、手札のカードオブジェクトＯＢＪをタッチ座標に近づけるようにしてある。
【０２２２】
ステップＳ４５では、距離Ｏｘが０より大きいかどうかを判断する。つまり、ＣＰＵコア３４は、タッチ座標が手札のカードオブジェクトＯＢＪよりも左側であるかどうかを判断しているのである。ステップＳ４５で“ＮＯ”であれば、つまり距離Ｏｘが０以下であれば、そのままステップＳ４９に進む。ステップＳ４５で“ＹＥＳ”であれば、つまり距離Ｏｘが０よりも大きければ、タッチ座標が手札のカードオブジェクトＯＢＪよりも左側であると判断して、ステップＳ４７で、距離ＯｘにＯｘ−Ｏｘ＊０．２５を設定して、ステップＳ４９に進む。上述したように、ステップＳ４７では、ＣＰＵコア３４は、距離Ｏｘを２５％短くして、手札のカードオブジェクトＯＢＪをタッチ座標に近づけるようにしてある。
【０２２３】
ステップＳ４９では、距離Ｏｘが−Ｗよりも小さいかどうかを判断する。ただし、上述したように、定数ＷはカードオブジェクトＯＢＪの横幅（ドット数）である。つまり、ＣＰＵコア３４は、タッチ座標が手札のカードオブジェクトＯＢＪよりも右側であるかどうかを判断しているのである。ステップＳ４９で“ＮＯ”であれば、つまり距離Ｏｘが−Ｗ以上であれば、そのままステップＳ５３に進む。一方、ステップＳ４９で“ＹＥＳ”であれば、つまり距離Ｏｘが−Ｗよりも小さければ、ステップＳ５１で、距離Ｏｘに、Ｏｘ−（Ｏｘ＋Ｗ）＊０．２５を設定して、ステップＳ５３に進む。つまり、ＣＰＵコア３４は、ステップＳ５１においても、距離Ｏｘを２５％短くして、手札のカードオブジェクトＯＢＪをタッチ座標に近づけるようにしてある。
【０２２４】
ステップＳ５３では、手札（１）の座標に、タッチ座標に距離（Ｏｘ，Ｏｙ）を加算した値を設定する。ここで、手札（１）は、すべての手札のカードオブジェクトＯＢＪのうち、最下層に配置されるカードオブジェクトＯＢＪである。ここでは、手札のカードオブジェクトＯＢＪの各々には、最下層から順に番号（１，２，…，Ｍ）が付されている。
【０２２５】
したがって、ステップＳ４１−ステップＳ５１に処理よって、タッチ座標と手札（１）とが離れている場合には、手札（１）が次第にタッチ座標に近づくように移動されるのである。
【０２２６】
次のステップＳ５５では、変数ｉに「２」を設定する。ここで、変数ｉは、手札のカードオブジェクトＯＢＪを個別に識別するために用いられる。続くステップＳ５７では、変数ｉが最大値Ｍ以下であるかどうかを判断する。ここで、最大値Ｍは、手札のカードオブジェクトＯＢＪの総数である。つまり、ＣＰＵコア３４は、ステップＳ５７で、手札のすべてのカードオブジェクトＯＢＪについての更新処理を終了したかどうかを判断するのである。
【０２２７】
ステップＳ５７で“ＮＯ”であれば、つまり変数ｉが最大値Ｍを超えていれば、手札のすべてのカードオブジェクトＯＢＪについての更新処理を終了したと判断して、そのままメイン処理にリターンする。一方、ステップＳ５７で“ＹＥＳ”であれば、つまり変数ｉが最大値Ｍ以下であれば、更新処理を実行していない手札のカードオブジェクトＯＢＪが存在すると判断して、ステップＳ５９で、手札（ｉ）の座標に、手札（ｉ）の座標＋（手札（ｉ−１）の座標＋（０，Ｓｏ）−手札（ｉ）の座標）＊０．２５を設定する。ただし、Ｓｏは、上述したＹ軸方向の最大間隔である。
【０２２８】
そして、ステップＳ６１で、変数ｉに１加算して、ステップＳ５７に戻る。つまり、次の手札のカードオブジェクトＯＢＪについての更新処理が実行されるのである。ただし、上述したように、次の手札のカードオブジェクトＯＢＪが無ければ、メイン処理にリターンする。
【０２２９】
このように、ステップＳ４１−Ｓ５１の処理によって、カードオブジェクトＯＢＪの外側をタッチしてカードオブジェクトＯＢＪを取得した場合に、タッチ座標にカードオブジェクトＯＢＪが移動してくることを実現している。このため、たとえば画面外にあるカードオブジェクトＯＢＪを取得した場合にも、取得したカードオブジェクトＯＢＪが画面内に移動してくるため、取得したカードオブジェクトＯＢＪを容易に識別したり、容易に操作したりすることができる。
【０２３０】
また、ステップＳ５７−Ｓ６１の処理によって、手札（ｉ（ここでは、２以上））のカードオブジェクトＯＢＪは、１つ下層のカードオブジェクトＯＢＪとの間の距離を所定の割合（２５％）で短くするように、当該１つ下層のカードオブジェクトＯＢＪを追従するのである。
【０２３１】
図２１は、図１８に示したステップＳ９のリリース処理のフロー図である。図２１に示すように、ＣＰＵコア３４は、リリース処理を開始すると、ステップＳ７１で、手札（１）から手札（Ｍ）を、手札として選択されたときにタッチオンされた場札（Ｔｋ，Ｎ（Ｔｋ）＋１）から場札（Ｔｋ，Ｎ（Ｔｋ）＋Ｍ）とする。つまり、リリース処理では、手札（１）から手札（Ｍ）を元の位置に戻すのである。ただし、Ｎ（Ｔｋ）は、すべての場札のカードオブジェクトＯＢＪのうち、タッチオンした列（ｋ）に在るカードオブジェクトＯＢＪの総数である。そして、ステップＳ７３で、変数Ｎ（Ｔｋ）に、Ｎ（Ｔｋ）＋Ｍを設定して、メイン処理にリターンする。つまり、ＣＰＵコア３４は、ステップＳ７３で、タッチオンされた列（ｋ）のカードオブジェクトＯＢＪの総数を、元に戻された手札のカードオブジェクトＯＢＪの数だけ加算して、更新しているのである。
【０２３２】
図２２は図１９に示したステップＳ２１のタッチオン操作処理のフロー図である。図２２に示すように、ＣＰＵコア３４は、タッチオン操作処理を開始すると、ステップＳ８１で、変数ｋに「１」を設定する。ただし、変数ｋは場札の列を識別するために用いられる。列の番号については上述したとおりである。
【０２３３】
次のステップＳ８３では、変数ｋが最大値Ｌ以下であるかどうかを判断する。つまり、ＣＰＵコア３４は、すべての列についてタッチオン操作の処理を実行したかどうかを判断するのである。ただし、最大値Ｌは、ゲームの種類や難易度で異なる。ステップＳ８３で“ＮＯ”であれば、つまり変数ｋが最大値Ｌを超えている場合には、すべての列についてタッチオン操作の処理を実行したと判断して、そのままメイン処理にリターンする。一方、ステップＳ８３で“ＹＥＳ”であれば、つまり変数ｋが最大値Ｌ以下である場合には、タッチオン操作の処理を実行していない列が存在すると判断して、ステップＳ８５で、変数ｉにＮ（ｋ）を設定する。ここで、変数ｉは列（ｋ）のカードオブジェクトＯＢＪを個別に識別するために使用され、Ｎ（ｋ）は列（ｋ）に存在するカードオブジェクトＯＢＪの総数である。
【０２３４】
続いて、ステップＳ８７で、変数ｉが０よりも大きいかどうかを判断する。ステップＳ８７で“ＮＯ”であれば、つまり変数ｉが０であれば、列（ｋ）にカードオブジェクトＯＢＪが存在しない、または、列（ｋ）のすべてのカードオブジェクトＯＢＪについてタッチオン操作の有無を判定したと判断して、ステップＳ８９で、変数ｋに、ｋ＋１を設定して、ステップＳ８３に戻る。つまり、ＣＰＵコア３４は、次の列（ｋ）についてのタッチオン操作の処理に移行する。
【０２３５】
一方、ステップＳ８７で“ＹＥＳ”であれば、つまり変数ｉが０よりも大きければ、ステップＳ９１で、タッチ座標が場札（ｋ，ｉ）に重なっているかどうかを判断する。ここでは、タッチ座標がカードオブジェクトＯＢＪの表示領域に含まれるかどうかを判断する。ただし、場札（ｋ，ｉ）は、列（ｋ）のｉ番目のカードオブジェクトＯＢＪを意味する。
【０２３６】
また、詳細な説明は省略するが、カードオブジェクトＯＢＪの表示位置（配置位置）およびその大きさはカードデータ７４ｃから分かるため、タッチ座標がカードオブジェクトＯＢＪ（場札（ｋ，ｉ））に重なるかどうかを簡単に調べることができる。
【０２３７】
また、場札としてのカードオブジェクトＯＢＪは、列毎に重なるように配置されているため、上層のカードオブジェクトＯＢＪと下層のカードオブジェクトＯＢＪとで表示領域も重なるが、この仮想ゲームのルール上、上層のカードオブジェクトＯＢＪが優先されるため、上層のカードオブジェクトＯＢＪから順に調べるようにしてある。
【０２３８】
ステップＳ９１で“ＮＯ”であれば、つまりタッチ座標が場札（ｋ，ｉ）に重なっていなければ、ステップＳ９３で、変数ｉに、ｉ−１を設定して、ステップＳ８７に戻る。つまり、ＣＰＵコア３４は、タッチ座標と１つ下層の（次の）カードオブジェクトＯＢＪとの重なりを判断するのである。
【０２３９】
一方、ステップＳ９１で“ＹＥＳ”であれば、つまりタッチ座標が場札（ｋ，ｉ）に重なっていれば、ステップＳ９５で、列（ｋ）においてフォーカス（タッチオン）された列（ｋ）のカードオブジェクトＯＢＪの番号Ｆ（ｋ）が０であるか、または、当該番号Ｆ（ｋ）が変数ｉよりも大きいかどうかを判断する。つまり、列（ｋ）において、現在フォーカスされているカードオブジェクトＯＢＪが存在しないか、現在フォーカスされているカードオブジェクトＯＢＪよりも、下層の（優先度の低い）カードオブジェクトＯＢＪのフォーカスが指示されたかどうかを判断しているのである。
【０２４０】
ステップＳ９５で“ＹＥＳ”であれば、つまり番号Ｆ（ｋ）が０である場合か、または、番号Ｆ（ｋ）が変数ｉよりも大きい場合には、ステップＳ９７で、番号Ｆ（ｋ）に、変数ｉの数値を設定して、ステップＳ９９に進む。つまり、当該列（ｋ）に現在フォーカスされているカードオブジェクトＯＢＪが無い場合には、今回のタッチオンによって、フォーカスされるカードオブジェクトＯＢＪが設定される。また、当該列（ｋ）に現在（既に）フォーカスされているカードオブジェクトＯＢＪが有る場合には、それよりも下層のカードオブジェクトＯＢＪがタッチされた場合に、フォーカスされているカードオブジェクトＯＢＪが更新される。
【０２４１】
一方、ステップＳ９５で“ＮＯ”であれば、つまり番号Ｆ（ｋ）が０で無く、しかも番号Ｆ（ｋ）が変数ｉ以下である場合には、そのままステップＳ９９に進む。ステップＳ９９では、フォーカスカウンタ７４ｊのカウント値Fcount(k)に「６０」を設定し、タッチオンされた列（ｋ）を記憶するための変数Ｔｋに当該列（ｋ）を、タッチオンされたカードを記憶するための変数Ｔｉに変数ｉの数値を設定して、メイン処理にリターンする。
【０２４２】
図２３は、図１９に示したステップＳ２５のカード取得処理のフロー図である。図２３に示すように、カード取得処理を開始すると、ステップＳ１１１で、変数Ｔｋが０であるかどうかを判断する。つまり、いずれの列（ｋ）のカードオブジェクトＯＢＪも（場札のカードオブジェクトＯＢＪが）タッチオンされていないかどうかを判断する。ステップＳ１１１で“ＹＥＳ”であれば、つまり変数Ｔｋが０であれば、いずれの列（ｋ）のカードオブジェクトＯＢＪもタッチオンされていないと判断して、そのままメイン処理にリターンする。
【０２４３】
しかし、ステップＳ１１１で“ＮＯ”であれば、つまり変数ＴＫが０でなければ、列（ｋ）のカードオブジェクトＯＢＪのいずれかがタッチオンされていると判断して、ステップＳ１１３で、前フレームのタッチ座標と、現フレームのタッチ座標との差が一定以上であるかどうかを判断する。具体的には、前回タッチ座標データ７４ｅが示すタッチ座標（前タッチ座標）と、現在タッチ座標データ７４ｄが示すタッチ座標（現タッチ座標）との差分（絶対値）を検出し、当該差分が一定値（一定の閾値）を超えているかどうかを判断する。ここで、一定値（一定の閾値）は、ドラッグ操作を開始したか否かを判断するための値であり、実験等によって経験的に得られた値が設定される。
【０２４４】
ステップＳ１１３で“ＮＯ”であれば、前タッチ座標と現タッチ座標との差分が一定未満であれば、ドラッグ操作を開始していないと判断して、そのままメイン処理にリターンする。一方、ステップＳ１１３で“ＹＥＳ”であれば、前タッチ座標と現タッチ座標との差分が一定以上であれば、ドラッグ操作を開始したと判断して、ステップＳ１１５で、変数ｉに、タッチオンされている列（ｋ）のカードオブジェクトＯＢＪの総数を設定する。
【０２４５】
続いて、ステップＳ１１７では、変数ｉがタッチオンされた場札（Ｔｋ，ｉ）の番号Ｔｉ以上であるかどうかを判断する。ステップＳ１１７で“ＮＯ”であれば、つまり変数ｉがタッチオンされた場札（Ｔｋ，ｉ）の番号Ｔｉ未満であれば、そのままステップＳ１２５に進む。一方、ステップＳ１１７で“ＹＥＳ”であれば、つまり変数ｉがタッチオンされた場札（Ｔｋ，ｉ）の番号Ｔｉ以上であれば、ステップＳ１１９で、タッチオンされた場札（Ｔｋ，ｉ）が手に取れるかどうかを判断する。つまり、ＣＰＵコア３４は、タッチオンされた場札（Ｔｋ，ｉ）が表向きであり、この実施例の仮想ゲームの所定のルールに違反していないかどうかを判断するのである。ただし、所定のルールは、上述したように、クロンダイクとスパイダーとで異なる。
【０２４６】
ステップＳ１１９で“ＹＥＳ”であれば、つまりタッチオンされた場札（Ｔｋ，ｉ）を手に取ることができる場合には、ステップＳ１２１で、変数ｉに、ｉ−１を設定して、ステップＳ１１７に戻る。つまり、当該列（ｋ）の下層の（次の）カードオブジェクトＯＢＪを手に取ることができるか否かが判断されるのである。一方、ステップＳ１１９で“ＮＯ”であれば、つまりタッチオンされた場札（Ｔｋ，ｉ）を手に取ることができない場合には、ステップＳ１２３で、変数ｉに、ｉ＋１を設定して、ステップＳ１２５に進む。ステップＳ１２３の処理により、手に取ることができると判断された１つ上層の（前の）カードオブジェクトＯＢＪに変数ｉが戻されるのである。
【０２４７】
ステップＳ１２５では、タッチオンされた列（ｋ）の場札（Ｔｋ，ｉ）から場札（Ｔｋ，Ｎ（Ｔｋ））までを、手札（１）から手札（Ｎ（Ｔｋ）−ｉ）として設定する。つまり、タッチ座標のＹ座標よりも下方であり、手に取ることができる１または連続的に重なっている複数のカードオブジェクトＯＢＪが手札として選択されるのである。したがって、上述したように、直接的にタッチオンしていないカードオブジェクトＯＢＪであっても、手札として自動的に選択することができるのである。
【０２４８】
なお、詳細な説明は省略するが、このとき、カードデータ７４ｃが更新される。上述したように、識別データにおいて、場札の情報は消去されずに、手札の情報が追加される。その後、カードオブジェクトＯＢＪが他の列に移動されると、手札の情報が消去され、場札の情報が更新される。
【０２４９】
続いて、ステップＳ１２７では、手札の総数Ｍに、Ｎ（Ｔｋ）−ｉを設定するとともに、列（ｋ）のカードオブジェクトＯＢＪの総数Ｎ（Ｔｋ）に、変数ｉの数値を設定する。そして、ステップＳ１２９で、距離（Ｏｘ，Ｏｙ）に、手札（１）の座標−タッチ座標（現タッチ座標）を設定して、メイン処理にリターンする。
【０２５０】
図２４−図２６は、図１８に示したステップＳ１１の場札更新処理のフロー図である。図２４に示すように、ＣＰＵコア３４は、場札更新処理を開始すると、ステップＳ１４１で、変数ｋに「１」を設定する。つまり、最初に、場札のうちの列（１）についての更新処理が実行される。続くステップＳ１４３では、変数ｋが最大値Ｌ以下であるかどうかを判断する。ここで、最大値Ｌは、場札の列（ｋ）の総数である。
【０２５１】
ステップＳ１４３で“ＮＯ”であれば、つまり変数ｋが最大値Ｌを超えていれば、すべての列（ｋ）についての更新処理を終了したと判断して、メイン処理にリターンする。一方、ステップＳ１４３で“ＹＥＳ”であれば、つまり変数ｋが最大値Ｌ以下であれば、更新処理を終了していない列（ｋ）が存在すると判断して、ステップＳ１４５で、タッチ中かどうかを判断する。このステップＳ１４５の処理は、上述したメイン処理のステップＳ５と同じであるため、詳細な説明は省略することにする。
【０２５２】
ステップＳ１４５で“ＹＥＳ”であれば、つまりタッチ中であれば、そのままステップＳ１５３に進む。一方、ステップＳ１４５で“ＮＯ”であれば、つまりタッチ中でなければ、ステップＳ１４７で、カウント値Fcount(k)に、Fcount(k)−１を設定し、ステップＳ１４９で、カウント値Fcount(k)が０以下であるかどうかを判断する。つまり、フォーカスされている一定時間（６０フレーム）が経過したかどうかが判断される。
【０２５３】
ステップＳ１４９で“ＮＯ”であれば、つまりカウント値Fcount(k)が０よりも大きければ、フォーカスされている一定時間が経過していないと判断して、そのままステップＳ１５３に進む。一方、ステップＳ１４９で“ＹＥＳ”であれば、つまりカウント値Fcount(k)が０以下であれば、フォーカスされている一定時間が経過したと判断して、ステップＳ１５１で、変数Ｆ（ｋ）に「０」を設定して、ステップＳ１５３に進む。ただし、変数Ｆ（ｋ）は、フォーカス（タッチオン）されている列（ｋ）を示すために用いられる。
【０２５４】
ステップＳ１５３では、変数ｉに「１」を設定するとともに、変数ｙに「Ｙ１」を設定する。ここで、変数ｉは、当該列（ｋ）内のカードオブジェクトＯＢＪを識別するために用いられる。また、変数ｙは重なり合うカードオブジェクトＯＢＪのＹ座標間隔ａを設定するために用いられる。さらに、定数Ｙ１は、場札の列（ｋ）において、最下層のカードオブジェクトＯＢＪの原点Ｐ（左上の頂点）が配置されるべき位置のワールド座標系におけるＹ座標である。
【０２５５】
図２５に示すように、次のステップＳ１５５では、変数ｉが最大値Ｎ（ｋ）以下であるかどうかを判断する。つまり、当該列（ｋ）のすべてのカードオブジェクトＯＢＪについて更新処理を実行したかどうかが判断される。ステップＳ１５５で“ＮＯ”であれば、つまり変数ｉが最大値Ｎ（ｋ）よりも大きければ、当該列（ｋ）のすべてのカードオブジェクトＯＢＪについての更新処理を実行したと判断して、図２６に示すステップＳ１７１に進む。一方、ステップＳ１５５で“ＹＥＳ”であれば、つまり変数ｉが最大値Ｎ（ｋ）以下であれば、更新処理を実行していないカードオブジェクトＯＢＪが当該列（ｋ）に存在すると判断して、ステップＳ１５７で、場札（ｋ，ｉ）が裏向きであるかどうかを判断する。つまり、ＣＰＵコア３４は、カードデータ７４ｃを参照して、当該場札（ｋ，ｉ）の状態判別フラグがオフであるかどうかを判断するのである。
【０２５６】
ステップＳ１５７で“ＮＯ”であれば、つまり場札（ｋ，ｉ）が表向きであれば、図２６に示すステップＳ１６３に進む。一方、ステップＳ１５７で“ＹＥＳ”であれば、つまり場札（ｋ，ｉ）が裏向きであれば、ステップＳ１５９で、場札（ｋ，ｉ）のＹ座標に、場札（ｋ，ｉ）のＹ座標＋（ｙ−場札（ｋ，ｉ）のＹ座標）＊０．２５を設定する。そして、ステップＳ１６１で、変数ｙに、ｙ＋Ｓｃを設定するとともに、変数ｉに、ｉ＋１を設定して、ステップＳ１５５に戻る。ただし、定数Ｓｃは、裏向きのカードオブジェクトＯＢＪのＹ座標間隔である。
【０２５７】
上述したように、場札（ｋ，ｉ）が表向きであれば、ステップＳ１５７で“ＮＯ”となり、図２６に示すステップＳ１６３で、変数ａに、（Ｙ２−ｙ）／（Ｎ（ｋ）−ｉ−１）を設定する。ここで、変数ａは、上述したように、表向きのカードオブジェクトＯＢＪのＹ座標間隔であり、定数Ｙ２は、場札の表示領域（１０２，２０２）の下端のＹ座標である。つまり、ＣＰＵコア３４は、ステップＳ１６３で、場札の表示領域（１０２，２０２）のＹ軸方向の長さから裏向きのカードオブジェクトＯＢＪを表示するためのＹ軸方向の長さを引いた長さ（Ｙ２−ｙ）を、表向きのカードオブジェクトのＹ座標間隔ａが均等になるように分けているのである。
【０２５８】
次のステップＳ１６５では、変数ａが最大間隔Ｓｏよりも大きいかどうかを判断する。ステップＳ１６５で“ＮＯ”であれば、つまり変数ａが最大間隔Ｓｏ以下であれば、そのままステップＳ１６９に進む。一方、ステップＳ１６５で“ＹＥＳ”であれば、つまり変数ａが最大間隔Ｓｏよりも大きければ、ステップＳ１６７で、変数ａに、最大間隔Ｓｏを設定して、ステップＳ１６９に進む。つまり、Ｙ座標間隔ａが最大間隔Ｓｏを超えないように補正（制限）されるのである。
【０２５９】
ステップＳ１６９では、ステップＳ１５５と同様に、変数ｉが最大値Ｎ（ｋ）以下であるかどうかを判断する。ステップＳ１６９で“ＮＯ”であれば、つまり変数ｉが最大値Ｎ（ｋ）を超えると、ステップＳ１７１で、変数ｋに、ｋ＋１を設定して、図２４に示したステップＳ１４３に戻る。つまり、次の列（ｋ）についての更新処理が実行される。
【０２６０】
しかし、ステップＳ１６９で“ＹＥＳ”であれば、つまり変数ｉが最大値Ｎ（ｋ）以下であれば、ステップＳ１７３で、変数Ｆ（ｋ）と変数ｉが等しいかどうかを判断する。つまり、着目するカードオブジェクトＯＢＪが、フォーカスされているカードオブジェクトＯＢＪであるかどうかが判断される。ステップＳ１７３で“ＮＯ”であれば、つまり変数Ｆ（ｋ）と変数ｉとが等しくなければ、そのままステップＳ１７７に進む。一方、ステップＳ１７３で“ＹＥＳ”であれば、つまり変数Ｆ（ｋ）と変数ｉとが等しければ、Ｙ座標間隔ａを最大間隔Ｓｏに設定して、ステップＳ１７７に進む。
【０２６１】
ステップＳ１７７では、ステップＳ１５９と同様に、場札（ｋ，ｉ）Ｙ座標に、場札（ｋ，ｉ）のＹ座標＋（ｙ−場札（ｋ，ｉ）のＹ座標）＊０．２５を設定する。そして、ステップＳ１７９で、変数ｙに、ｙ＋ａを設定するとともに、変数ｉに、ｉ＋１を設定して、ステップＳ１６９に戻る。
【０２６２】
この実施例によれば、プレイヤがカードオブジェクトをタッチオンしたときに、下層のカードオブジェクトの内容が見えるように、カードオブジェクトを移動させるので、表示画面の大きさに制限されることなく、カードオブジェクトの内容を容易に知ることができる。また、表示画面の大きさに起因して、カードオブジェクトの総数が制限されたり、カードオブジェクトの表示数が制限されたりすることがない。
【０２６３】
なお、この実施例では、プレイヤがタッチオンしたカードオブジェクトよりも上層のカードオブジェクトを下方向（ワールド座標のＹ軸のプラス方向）に移動させることにより、下層のカードオブジェクトの露出量を増加させて、そのマークおよび文字が見えるようにしたが、これに限定される必要はない。下層のオブジェクトを上方向（ワールド座標のＹ軸のマイナス方向）に移動させてもよいし、上層および下層のオブジェクトを上下方向で互いに逆の向きに移動させてもよい。または、上層のカードオブジェクトを、右方向（ワールド座標のＸ軸のプラス方向）や左方向（ワールド座標のＸ軸のマイナス方向）に移動させてもよいし、上層および下層のオブジェクトを左右方向で互いに逆向きに移動させてもよい。さらには、上層または下層のオブジェクトを、上下左右のいずれかの方向または斜め方向に移動させてもよいし、上層および下層のカードオブジェクトを、上下左右のいずれかの方向または斜め方向で互いに逆向きまたは互いに離れる方向に移動させてもよい。
【０２６４】
また、この実施例では、ゲーム装置を用いて、トランプゲームをプレイする場合のカードオブジェクトの表示制御について説明したが、これに限定される必要はない。表示画面に複数のオブジェクトが表示される場合に、ユーザの指示に従って、下層のオブジェクトの内容が見えるように、上層または下層のオブジェクトをずらす点に着目されたい。つまり、この実施例では、情報処理プログラムの一例としてゲームプログラムが実行される場合について示したが、これに限定されるべきではない。
【０２６５】
さらに、この実施例では、タッチオンされたカードオブジェクトを含み、その上層のすべてのカードオブジェクトのＹ座標間隔が最大間隔になるように、カードオブジェクトを移動させるようにしたが、これに限定されるべきではない。たとえば、タッチオンされたカードオブジェクトの種類のみが見えるように、それより上層のすべてのカードオブジェクトをまとめて移動させるようにしてもよい。また、タッチオンされたカードオブジェクトおよびその近辺（前後数枚または上層あるいは下層の数枚）のカードオブジェクトのＹ座標間隔だけを最大間隔にするように移動させるようにしてもよい。または、タッチオンしたカードオブジェクトが属する列のすべてのカードオブジェクト（表向きのカードオブジェクトのみでも可）のＹ座標間隔が最大間隔になるように、カードオブジェクトを移動させるようにしてもよい。
【０２６６】
さらにまた、この実施例では、トランプゲームのルールに従うため、選択可能なカードオブジェクトは、そのルールに従って重なっているカードオブジェクトとしたが、これに限定される必要はない。タッチオンされたオブジェクトと同じ属性を有しているような関連するオブジェクトが選択されてもよい。たとえば、オブジェクトの属性としては、実施例におけるマーク（色、模様）や数字のみならず、オブジェクトの形状や大きさなども含む。
【０２６７】
また、タッチオンされたオブジェクトと所定の関係を有する位置に配置されたオブジェクトが関連するオブジェクトとして選択されてもよい。たとえば、タッチオンされたオブジェクトの位置を１つの頂点とした場合に、正三角形や正方形のような所定の図形を形成するような位置に配置されたオブジェクトが選択されたり、所定の点を中心とした場合に、タッチオンされたオブジェクトと点対称や線対称となる位置に配置されているオブジェクトが選択されたりしてもよい。
【０２６８】
さらに、この実施例では、タッチオン操作によりカードオブジェクトがフォーカスされると、タッチオフ操作後に、一定時間（６０フレーム）が経過すると、Ｙ座標間隔が最大間隔に移動されていたすべてのカードオブジェクトを元の位置に戻すようにしたが、タッチオフ操作後、直ぐに元の位置に戻すようにしてもよい。
【０２６９】
また、ゲーム装置の構成は、上述の実施例の構成に限定されるべきでない。たとえば、ＬＣＤは１つでもよく、タッチパネルは２つのＬＣＤのそれぞれに設けるようにしてもよい。
【符号の説明】
【０２７０】
１０  …ゲーム装置
１２，１４  …ＬＣＤ
１６，１６ａ，１６ｂ  …ハウジング
２２  …操作スイッチ
２４  …タッチパネル
２６  …スティック
２８  …メモリカード
２８ａ  …ＲＯＭ
２８ｂ，４２  …ＲＡＭ
３４  …ＣＰＵコア
３６ａ，３６ｂ  …スピーカ
４４，４６  …ＧＰＵ
４８  …Ｉ／Ｆ回路
５０  …ＬＣＤコントローラ
５２，５４  …ＶＲＡＭ
【図１】
2010170290.tif 000003
【図２】
2010170290.tif 000004
【図３】
2010170290.tif 000005
【図４】
2010170290.tif 000006
【図５】
2010170290.tif 000007
【図６】
2010170290.tif 000008
【図７】
2010170290.tif 000009
【図８】
2010170290.tif 000010
【図９】
2010170290.tif 000011
【図１０】
2010170290.tif 000012
【図１１】
2010170290.tif 000013
【図１２】
2010170290.tif 000014
【図１３】
2010170290.tif 000015
【図１４】
2010170290.tif 000016
【図１５】
2010170290.tif 000017
【図１６】
2010170290.tif 000018
【図１７】
2010170290.tif 000019
【図１８】
2010170290.tif 000020
【図１９】
2010170290.tif 000021
【図２０】
2010170290.tif 000022
【図２１】
2010170290.tif 000023
【図２２】
2010170290.tif 000024
【図２３】
2010170290.tif 000025
【図２４】
2010170290.tif 000026
【図２５】
2010170290.tif 000027
【図２６】
2010170290.tif 000028