(57)【特許請求の範囲】
【請求項１】
第１のオブジェクトを１つ以上の他のオブジェクトに関連して操作することを可能にするシステムであって、前記システムは、
コンピュータと、
前記コンピュータに動作可能に結合されたコンピュータ読み取り可能な媒体と
を備え、
前記コンピュータ読み取り可能な媒体は、機能を実行することを前記コンピュータに行わせるプログラムコードを記憶し、前記機能は、
前記他のオブジェクトの各々が、幾何学形状を有し、かつ、前記幾何学形状の向きで配列され、かつ、任意の他のオブジェクトに対して重複していないように、前記１つ以上の他のオブジェクトをディスプレイ上に表示することと、
前記第１のオブジェクトを前記ディスプレイ上の第１の位置に表示することであって、前記第１のオブジェクトは、幾何学形状を有し、かつ、前記幾何学形状の第１の向きで配列される、ことと、
前記第１のオブジェクトおよび前記１つ以上の他のオブジェクトのための形式以外の形式で、単一の最良の目的位置および向き候補を表示することであって、前記形式は、色、陰影、透明度、テクスチャ、パターニングのうちの少なくとも１つを含み、１つ以上の目的位置および向き候補は表示されない、ことと、
前記第１のオブジェクトの前記単一の最良の目的位置および向き候補を選択するためにユーザ入力をユーザから受信することであって、前記ユーザ入力は、前記目的位置に関連付けられた前記ディスプレイの一部分を選択することを含む、ことと、
前記ユーザ入力に応答して、前記第１のオブジェクトを移動させることにより、前記目的位置および向きに前記第１のオブジェクトを位置決めおよび向き決めすることと
を含む、システム。
【請求項２】
前記最良の目的位置および向き候補は、前記第１のオブジェクトの前記第１の位置に隣接していない、請求項１に記載のシステム。
【請求項３】
前記第１のオブジェクトは、前記位置決めおよび向き決めした後、前記目的位置および向きで回転することができない、請求項１に記載のシステム。
【請求項４】
前記コンピュータは、前記第１のオブジェクトが最初に表示されたときからの、前記第１のオブジェクトを操作するための時間制限を設定することを含む機能を実行する、請求項１に記載のシステム。
【請求項５】
前記コンピュータは、ある移動速度で、前記第１のオブジェクトを前記ディスプレイ上を第１の位置から第２の位置に向かって移動させることを含む機能を実行する、請求項４に記載のシステム。
【請求項６】
前記時間制限は、前記第１のオブジェクトの前記移動速度および前記ディスプレイ上の前記第２の位置に基づいている、請求項５に記載のシステム。
【請求項７】
前記幾何学形状は、テトロミノ、トリミノ、ペントミノ、ポリオミノのうちの少なくとも１つを含む、請求項１に記載のシステム。
【請求項８】
第１のオブジェクトを１つ以上の他のオブジェクトに関連して操作することを可能にする方法であって、前記方法は、
前記他のオブジェクトの各々が、幾何学形状を有し、かつ、前記幾何学形状の向きで配列され、かつ、任意の他のオブジェクトに対して重複していないように、前記１つ以上の他のオブジェクトをディスプレイ上に表示することと、
前記第１のオブジェクトを前記ディスプレイ上の第１の位置に表示することであって、前記第１のオブジェクトは、幾何学形状を有し、かつ、前記幾何学形状の第１の向きで配列される、ことと、
前記第１のオブジェクトおよび前記１つ以上の他のオブジェクトのための形式以外の形式で、単一の最良の目的位置および向き候補を表示することであって、前記形式は、色、陰影、透明度、テクスチャ、パターニングのうちの少なくとも１つを含み、１つ以上の目的位置および向き候補は表示されない、ことと、
前記第１のオブジェクトの前記単一の最良の目的位置および向き候補を選択するためにユーザ入力をユーザから受信することであって、前記ユーザ入力は、前記目的位置に関連付けられた前記ディスプレイの一部分を選択することを含む、ことと、
前記ユーザ入力に応答して、前記第１のオブジェクトを移動させることにより、前記目的位置および向きに前記第１のオブジェクトを位置決めおよび向き決めすることと
を含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、米国仮特許出願第６１／４７０，３５４号（２０１１年３月３１日出願、名称「Ｓｙｓｔｅｍｓ  ａｎｄ  Ｍｅｔｈｏｄｓ  ｆｏｒ  Ｍａｎｉｐｕｌａｔｉｏｎ  ｏｆ
Ｏｂｊｅｃｔｓ」）の利益および優先権を主張し、この出願の内容全体が参照することによって本明細書に援用される。
【０００２】
本願は、概して、様々な形状および／またはサイズのオブジェクトを操作するためのシステムおよび方法に関する。より具体的には、種々の側面において、本システムおよび方法は、リアルタイムまたは略リアルタイムで、オブジェクトが第１の場所から第２の場所まで移動するとき、１つ以上のオブジェクトの場所および／または向きを操作する。
【背景技術】
【０００３】
既存の製造、包装、および配布システムは、オブジェクトの配布および保管を可能にする。例えば、空港の手荷物配布システムは、飛行機と空港のチェックインまたは手荷物受取施設との間で、種々の形状およびサイズの手荷物を追跡して配布する。パッケージ配送サービスプロバイダは、種々の形状およびサイズのパッケージを受け取り、保管し、次いで、種々の目的地に配布する。しかしながら、これらの配布および保管システムは、様々な形状および／またはサイズを有するオブジェクトの効率的な保管または梱包のための方法を提供しない。
【０００４】
２次元の仮想的なオブジェクトを含む他のシステムが存在する。電子パズルゲームは、仮想オブジェクトを含むパズル解決を強調する電子ゲームのジャンルである。解決されるべきパズルの種類は、論理、戦略、パターン認識、シーケンス解決、および単語完成を含む、多くの問題解決技能をテストすることができる。
【発明の概要】
【課題を解決するための手段】
【０００５】
オブジェクトを操作するための開示されたシステムおよび方法の技術的能力を例示するために次の側面が以下で説明される。
【０００６】
オブジェクトは、２次元オブジェクトまたは３次元オブジェクトであってもよい。２次元オブジェクトは、限定ではないが、コンピュータおよび／または電子デバイススクリーン上で表現されるオブジェクト等の仮想オブジェクトであってもよい。３次元オブジェクトは、仮想または実在オブジェクトを含んでもよい。実在３次元オブジェクトは、限定ではないが、任意の消費者製品、家庭用製品、自動車、パッケージ、コンテナ、または任意のサイズあるいは形状のアイテム等の任意のアイテムを含んでもよい。２次元または３次元オブジェクトは、任意の形状または構成を成してもよい。場合によっては、制御インターフェースは、仮想３次元オブジェクトの操作を制御することによって、ユーザおよび／またはシステムが実在３次元オブジェクトの操作を制御することを可能にするために、実在３次元オブジェクトを表す仮想３次元オブジェクトを利用してもよい。
【０００７】
ある実装において、動作が、２次元または３次元オブジェクトを含む任意の種類のオブジェクトの操作に適用される。例えば、システムおよび／または方法が、アイテムまたはパッケージ配布システム、包装システム、および／または保管システムを強化するように実装されてもよい。第１の場所から第２の場所まで移動しながら、リアルタイムまたは略リアルタイムでオブジェクトが操作を必要とする任意のシステムが、よりコンパクトな方式で、種々の形状およびサイズを有するアイテムの効率的な配列を可能にする制御システムによって強化されてもよい。例えば、本明細書で説明される操作プロセスを使用する制御システムは、オブジェクトがコンテナまたは保管場所へ移動させられるにつれて、ユーザ（または自動コンピュータプログラム）がオブジェクトのサイズおよび形状を分析することを可能にし、次いで、オブジェクトが保管コンテナまたは場所の中で他のオブジェクトに隣接して最適に配置されるように、オブジェクトの場所および／または向きを操作してもよい。このアプローチは、限定ではないが、小さい郵便パッケージから貨物船の保管船倉またはそれより大きいものまでを含む、一連のコンテナ等の任意のサイズまたは形状の包装またはコンテナの中のオブジェクトの保管に適用されてもよい。
【０００８】
種々の側面では、本システムおよび方法は、マウスまたは遠隔制御デバイス等のポインティングデバイスを使用してパズルゲームで遊ぶ、ならびにパズルゲームと相互作用するためのポインティングデバイスの使用と関連付けられる付加的なゲーム制御機構およびプロセスを提供するための能力をユーザに提供する。いくつかの構成において、タッチスクリーンは、ユーザのタッチを追跡するカーソルを提供する、Ｗｉｎｄｏｗｓ（登録商標）またはＭＡＣ（登録商標）ＯＳＸ用のタッチスクリーン等の従来のポインティングデバイスとして機能することができる。しかしながら、他の構成において、ユーザのタッチを追跡するカーソルを提供する代わりに、タッチスクリーン（例えば、ｉＰｈｏｎｅ（登録商標）スクリーン）上のユーザのタッチを介して、ユーザがオブジェクトおよび／または他の機能を直接操作することを可能にする、タッチスクリーンが採用されてもよい。本明細書のシステム、デバイス、および方法は、両方の種類のタッチスクリーンをサポートする。さらに、本システム、デバイス、および方法は、多項選択型のプレイスタイルをサポートしてもよく、他の入力の方法は、カメラベースの視線／凝視追跡、ＥＥＧベースの思考制御（ＮｅｕｒｏＳｋｙ（登録商標）ハードウェア等）、カメラベースの身体運動およびジェスチャ追跡（Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｋｉｎｅｃｔ等）、複数の選択肢のうちの１つを直接選択するボタン（限定ではないが、ゲームセンターの機械またはクイズ番組のブザー等）、またはマイクロホンベースの音声コマンドを含んでもよい。
【０００９】
一側面では、ユーザは、種々の幾何学形状またはピースの形態で２次元仮想オブジェクトを操作することを許可される。各オブジェクトおよび／またはピースは、部品が蓄積するプレイフィールドの底部に向かって下向きに移動する。随意に、ピースは、システム構成に応じて、任意の向きに移動することを許可されてもよい。ユーザは、一直線にプレイフィールドを横断して水平線を作成するためにピースを横向きに移動させること、および／または９０度回転させることによってそれを操作することができる。ピースの形態は、限定ではないが、正方形、長方形、三角形、四辺形、Ｉ字形、Ｊ字形、Ｌ字形、Ｏ字形、Ｓ字形、Ｚ字形、およびＴ字形に類似してもよい。特定の種類の幾何学形状の各ピースが、回転させられてもよい。例えば、Ｉ字形のピースは、垂直方向および水平方向といった２つの明確に異なる向きのピースを生成するように４回転させられてもよい。別の実施例として、Ｔ字形のピースは、４つの明確に異なる向きのピースを生成するために４回転させられてもよい。Ｏ字形のピースもまた、各向きのピースが相互に同一であることを除いて、４回転させられてもよい。「可能な向き」および「向きのピース」は、幾何学形状の明確に異なる向きを指すために以降で使用される。例えば、Ｉ字形の全ての可能な向きは、形状と関連付けられる２つの明確に異なる向きである。例えば、Ｔ字形の全ての可能な向きは、形状と関連付けられる４つの明確に異なる向きである。
【００１０】
例示的なパズルゲームは、概して、セルを備える２次元グリッドでマップされる、プレイフィールドを有する。これらのセルは、種々のサイズおよび形状を有する。例えば、図３−１２では、セルは、正方形である。別の実施例として、図１２では、セルは、円形である。各ピースの中の正方形は、セルと同一のサイズである。この例示的なパズルゲームでは、プレイフィールド領域のあるセルは、例示的なパズルゲームの開始時に、一列以上の部分的に埋められたセルを備える。プレイフィールド領域の部分的に埋められた部分は、概して、ベースと呼ばれる。いくつかの他の実装において、いずれのセルも、例示的なパズルゲームの開始時に領域中で埋められておらず、ユーザが空白セルを埋めるように、あるピースを割り付けることができる。いったん一列のセルが完全に埋められると、消去され、それにより、ベースの高さを低くする。
【００１１】
この例示的なパズルゲーム、または例示的なパズルゲームのセッションの開始時に、本システムは、自動的にデフォルトピースをユーザに提供する。以下の論議については、プレイフィールド内の特定の位置にピースが配置された後のベースの、その中に含有された、任意の埋められたセルおよび／または空白セルを含む、列の数は、「成果」と呼ばれる。各成果は、ユーザまたはゲームシステムのうちのいずれかが成果に達するために講じる１つ以上のステップと関連付けられる。例えば、ユーザは、所与のピースを配置するためにベース上の位置を選択することによって、第１のステップを講じてもよい。後続のステップにおいて、ユーザは、ピースを回転させることによって、選択された位置のための部品の特定の向きを選択してもよい。デフォルトピースがユーザに提供されるときから、ある成果に達するようにピースが配置されるときまでの一連のステップは、集合的に「移動」と呼ばれる。
【００１２】
例示的なパズルゲームは、典型的には、キーボードまたはマルチボタン入力デバイスを使用して遊ばれる。しかしながら、これは、通常、例示的なパズルゲームと相互作用するための少なくとも３つの独特なボタンの使用を必要とし、そのうちの２つは、典型的には、落下ピースの水平移動を制御するために必要とされ、第３のボタンは、典型的には、ピースを回転させるために必要とされる。時間制約下で複数のボタンを協調させることにより、ゲームの困難度を増加させ、あるユーザ、例えば、初心者にとっては望ましくない場合がある。それはまた、ユーザを、キーボード等のいくつかのボタンまたは入力を伴う入力デバイスのみに限定する。
【００１３】
したがって、キーボード以外の入力デバイスを使用して、ユーザが電子デバイス上に表示されるオブジェクトを移動させることを可能にする必要性が、当技術分野で存在している。ポインティングデバイス制御パズルゲームシステムのための付加的な制御機構およびプロセスを実装するための別の必要性も存在している。種々の他のプラットフォームおよびシステムに容易に適合させる、またはそれらの上で実装することができる、パズルゲームアプリケーション等のアプリケーションへのインターフェースを設計するさらなる必要性が存在している。
【００１４】
開示されたシステム、方法、およびデバイスは、種々の実装において、マウスまたはタッチスクリーン等のポインティングデバイスを使用して、電子デバイス上の任意のアプリケーションおよび／または任意のパズルゲームのオブジェクトを操作する、ならびにパズルゲームを制御するためのポインティングデバイスの使用と関連付けられる付加的な制御機構およびプロセスを提供するための能力をユーザに提供することによって、従来技術における欠陥に対処する。
【００１５】
一側面では、ユーザが、選択されたピースのセルをクリックすること、またはセル上でホバーすることによる、マウス制御を使用して、パズルピースを選択することができる。ユーザは、クリックを解放することなく続けることによって、双向きおよび／または仮想プレイフィールド上の所望の場所へ選択されたピースをドラッグすることができる。選択されたピースは、マウスの移動に従い、ベースより上側の所望される空白セルの上に選択されたピースを移動させた後に、マウスのクリックを解放することによって、ユーザによって配置またはドロップすることができる。本システムは、随意に、マウスで制御されたゲームプレイ中に、ユーザを支援するための付加的なプロセスを含んでもよい。一実装において、本システムは、ユーザがプレイフィールド領域中で１つ以上のセルを選択することに応じて、特定の幾何学形状のピースによって埋められ得る全ての可能なセルの座標を決定する。決定された座標に基づいて、本システムは、プレイフィールド上に潜在的に埋められるセルをマップする。マッピングに基づいて、ユーザは、ピースの特定の向きを含む、ピースの正確な移動を決定することができる。別の実装において、本システムは、所与のピースのいくつかの非重複移動または利用可能な移動を決定することができる。最良の移動の成果に対応するセルのマッピングが、ユーザに提供される。最良の成果に対応する種々のマッピングに基づいて、ユーザは、選択されたマッピングにおいてセルのうちの１つを選択することによって、所望の移動を選択することができる。
【００１６】
したがって、本システムは、残りのセルを埋めるように、最良の移動と関連付けられるその最適向きでピースを配置する。最良の移動と関連付けられるその最適の向きのピースは、以降で「最良のピース」と呼ばれる。さらに別の実装において、ユーザは、最良の移動と関連付けられるマッピング外でセルを選択するオプションを提供される。加えて、本システムはまた、選択されたセルの最良の移動を決定することもでき、ユーザのために、選択されたセルを埋めるように、その関連する最良のピースを自動的に配置する。前述の実装について、本システムは、加えて、戦略的に使用されたとき、ユーザがベースの中の１列以上のセルを消去すること等、ゲームでさらに前進することをピースが手伝うことができるように、ユーザのために、最良適合ピースまたは救済ピースを決定してもよい。
【００１７】
別の側面では、システムは、システムおよび／または携帯用電子デバイス上でアプリケーションを実行するためのプロセッサを含む。プロセッサは、ディスプレイを介してオブジェクトを表示することを含む、ある機能、アプリケーション、および／またはルーチンをプロセッサに実行させる、プログラムコードを有する非一過性のコンピュータ可読媒体にアクセスし、および／またはそれを利用してもよい。オブジェクトは、特定の幾何学形状を有し、幾何学形状の第１の向きで配列されてもよい。プロセッサは、第２の向きを含む、オブジェクトの１つ以上の向きを決定してもよい。１つ以上の向きは、オブジェクトに利用可能である可能な目的向きに基づいて決定されてもよい。プロセッサは、少なくとも、幾何学形状の第２の向きをオブジェクトに近接して表示してもよい。本システムおよび／またはデバイスは、オブジェクトの幾何学形状の第２の向きを選択して、選択された第２の向きに合致するようにユーザ入力を受信する、ユーザインターフェースおよび／またはユーザ入力デバイスを含んでもよい。次いで、ディスプレイおよび／またはインターフェースと通信しているプロセッサは、選択された第２の向きに合致するようにオブジェクトの幾何学形状の向きを配列してもよい。
【００１８】
さらなる側面では、システムおよび／またはデバイスが、第１のオブジェクトを１つ以上の他のオブジェクトに関連して操作するために使用されてもよい。本システムは、コンピュータに動作可能に連結されるコンピュータ可読媒体を使用するコンピュータを含んでもよい。コンピュータ可読媒体は、他のオブジェクトの各々が、他のオブジェクトのうちの少なくとも別のオブジェクトに隣接して配列されるように、ディスプレイ上で１つ以上の他のオブジェクトを表示する機能、アプリケーション、および／またはサブルーチンをコンピュータに実行させる、プログラムコードを記憶してもよい。他のオブジェクトの各々は、幾何学形状を有し、幾何学形状の特定の向きで配列されてもよい。１つ以上の他のオブジェクトの各々は、任意の他のオブジェクトに対して重複しないように配列されてもよい。一実装によれば、プロセッサは、第１のオブジェクトが幾何学形状を有し、その幾何学形状の第１の向きで配列される、ディスプレイ上の第１の位置で第１のオブジェクトを表示する。プロセッサは、第１のオブジェクトの目的位置および向きを選択するように、ユーザインターフェースおよび／またはユーザ入力デバイスを介してユーザ入力を受信してもよく、目的位置は、他の１つ以上の他のオブジェクトのうちの少なくとも１つに隣接する。第１のオブジェクトは、他のオブジェクトのうちのいずれか１つに対して重複していなくてもよい。ユーザ入力に応じて、プロセッサは、目的位置および向きでオブジェクトを位置決定および向き決定する。目的位置および向きおよび／または目的位置および向きの候補はまた、成果とも呼ばれる。
【００１９】
ここで、類似の参照指定が異なる図の全体を通して同一の部品を指す、以下の図面を参照して、本発明の先述および他の目的、特徴、利点、プロセス、および例示的実装を説明する。これらの図面は、必ずしも一定の縮尺ではなく、代わりに、本システムおよび方法によって提供される原理および技術的特徴を図示することに重点が置かれている。図３−１２で描写される種々のゲームオブジェクト等のゲームのグラフィックスおよび視覚表現、ならびにこれらのグラフィックスと関連付けられる説明は、純粋に例示的である。開示されたシステムおよび方法は、任意の他の種類のゲームのために同等に好適であり、それと関連付けられる任意のグラフィックスを描写することが可能である。
本発明は、例えば、以下を提供する。
（項目１）
オブジェクトを操作するための方法であって、該方法は、
該オブジェクトをディスプレイを介して表示することであって、該オブジェクトは、幾何学形状を有し、該幾何学形状の第１の向きで配列される、ことと、
少なくとも該幾何学形状の第２の向きを該オブジェクトに近接して表示することと、
該幾何学形状の該第２の向きを選択するためのユーザ入力を受信することと、
該選択された第２の向きに合致するように、該オブジェクトの該幾何学形状の向きを配列することと
を含む、方法。
（項目２）
前記オブジェクトが最初に表示されたときからの、該オブジェクトを操作するための時間制限を設定することを含む、項目１に記載の方法。
（項目３）
ある移動速度で、前記オブジェクトを前記ディスプレイ上を第１の位置から第２の位置に向かって移動させることを含む、項目２に記載の方法。
（項目４）
前記時間制限は、前記オブジェクトの前記移動速度および前記ディスプレイ上の前記第２の位置に基づいている、項目３に記載の方法。
（項目５）
前記第２の向きを含む前記オブジェクトの１つ以上の向きを決定することを含む、項目１に記載の方法。
（項目６）
前記幾何学形状は、２次元である、項目１に記載の方法。
（項目７）
前記幾何学形状は、テトロミノ、トリミノ、ペントミノ、およびポリオミノのうちの少なくとも１つを含む、項目６に記載の方法。
（項目８）
前記幾何学形状は、３次元である、項目１に記載の方法。
（項目９）
前記幾何学形状の全ての可能な向きを前記オブジェクトに近接して表示することを含む、項目１に記載の方法。
（項目１０）
前記ユーザ入力は、ポインタデバイス、タッチスクリーン、オーディオ入力、音声コマンド、視線追跡、凝視追跡、ＥＥＧベースの思考制御、カメラベースの身体運動、ジェスチャ追跡、およびボタンのうちの少なくとも１つを介する、項目１に記載の方法。
（項目１１）
前記ユーザ入力は、前記オブジェクトの位置を変化させる、項目１に記載の方法。
（項目１２）
前記位置の変化は、水平方向および垂直方向の位置のうちの少なくとも１つの変化を含む、項目１１に記載の方法。
（項目１３）
前記ユーザ入力は、前記オブジェクトを選択し、該オブジェクトを前記ディスプレイ上の所望の位置までドラッグすることを含む、項目１２に記載の方法。
（項目１４）
前記オブジェクトは、実質的に対応する形状の物理的アイテムを表す、項目１に記載の方法。
（項目１５）
前記オブジェクトの向きを配列することは、前記物理的アイテムの向きについての対応する配列をもたらす、項目１４に記載の方法。
（項目１６）
オブジェクトを操作するためのシステムであって、該システムは、
コンピュータと、
該コンピュータに動作可能に連結されるコンピュータ可読媒体と
を含み、
該コンピュータ可読媒体は、該コンピュータに機能を実行させるプログラムコードを記憶し、該機能は、
オブジェクトをディスプレイを介して表示することであって、該オブジェクトは、幾何学形状を有し、該幾何学形状の第１の向きで配列される、ことと、
少なくとも該幾何学形状の第２の向きを該オブジェクトに近接して表示することと、
該幾何学形状の該第２の向きを選択するためのユーザ入力を受信することと、
該選択された第２の向きに合致するように該オブジェクトの該幾何学形状の向きを配列することと
を含む、システム。
（項目１７）
オブジェクトを操作するための携帯用電子デバイスであって、該デバイスは、
該オブジェクトを表示するためのディスプレイであって、該オブジェクトは、幾何学形状を有し、該幾何学形状の第１の向きで配列され、少なくとも該幾何学形状の第２の向きを該オブジェクトに近接して表示する、ディスプレイと、
該幾何学形状の該第２の向きを選択するためのユーザ入力を受信するためのユーザインターフェースと、
該選択された第２の向きに合致するように該オブジェクトの該幾何学形状の向きを配列するために、該ディスプレイおよびユーザインターフェースと通信しているプロセッサと
を備える、携帯用電子デバイス。
（項目１８）
第１のオブジェクトを１つ以上の他のオブジェクトに関連して操作するための方法であって、該方法は、
ディスプレイ上に該１つ以上の他のオブジェクトを表示することであって、それにより、該他のオブジェクトの各々が、該他のオブジェクトのうちの少なくとももう１つのオブジェクトに隣接して配列され、該他のオブジェクトの各々は、幾何学形状を有し、該幾何学形状の向きで配列され、該１つ以上の他のオブジェクトの各々は、任意の他のオブジェクトに対して重複していない、ことと、
該ディスプレイ上の第１の位置に該第１のオブジェクトを表示することであって、該第１のオブジェクトは、幾何学形状を有し、該幾何学形状の第１の向きで配列される、ことと、
該第１のオブジェクトの目的位置および向きを選択するためのユーザ入力を受信することであって、該目的位置は、該１つ以上の他のオブジェクトのうちの少なくとも１つに隣接し、該第１のオブジェクトは、該他のオブジェクトのうちのいずれの１つに対しても重複していない、ことと、
該ユーザ入力に応じて、該オブジェクトを該目的位置および向きで位置決定および向き決定することと
を含む、方法。
（項目１９）
前記ユーザ入力は、前記ディスプレイ上で前記１つ以上の他のオブジェクトに隣接する該ディスプレイの一部分を選択することを含む、項目１８に記載の方法。
（項目２０）
前記ディスプレイの前記選択された部分に対応する１つ以上の目的位置および向き候補を表示することを含む、項目１９に記載の方法。
（項目２１）
前記第１のオブジェクトの前記目的位置および向きを決定するために、前記ディスプレイの前記選択された部分を調整することを含む、項目２０に記載の方法。
（項目２２）
調整することは、前記ディスプレイの１つ以上のセルをハイライトすることを含み、該１つ以上のセルは、テトロミノ、トリミノ、ペントミノ、およびポリオミノのうちの少なくとも１つのミノの形状を含む、項目２１に記載の方法。
（項目２３）
前記ユーザ入力は、ポインティングデバイスのボタンをクリックおよびホールドすることを含む、項目２２に記載の方法。
（項目２４）
前記オブジェクトの最良の目的位置および向きを決定することを含み、該決定することは、該ディスプレイの選択された部分、該オブジェクトの前記幾何学形状、１つ以上の後に利用可能なオブジェクトの該幾何学形状、１つ以上の可能な目的位置および向き候補、オブジェクトまたは他のオブジェクトの高さ対幅比、前記他のオブジェクトに隣接する任意の空白セルの数および位置、該他のオブジェクトに隣接する任意の間隙、該オブジェクトを位置決定および向き決定した後の任意の空白セルまたは間隙のうちの少なくとも１つに基づいている、項目１８に記載の方法。
（項目２５）
前記ユーザ入力は、前記ディスプレイの一部分を選択することを含む、項目２４に記載の方法。
（項目２６）
前記ディスプレイの前記選択された部分は、１つ以上のセルを含み、各セルは、テトロミノ、トリミノ、ペントミノ、およびポリオミノのうちの少なくとも１つのミノの形状を含む、項目２５に記載の方法。
（項目２７）
前記目的位置および向きは、前記決定された最良の目的位置および向きに対応する、項目２６に記載の方法。
（項目２８）
前記オブジェクトの１つ以上の最良の目的位置および向きを決定することを含み、該決定することは、前記ディスプレイの選択された部分、該オブジェクトの前記幾何学形状、１つ以上の後に利用可能なオブジェクトの前記幾何学形状、１つ以上の可能な目的位置および向き候補、オブジェクトまたは他のオブジェクトの高さ対幅比、該他のオブジェクトに隣接する任意の空白セルの数および位置、該他のオブジェクトに隣接する任意の間隙、該オブジェクトを位置決定および向き決定した後の任意の空白セルまたは間隙のうちの少なくとも１つに基づいている、項目１８に記載の方法。
（項目２９）
前記第１のオブジェクトおよび前記１つ以上の他のオブジェクトのための形式以外の形式で、前記１つ以上の候補を表示することを含む、項目２８に記載の方法。
（項目３０）
前記形式は、色、陰影、透明度、テクスチャ、およびパターニングのうちの少なくとも１つを含む、項目２９に記載の方法。
（項目３１）
前記ユーザ入力は、前記最良の目的位置および向き候補のうちの１つの一部分を選択することを含む、項目３０に記載の方法。
（項目３２）
前記１つ以上の候補は、第１の組の最良の目的位置および向き候補を含む、項目３１に記載の方法。
（項目３３）
第２のユーザ入力に応じて、前記第１の組の候補の代わりに、第２の組の最良の目的位置および向き候補を表示することを含む、項目３２に記載の方法。
（項目３４）
前記第２のユーザ入力は、前記ディスプレイ上のボタンを選択することを含む、項目３３に記載の方法。
（項目３５）
前記最良の目的位置および向き候補は、相互に、重複せず、隣接もしない、項目２８に記載の方法。
（項目３６）
決定することは、前記第１の組の候補が、前記第２の組の候補よりも高い次数または階数を有する候補を含むように、該候補の次数または階数を決定することを含む、項目３３に記載の方法。
（項目３７）
前記オブジェクトが最初に表示されたときからの、該オブジェクトを操作するための時間制限を設定することを含む、項目１８に記載の方法。
（項目３８）
ある移動速度において、前記オブジェクトを前記ディスプレイ上を第１の位置から第２の位置に向かって移動させることを含む、項目３７に記載の方法。
（項目３９）
前記時間制限は、前記オブジェクトの前記移動速度および前記ディスプレイ上の前記第２の位置に基づいている、項目３８に記載の方法。
（項目４０）
前記幾何学形状は、２次元である、項目１８に記載の方法。
（項目４１）
前記幾何学形状は、テトロミノ、トリミノ、ペントミノ、およびポリオミノのうちの少なくとも１つを含む、項目４０に記載の方法。
（項目４２）
前記幾何学形状は、３次元である、項目１８に記載の方法。
（項目４３）
第１のオブジェクトを１つ以上の他のオブジェクトに関連して操作するためのシステムであって、該システムは、
コンピュータと、
該コンピュータに動作可能に連結されるコンピュータ可読媒体と
を備え、
該コンピュータ可読媒体は、該コンピュータに機能を実行させるプログラムコードを記憶し、該機能は、
ディスプレイ上に該１つ以上の他のオブジェクトを表示することであって、それにより、該他のオブジェクトの各々が、該他のオブジェクトのうちの少なくとももう１つのオブジェクトに隣接して配列され、該他のオブジェクトの各々が、幾何学形状を有し、該幾何学形状の向きで配列され、該１つ以上の他のオブジェクトの各々が、任意の他のオブジェクトに対して重複していない、ことと、
該第１のオブジェクトを該ディスプレイ上の第１の位置に表示することであって、該第１のオブジェクトは、幾何学形状を有し、該幾何学形状の第１の向きで配列される、ことと、
該第１のオブジェクトの目的位置および向きを選択するためのユーザ入力を受信することであって、該目的位置は、該１つ以上の他のオブジェクトのうちの少なくとも１つに隣接し、該第１のオブジェクトは、該他のオブジェクトのうちのいずれの１つに対しても重複していない、ことと、
該ユーザ入力に応じて、該オブジェクトを該目的位置および向きで位置決定および向き決定することと
を含む、システム。
（項目４４）
１つ以上の他のオブジェクトに関連して第１のオブジェクトを操作するための携帯用電子デバイスであって、該デバイスは、
ディスプレイであって、該ディスプレイは、ｉ）該他のオブジェクトの各々は、該他のオブジェクトのうちの少なくとももう１つのオブジェクトに隣接して配列され、該他のオブジェクトの各々は、幾何学形状を有し、該幾何学形状の向きで配列され、該１つ以上の他のオブジェクトの各々は、任意の他のオブジェクトに対して重複していないように、該１つ以上の他のオブジェクトを表示することと、ｉｉ）該第１のオブジェクトを該ディスプレイ上の第１の向きで表示することであって、該第１のオブジェクトは、幾何学形状を有し、該幾何学形状の第１の向きで配列される、こととを行うように配列される、ディスプレイと、
ユーザインターフェースであって、該ユーザインターフェースは、該第１のオブジェクトの目的位置および向きを選択するためのユーザ入力を受信するように配列され、該目的位置は、該１つ以上の他のオブジェクトのうちの少なくとも１つに隣接し、該第１のオブジェクトは、該他のオブジェクトのうちのいずれの１つに対しても重複していない、ユーザインターフェースと、
プロセッサであって、該プロセッサは、該ディスプレイおよびユーザインターフェースと通信しており、該ディスプレイおよびユーザインターフェースは、該ユーザ入力に応じて、該目的位置および向きで該オブジェクトを位置決定および向き決定するように配列される、プロセッサと
を備える、携帯用電子デバイス。
（項目４５）
項目１〜１５のうちのいずれか１項に記載のステップを実行するように配列されるオブジェクトを操作するためのシステム。
（項目４６）
項目１〜１５のうちのいずれか１項に記載のステップを実行するように配列されるオブジェクトを操作するための携帯用電子デバイス。
（項目４７）
項目１８〜４２のうちのいずれか１項に記載のステップを実行するように配列される１つ以上の他のオブジェクトに関連して第１のオブジェクトを操作するためのシステム。
（項目４８）
項目１８〜４２のうちのいずれか１項に記載のステップを行うように配列される１つ以上の他のオブジェクトに関連して第１のオブジェクトを操作するための携帯用電子デバイス。
【図面の簡単な説明】
【００２０】
【図１】図１は、種々の形状およびサイズのパッケージが保管コンテナの中で配列される、オブジェクト保管システムを示す。
【図２】図２は、ポインティングデバイス制御パズルゲームシステムのネットワーク図である。
【図３】図３は、汎用コンピュータシステムの機能ブロック図である。
【図４】図４Ａ−５Ｄは、第１の例示的なポインティングデバイスであるマウスを使用して、ユーザによって制御されている、例示的なパズルゲーム（以降で「マウス制御パズルゲーム」と呼ばれる）の例示的なスクリーンショットを示す。
【図５】図４Ａ−５Ｄは、第１の例示的なポインティングデバイスであるマウスを使用して、ユーザによって制御されている、例示的なパズルゲーム（以降で「マウス制御パズルゲーム」と呼ばれる）の例示的なスクリーンショットを示す。
【図６】図６は、マウス制御パズルゲームと関連付けられる２つの制御プロセスの例示的なアイコンを示す。
【図７】図７Ａ−９Ｃは、ゲームと関連付けられる、付加的な入力制御プロセスを図示するためのマウス制御パズルゲームの付加的で例示的なスクリーンショットを示す。
【図８】図７Ａ−９Ｃは、ゲームと関連付けられる、付加的な入力制御プロセスを図示するためのマウス制御パズルゲームの付加的で例示的なスクリーンショットを示す。
【図９】図７Ａ−９Ｃは、ゲームと関連付けられる、付加的な入力制御プロセスを図示するためのマウス制御パズルゲームの付加的で例示的なスクリーンショットを示す。
【図１０】図１０Ａ−１１Ｃは、マウス制御ゲームと関連付けられる、より多くの入力制御プロセスを図示するためのマウス制御パズルゲームのより例示的なスクリーンショットを示す。
【図１１】図１０Ａ−１１Ｃは、マウス制御ゲームと関連付けられる、より多くの入力制御プロセスを図示するためのマウス制御パズルゲームのより例示的なスクリーンショットを示す。
【図１２】図１２Ａ−Ｃは、第１の組の最良の位置および目的候補、次いで、第２の組の最良の位置および目的候補、次いで、第３組の最良の位置および目的候補を通した循環のプロセスを示す、一組の例示的なスクリーンショットを含む。
【図１３】図１３は、マウス制御パズルゲームアプリケーションを実行するための携帯用電子デバイスおよび／またはモバイルデバイスの略図である。
【図１４】図１４は、例示的なパズルゲームを描写する略図である。
【図１５】図１５は、オブジェクトを操作するためのプロセスの例示的なフロー図である。
【図１６】図１６は、オブジェクトを操作するための別のプロセスの例示的なフロー図である。
【図１７】図１７Ａ−２１Ｃは、例えば、ポインタベースのオブジェクト制御アプリケーションと関連付けられるプロセッサによって実行される、種々のプロセスを図示する、種々の例示的なフロー図を含む。
【図１８】図１７Ａ−２１Ｃは、例えば、ポインタベースのオブジェクト制御アプリケーションと関連付けられるプロセッサによって実行される、種々のプロセスを図示する、種々の例示的なフロー図を含む。
【図１９】図１７Ａ−２１Ｃは、例えば、ポインタベースのオブジェクト制御アプリケーションと関連付けられるプロセッサによって実行される、種々のプロセスを図示する、種々の例示的なフロー図を含む。
【図２０】図１７Ａ−２１Ｃは、例えば、ポインタベースのオブジェクト制御アプリケーションと関連付けられるプロセッサによって実行される、種々のプロセスを図示する、種々の例示的なフロー図を含む。
【図２１】図１７Ａ−２１Ｃは、例えば、ポインタベースのオブジェクト制御アプリケーションと関連付けられるプロセッサによって実行される種々のプロセスを図示する、種々の例示的なフロー図を含む。
【発明を実施するための形態】
【００２１】
本システムおよび方法は、オブジェクトが１つの場所から別の場所まで移動するとき、リアルタイムまたは略リアルタイムで、３次元または２次元オブジェクトの操作を可能にする。いくつかの実装において、本システムおよび方法は、マウス等のポインティングデバイスゲーム制御を使用して、パズルゲームで遊ぶ、およびパズルゲームを制御するためにポインティングデバイスと関連付けられる付加的なゲーム制御機構および特徴をユーザに提供するための能力をユーザに提供する。いくつかの構成において、タッチスクリーンは、ユーザのタッチを追跡するカーソルを提供する、Ｗｉｎｄｏｗｓ（登録商標）またはＭＡＣ（登録商標）ＯＳＸ用のタッチスクリーン等の従来のポインティングデバイスとして機能することができる。しかしながら、他の構成において、ユーザのタッチを追跡するカーソルを提供する代わりに、タッチスクリーン（例えば、ｉＰｈｏｎｅ（登録商標）スクリーン）上のユーザのタッチを介して、ユーザがオブジェクトおよび／または他の機能を直接操作することを可能にするタッチスクリーンが採用されてもよい。本明細書のシステム、デバイス、および方法は、両方の種類のタッチスクリーンをサポートする。さらに、本システム、デバイス、および方法は、多項選択型のプレイスタイルをサポートしてもよく、他の入力の方法は、カメラベースの視線／凝視追跡、ＥＥＧベースの思考制御（ＮｅｕｒｏＳｋｙ（登録商標）ハードウェア等）、カメラベースの身体運動およびジェスチャ追跡（Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｋｉｎｅｃｔ等）、複数の選択肢のうちの１つを直接選択するボタン（限定ではないが、ゲームセンターの機械またはクイズ番組のブザー等）、またはマイクロホンベースの音声コマンドを含んでもよい。
【００２２】
図１−１０に関連する以下の論議について、マウスが、パズルゲームを制御するためのポインティングデバイスとして使用されることが仮定される。しかしながら、限定ではないが、タッチスクリーン、リモートコントロール、トラックボール、キーパッド、タッチパッド、スタイラス入力、ジョイスティック、および音声認識インターフェースを含む、種々の他の種類の入力デバイスが、マウスに加えて、またはマウスの代わりに使用されてもよいことに留意されたい。加えて、以下の論議は、ウェブベースのパズルゲームを提供するためのネットワークベースのシステムを仮定するが、本明細書で説明されるシステムは、ユーザデバイスにローカルで記憶することができ、かつユーザがオフラインでゲームをすることを可能にするであろう、ポインティングデバイス制御パズルゲームを提供する、プログラム命令として実現されてもよい。パズルゲームのローカルに記憶されたプログラム命令は、インターネットおよび／または他の通信機構を介して、ユーザデバイスの中に事前に記憶され、またはデバイスにダウンロードされてもよい。
【００２３】
図１は、種々の形状およびサイズのパッケージ１０２、１０４、および１０６が、保管コンテナ１０８の中に配列されるオブジェクト保管システム１００を示す。オブジェクト保管システム１００は、スキャナユニット１０４と、位置および向きシステム（ＰＯＳ）１１４と、オブジェクト輸送ユニット１１６と、パッケージコンテナ１１０と、コントローラ１１２とを含む。スキャナユニット１０４は、オブジェクトまたは物理的アイテム、例えば、パッケージを走査して、それらのサイズおよび形状を決定するように配列されてもよい。スキャナユニット１０４は、光学、レーザ、および／または音波型走査システムを含んでもよい。スキャナユニット１０４は、オブジェクト１０２、１０６、および／または１０８の形状およびサイズを識別および／または決定するために、任意の種類のアルゴリズム、例えば、レベルセット方法を使用してもよい。ＰＯＳ１１４は、オブジェクトを位置決定、および／または向き決定するために、次いで、コンテナ１１０内の最良適合位置にオブジェクトを配列するか、または積み重ねるように配列されてもよい。輸送システム１１６は、オブジェクトを走査位置から、限定ではないが、コンベヤベルト等のコンテナまで移動させることが可能な任意のシステムを含んでもよい。コントローラ１１２は、梱包プロセスの制御を提供するようにシステム１００の他のユニットと連動してもよい。コントローラは、ユーザインターフェースを含んでもよい。ユーザインターフェースは、グラフィカルユーザインターフェース（ＧＵＩ）を含んでもよい。ある構成において、ＧＵＩは、ユーザが、各オブジェクトをコンテナ１１０内の最適位置および向きで位置決定することを可能にするように、パッケージ１０２、１０６、および／または１０８の３次元または２次元表現を提供する。コントローラ１１２は、ユーザが、コンテナ１１０内のパッケージ１０２、１０６、および／または１０８の最も効率的な配置に影響を及ぼすために、本明細書の図２−１５に関して説明される技法のうちのいずれか１つ以上を使用することを可能にしてもよい。
【００２４】
オブジェクト配置システム１００は、種々の環境内の任意の種類のオブジェクトに適用できることが、当業者によって理解されるはずである。例えば、オブジェクト配置システム１００は、種々の形状およびサイズの石を走査し、次いで、最適な方式で、壁または類似構造内に各石を向き決定して配置するように構成されてもよい。
【００２５】
図２は、例示的なポインティングデバイス制御パズルゲームシステム２００のネットワーク図である。パズルゲームシステム２００は、１つ以上のウェブサーバ２０６上のポインティングデバイス制御パズルゲームと関連付けられるゲームアプリケーション２０４を記憶するデータベース２０２を含む。エンドユーザシステム２０８は、複数のユーザデバイス２１０、２１２、および２１４を含む。各ユーザデバイス２１０、２１２、および／または２１４は、それと少なくとも１つの形態のユーザ入力デバイスと関連付けている。例えば、ユーザデバイス２１０は、ユーザがユーザデバイス２１２上で実装される種々のプログラムおよびアプリケーションと相互作用することを可能にするために、それとマウス２１６を関連付けている。パズルゲームシステム２００のウェブサーバ２０６は、インターネット等のネットワーク２１８を介して、エンドユーザシステム内の各ユーザデバイス２１０、２１２、および／または２１４と通信することができる。
【００２６】
動作中、マウス制御パズルゲームで遊ぶユーザ要求は、ネットワーク２１８を介して、ユーザデバイス２１０上で実装されるウェブブラウザからパズルゲームシステム２００のウェブサーバ２０６まで送信される。この要求に応じて、ウェブサーバ２０６は、データベース２０２から、ゲームアプリケーション２０４に対応するソースコードを取り出し、ユーザデバイス２１０上で実装されるウェブブラウザにソースコードを送信する。ソースコードは、ＪａｖａＳｃｒｉｐｔ（登録商標）、Ａｄｏｂｅ  Ｆｌａｓｈ、Ａｄｏｂｅ  Ｆｌａｓｈ  ＡｃｔｉｏｎＳｃｒｉｐｔ、ＨＴＭＬ５、およびＳｉｌｖｅｒｌｉｇｈｔ等のスクリプト言語を含む種々のプログラミング言語で書かれ得る種々のプログラム命令を含む。パズルゲームと関連付けられるグラフィックスおよび／またはオブジェクトをレンダリングすることが可能なウェブブラウザの実施例（図４−１２参照）は、Ｉｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅｒ、Ｆｉｒｅｆｏｘ、Ｃｈｒｏｍｅ、Ｓａｆａｒｉ、および任意の他のモバイルブラウザを含む。ソースコードは、ライブラリ機能またはサブルーチンを含有してもよい。したがって、ＪａｖａＳｃｒｉｐｔ（登録商標）用のＤｏＪｏツールキット等の機能ライブラリは、ウェブサーバおよび／またはパズルゲームシステムのデータベースにローカルで記憶されてもよい。ウェブベースのグラフィックスレンダリングおよび／またはコンピューティングの多くが、典型的には、ウェブブラウザによってローカルで行われるが、グラフィカルユーザインターフェースのレンダリングのうちのいくつかの部分は、パズルゲームシステム２００のウェブサーバ２０６によって行われてもよいことに留意されたい。
【００２７】
いくつかの実装において、ゲームアプリケーション２０４のプログラム命令は、ポインティングデバイス制御パズルゲームシステムに特有の種々の入力制御プロセスに対応するコードを含む。例示的実施例として、図２はさらに、パズルゲームアプリケーションと関連付けられるプログラム命令内の種々のサブルーチンによって定義される４つの例示的な非限定的な入力制御プロセスを描写する。これらのプロセスは、「取り上げてドラッグする」２２０、「可能な移動をマップする」２２２、「最良の移動を決定する」２２４、および「最良適合を決定する」２２６である。これらのプロセスは、組み込まれた付加的なプロセスを含んでもよく、かつ相互に接続され、またはゲームアプリケーションの主要ゲーム制御プロセスによって同時に実行されてもよい。それらの対応する命令が、ウェブブラウザ、オペレーティングシステム、コンピュータ、プロセッサ、および／または任意の他のプログラムによって実行されるときの、それらの能力の簡潔な説明が、図４−１２に関して説明される付加的な詳細とともに、以下に提供される。ゲームアプリケーション２０４はまた、ユーザに提示される幾何学形状の異なる向きを決定するための回転システムに対応する、実行可能なプログラム命令も含む。
【００２８】
「取り上げてドラッグする」制御プロセス２２０は、１つの例示的な実装において、特定の幾何学形状のためのピースの全ての可能な向きをユーザに提供する。ユーザは、所望のピースをクリックすることによって、マウスを使用して、特定の向きで所望のピースを選択することができる。次いで、ユーザは、選択されたピースをドラッグし、マウスのクリックを解放することによって、それをユーザ所望位置またはセルに配置することができる。
【００２９】
ある実装において、「可能な移動をマップする」プロセス２２２は、ユーザがオブジェクトのベースよりも上側の空白セル上でホバーまたはクリックすることに応じて、呼び出すことができる。「可能な移動をマップする」プロセス２２２は、その向きの全てにおけるピースが、ホバーされた空白セルに適合することができるか否かを決定する。空白セルに適合することができる、全ての可能な向きの全てのピースについて、「可能な移動をマップする」プロセス２２２は、ある構成で、ピースによって埋めることができる全てのセルの座標を決定する。次いで、所与のピースの異なる向きに対応する異なる成果が、決定され、相互に重ね合わせられる。ユーザは、そこからピースの所望の向きを選択するオプションがユーザに与えられる、所与のピースの異なる成果の重ね合わせられたマッピングを提供される。このようにして、ユーザは、特定のピースに対して、どの向きおよび位置を選択するかを決定するときに、所与のパズルピースの全ての可能な成果について事前に頭の中で考えなければいけないことを回避する。
【００３０】
「最良の移動を決定する」制御プロセス２２４は、ユーザが空白セルをクリックすること、またはその上でホバーすることによって選択される位置またはセルに対して、落下するデフォルトピース（例えば、実質的に垂直の向きに第１の位置から第２の位置まで移動するピースおよび／またはオブジェクト）の１つ以上の最良の移動を決定する。このポインティングデバイスゲーム制御プロセスは、ベイジアンおよび／または任意の他の専有あるいは非専有機械学習アルゴリズムに基づき得る人工知能アルゴリズムの実行を採用する。「最良の移動を決定する」制御プロセス２２４は、ユーザ選択セル付近で（複数の他のオブジェクトおよび／またはピースが相互に略隣接して蓄積する）ベースの中の埋められたセルおよび空白セルの分布に関して、座標データ、すなわち、ＸおよびＹ値を決定する。次いで、プロセス２２４は、ピースの各向きについて、ピースがユーザ選択セルに配置された後のベースの空白セルおよび埋められたセルの分布を決定することによって、デフォルトピースについて、その可能な成果の全てを事前に決定する。特定の向きのピースと関連付けられる各成果は、ベースの高さおよび幅、ならびにユーザ選択された空白セルを埋めるようにピースが配置された後にその中に含有される任意の間隙によって定義される。成果の高さおよび幅情報は、ベースの２次元アレイの中に記憶されてもよく、およびユーザが移動を行うたびに更新される。
【００３１】
プロセス２２４は、特定の移動が全ての可能な移動の間で最良と見なされるか否かを決定するための種々の測定基準を使用してもよい。例えば、これらの測定基準は、高さ対幅比、ならびに各成果と関連付けられるベース内の任意の空白セルまたは間隙の数および位置を含んでもよい。これらの測定基準に基づいて、ポインティングデバイスゲーム制御プロセスは、スコアを各移動に割り当てる。次いで、プロセス２２４は、割り当てられたスコアをランク付けし、最高スコアを有する移動を最良の移動として選択する。場合によっては、プロセス２２４は、ユーザのために、最初の２つの最良の移動、または任意の他の所定数の最良の移動を選択してもよい。いくつかの構成において、図１０−１１に関してさらに説明されるように、ベース上の全ての位置における所与のピースの成果が決定される。所与のピースについて、最良の成果に従った、埋められたセルのマッピングまたは埋められたセルの分布が決定され、ユーザに提供される。他の構成において、ポインティングデバイスゲーム制御プロセス２２４は、相互に重複していない埋められたセルのマッピングと関連付けられる、２つ、または何らかの他の事前決定された数の最良の成果を選択する。
【００３２】
「最良適合を決定する」ポインティングデバイスゲーム制御プロセス２２６は、ゲームがセッション中である間に、最も必要な幾何学形状をユーザに提供し、それにより、ユーザのためにゲームの困難度を低下させ、または場合によっては、ユーザがゲームに負けることから「救済する」。１つの例示的な実装によれば、制御プロセス２２６に対応するプログラム命令は、最初に、ベース内の空白セルまたは間隙の位置、および／または、プレイフィールド、ディスプレイ、表示画面、および／または表示領域中のベースの高さを決定する。次いで、これらの命令によって定義される制御プロセス２２６は、いったんベースに追加されると、例えば、ベース内の一列以上のセルを消去することによって、ユーザのスコアを増加させるように、ピースおよび／またはオブジェクトが存在しているか否かを決定する。制御プロセス２２６のプログラム命令は、それらの可能な向きの全てにおける全てのピースの成果を決定するために、上記で説明される他の制御プロセスのプログラム命令を部分的に採用し、または呼び出してもよい。「最良適合を決定する」制御プロセス２２６に対応するサブルーチンは、ベースの高さと閾値高さとの間の距離および／または閾値レベルに対するゲームにおける経過時間量を含む、いくつかのトリガ条件を満たすことに応じて、トリガされてもよい。閾値レベルは、ピースおよび／またはオブジェクトが最初に表示される位置と見なされてもよい。いったん最良適合ピースが存在すると決定されると、ユーザは、いくつかある選択肢の中で特に救済ピースを提供されてもよい。
【００３３】
上述のように、マウス制御パズルゲームのこれらの主要制御プロセスと関連付けられる付加的な詳細が、図４−１２に関して説明される。また、これらの図の説明において、種々の他の制御プロセスが説明されることにも留意されたい。
【００３４】
図３は、ネットワークにアクセスする汎用コンピュータの機能ブロック図である。図２に示されるデータベース、ウェブサーバ、およびユーザデバイスは、図３に示される汎用コンピュータ３００として実装されてもよい。
【００３５】
例示的なコンピュータシステム３００は、中央処理装置（ＣＰＵ）３０２と、メモリ３０４と、相互接続バス３０６とを含む。ＣＰＵ３０２は、マルチプロセッサシステムとしてコンピュータシステム３００を制御するための単一のマイクロプロセッサまたは複数のマイクロプロセッサを含んでもよい。メモリ３０４は、例示的に、主要メモリおよび読取専用メモリを含む。コンピュータ３００はまた、例えば、種々のディスクドライブ、テープドライブ等を有する、大容量記憶デバイス３０８も含む。主要メモリ３０４はまた、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）および高速キャッシュメモリも含む。動作および使用中に、主要メモリ３０４は、ＣＰＵ３０２による実行のために、命令およびデータの少なくとも複数部分を記憶する。
【００３６】
コンピュータシステム３００はまた、一例として、ネットワーク３１２を介したデータ通信用のインターフェース３１０として、通信用の１つ以上の入力／出力インターフェースを含んでもよい。データインターフェース３１０は、モデム、イーサネット（登録商標）カード、または任意の他の好適なデータ通信デバイスであってもよい。図２によるコンピュータの機能を提供するために、データインターフェース３１０は、直接的に、または別の外部インターフェースを通してのうちのいずれかで、イントラネット、インターネット、またはＩｎｔｅｒｎｅｔ等のネットワーク３１２および／またはネットワーク２１８等への比較的高速のリンクを提供してもよい。ネットワーク３１２への通信リンクは、例えば、光学、有線、または無線（例えば、衛星または８０２．１１Ｗｉ−Ｆｉまたはセルラーネットワークを介する）であってもよい。代替として、コンピュータシステム３００は、ネットワーク３１２を介したウェブベースの通信が可能なメインフレームまたは他の種類のホストコンピュータシステムを含んでもよい。
【００３７】
コンピュータシステム３００はまた、好適な入力／出力ポートも含み、あるいはプログラミングおよび／またはデータ入力、回収、あるいは操作目的でローカルユーザインターフェースとしての機能を果たす、ローカルディスプレイ３１６およびユーザ入力デバイス３１４または同等物と相互接続するための相互接続バス３０６を使用してもよい。代替として、サーバ運営人員が、ネットワーク３１２を介して遠隔端末デバイスからシステムを制御および／またはプログラムするために、コンピュータシステム３００と相互作用してもよい。
【００３８】
コンピュータシステム３００に含有される構成要素は、サーバ、ワークステーション、パーソナルコンピュータ、ネットワーク端末、携帯用デバイス、および同等物として使用される、汎用コンピュータシステムで典型的に見出されるものである。実際に、これらの構成要素は、当技術分野で周知である、そのようなコンピュータ構成要素の広いカテゴリを表すことを目的としている。ある側面は、ウェブサーバ２０６のサーバ機能のための実行可能コードおよびデータベース、機能２２０、２２２、２２４を含むゲームアプリケーション２０４、ならびに種々のユーザデバイス２１０、２１２、および／または２１４上で実装されるブラウザ機能またはオペレーティングシステムのための実行可能コード等のソフトウェア要素に関してもよい。
【００３９】
図４Ａ−５Ｄは、マウス（例えば、マウス２１６）および／または別の種類のポインティングデバイスを使用して、ユーザによって制御されている例示的なパズルゲーム２０４の例示的なスクリーンショットを示す。具体的には、図４Ａ−４Ｄは、ディスプレイおよび／または表示画面４１０を横断してパズルピース４０８を移動させるマウス２１０の連続スナップショット４００、４０２、４０４、および４０６を示す。これらの図で描写されるように、図２に示されるマウス２１０によって制御されるカーソル４１２が、マウス制御パズルゲーム２０４の双向きプレイフィールドおよび／または画面４１０の中に表示される。特定の色のＳ字形パズルピース４０８が、ベース４１４に向かって落下している。ベース４１４は、同様にベース４１４の高さおよび間隙を画定する、プレイフィールド内の空白セルおよび埋められたセルによって画定されてもよい。ベース４１４は、少なくとも１つのオブジェクトが別のオブジェクトに隣接する、複数のピースおよび／またはオブジェクトを含んでもよい。いくつかの構成において、ユーザは、マウスをクリックすることなくマウスを左右に移動させることによって、Ｓ字形ピース４０８の水平移動を制御することができる。「取り上げてドラッグする」プロセス２２０が実行されているとき等の他の構成において、最初に、マウスボタンを使用して所望のピースをクリックし、次いで、任意の向きに移動させるようにピースをドラッグすることによって、ユーザが、ピース４０８の指向性移動を制御することができる。これらの連続した例示的なスクリーンショット４００、４０２、４０４、および４０６は、ユーザによって選択される水平位置にＳ字形ピース４０８を配置することの例示的な成果を示して描写する、図４Ｄで終了する。
【００４０】
図５Ａ−５Ｄは、スクリーンショット５００、５０２、５０４、５０６、および「取り上げてドラッグする」制御プロセス２２０に対応するプログラム命令によって生成される、それと関連付けられる種々のステップを描写する。これらの図で見ることができるように、ユーザは、Ｌ字形ピース５０８のデフォルトの向き５０８を含む、ピース５０８の４つの可能な向き５０８、５１０、５１２、および５１４を提供される。代替的な向き５１０、５１２、および５１４は、ピース５０８に近接して位置し、および／またはピース５０８を包囲する。付加的な向きを提供するようにプロセスをトリガするために、ユーザは、マウスカーソル５１６を用いてデフォルトピースの上をホバーすることができる。ソースコードと関連付けられるホバーサブルーチンは、この入力を検出し、他の向き５１０、５１２、および５１４を生成する。ユーザは、単純に、所望の向き５１０、５１２、および／または５１４を有する所望のピースの上でマウスカーソル５１６を移動させることによって、向き５１０、５１２、および５１４のうちの１つを選択することができる。例えば、図５Ｂは、向き５１４を覆うカーソル５１６を示す。それに応じて、所望のピースに対応するセルの座標が決定され、それに従って、セルが、プレイフィールドおよび／またはディスプレイ５１８の中でマップされる。ユーザが、クリックを解放することなく所望のピースをクリックした場合、所望のピースは、マウス２１６によってナビゲートされるカーソル５１６に取り付けられ、マウス２１６によって取り上げられたときにピースがあった位置よりも高い場所を含む、双向きプレイフィールドおよび／またはディスプレイ５１８の中の任意の場所へのマウスカーソル５１６の移動に従う。次いで、ユーザは、ピース５０８をドラッグし、（どれだけ速くユーザがマウス２１６を使用してセルに向かってピースをドラッグすることができるかに応じて）ユーザ制御速度でそれを所望のセルにドロップすることができる。デフォルトピース５０８が、典型的には、ゲームシステム２０４によって決定される速度で落下する一方で、ユーザは、いったんピース５０８がユーザによって取り上げられると、デフォルト速度を無視することができる。
【００４１】
図６は、マウス制御パズルゲームシステム２０４と関連付けられる２つの制御プロセスの例示的なアイコン６００および６０２を示す。描写されたアイコン６００および６０２は、それぞれ、パズルゲームシステムの「ホールド」および「ハードドロップ」制御プロセスに対応する。ホールドプロセスは、ユーザがピースをスキップして、それを後で使用することを可能にする。スキップされたピースは、破棄されず、単純に後で使用するために待ち行列の中に保持される。以降のために特定のパズルピースを保持することが、より有利な成果を生じるであろうことから、そのようにすることがより戦略的であるとユーザが決定し得るので、ホールドプロセスは有用である。梱包システム１００の場合、ホールド特徴は、ユーザが、後で選択して位置決定するために、特に位置決定しにくいある数の物理的アイテムを待ち行列に入れることを可能にしてもよい。ゲームアプリケーション２０４は、このポインティングデバイス制御プロセスの使用を追跡してもよく、場合によっては、現在、ゲームがシステム２００によってあまり指図されず、ユーザによってより指図されているため、ユーザのスコアから事前決定された量のポイントを差し引き、それにより、ゲーム２０４の困難度を減少させてもよい。代替として、ユーザは、スキップされたピースの後に、一列以上がピースによって消去された場合、より少ないポイントを与えられてもよい。この制御プロセスは、典型的には、乱数発生器に従ってランダムに生成される、ゲーム２０４によって生成される一連のピースをユーザが変更することを可能にする。場合によっては、生成される一連のピースは、戦略的に事前定義され、したがって、ランダムではない。
【００４２】
ある実装において、ホールドプロセスは、「最良適合を決定する」サブルーチン２２６が、ゲームプレイ中にユーザを支援するようにゲームシステム２００によって呼び出されているときに、無効にされる。言い換えれば、ユーザに最良適合ピースを与えることによって、ゲームシステム２００がユーザを支援しているとき、最良適合ピースをスキップする必要がないため、ユーザは、ホールド制御プロセスを使用することを妨げられる。次のアイコン６０２は、ハードドロップ制御プロセスに対応する。ユーザ入力がこのプロセスを呼び出すとき、ゲームアプリケーションは、パズルピースをベースに直接ドロップする。マウス制御パズルゲーム２０４の設定およびバージョンに応じて、ユーザは、例えば、経過時間またはゲームにおいて終了したゲームセッションの数に基づいて、ホールドおよび／またはハードドロッププロセスが使用され得る回数に限定されてもよい。
【００４３】
図７Ａ−９Ｃは、例示的なパズルゲームと関連付けられる付加的な入力制御プロセスを図示するためのマウス制御パズルゲームの付加的で例示的なスクリーンショットを示す。具体的には、図７Ａ−８Ｃは、「可能な移動をマップする」プロセス２２２に対応するプログラム命令が実行されているときの例示的なマウス制御パズルゲームの例示的なスクリーンショット７００、７０２、７０４、８００、８０２、８０４、８０６、および８０８を示す。図７Ａ−７Ｃで描写されるように、ユーザは、ベース７１０より上側および／またはベース７１０の中の空白セル７０８の上にマウスカーソル７０６をホバーする。ホバーされたセル７０８に応じて、「可能な移動をマップする」プロセス２２２は、全ての向きにおけるピース７１２の任意の部分が、ホバーされたセル７０８に適合することができるか否かを決定する。全ての向きにおけるピース７１２の少なくとも一部が、ホバーされたセル７０８に適合することができるとプロセスが決定する場合、ユーザは、ホバーされたセル７０８にピース７１２の任意の向きを配置することによって埋められるであろうセル７１４等の全てのセルを知らされる。ユーザがセル７０８等の埋められるであろうセルのうちのいずれかをクリックした場合、ピース７１２を含むであろう、選択された空白セル７０８の周囲の全ての空白セル７１４が、図７Ｂに示されるようにマップされる。これらの付加的にマップされたセル７１４は、ユーザによって選択された位置に配置されたときに、ピース７１２の１つ以上の向きによって埋められ得るセルである。ユーザは、以前に選択された空白セル７０８に隣接するセル７１６上でカーソルをドラッグすることによって、どのセルを埋めるかを絞り込むことができる。ユーザが、埋める正確なセルを絞り込むように付加的なセルを選択すると、これらのユーザ選択セルは、選択されたセルに配置されるピース７１２と同一の特性を帯びる。ピースの全ての向きによって埋められるであろう、全てのセルによって定義される全ての成果が決定されるため、これらの決定されたセル内の付加的なセルを選択することにより、所与の幾何学形状の可能な成果の数を削減するであろう。このようにして、例えば、ピースおよび／またはオブジェクト７１２の形状に利用可能な移動の総数は、埋められるであろうセルのユーザ選択に基づいて絞り込まれる。上述のように、付加的なセルは、落下するピースと同一の特性を帯びる。このようにして、ユーザが、例示的なパズルゲーム２０４を解決することの異なる解決法を本質的に提供されるため、例示的なパズルゲーム２０４の困難度が下げられる。
【００４４】
別の実施例として、図８Ａおよび８Ｂは、ゲームアプリケーション２０４が、３つの選択された空白セル８１０を埋めるために、Ｌ字形ピース８０８の１つだけの可能な成果を決定することを示す。いったんユーザが３つのマップされたセル８１０を選択し、マウスボタンを解放すると、水平の「向きのＬ字形ピース８０８が、幾何学形状のこの配置（位置）および向き８１２の事前決定された成果に従って、自動的に配置される。
【００４５】
図８Ｃは、より多くのセル８１４がユーザによって選択されると、ユーザが、選択された空白セルを充填するために、描写されたピース８１６の１つだけの可能な位置および向きに限定される、さらに別の例示的な実装を図示する。ユーザが選択された空白セルをキャンセルすることを決定した場合、ユーザは、選択されたセル８１４から離れて、領域中または領域外の任意の他の位置へマウスカーソルをドラッグすることができる。図８Ｄは、ユーザが選択されたセル８１４をキャンセルした後に、例示的なパズルゲームの例示的なスクリーンショット８０６を描写する。
【００４６】
図９Ａ−９Ｃは、特定のピース９０６のゲームアプリケーション２０４による最良の移動を実装するために、より少ないユーザ相互作用が必要とされる、制御プロセスのスクリーンショット９００、９０２、および９０４を描写する。例えば、ユーザが所与のピース９０６に行うことができる、異なる移動を絞り込むように、ユーザがいくつかの空白セルを選択する代わりに、ゲームアプリケーション２０４は、ユーザによって選択される所与の空白セル９０８のための最良のピースを決定することができる。制御プロセスは、最初に、所与の幾何学形状の全ての可能なピース位置および向きと関連付けられる、成果および／または候補を決定する。次いで、制御プロセスは、一組の全ての可能な成果および／または候補から最良の成果および／または候補を選択する。最良の成果と関連付けられる移動は、最良の移動として選択され、ユーザの代わりに実装される。このようにして、ゲームの困難度が減少させられ、その入力デバイスとしてポインティングデバイスを使用して、システム２００上で例示的なゲーム２０４をすることをより好適にする。
【００４７】
図１０Ａ−１１Ｃは、マウス制御ゲーム２０４と関連付けられる、より多くの入力制御プロセスを図示するためのマウス制御パズルゲーム２０４のより例示的なスクリーンショット１０００、１００２、１００４、１００６、１００８、１０１０、１０１２、１０１４、１１００、１１０２、および１１０４を示す。図１０で図示される実装は、上記の入力制御プロセス、ならびに図２に関して説明されるように、特定の幾何学形状の最良の成果をユーザのために決定することによって、例示的なゲーム２０４で遊んでいる間にユーザを支援することと関連付けられる、付加的な入力制御プロセスを組み込む。これらの例示的な図に示されるように、ゲームアプリケーション２０４は、最良の成果および／または候補１０１２および１０１４を決定し、ユーザが、事前決定された最良の成果１０１２に対応するセル１０１６等のセルのうちのいずれかを選択した場合、ゲームアプリケーション２０４は、図１０Ｃに示されるように、ユーザが残りのセルを埋めるために望ましいピース１０１８を自動的に配置する。この入力制御プロセスは、ゲーム２０４をよく把握し、プロセッサが決定した最良の移動または策略に従って、どのようにしてゲーム２０４がされ得るかを知ろうとしている、初心者にとって有利である。プロセッサは、最良の移動を決定するために、例えば、人工知能（ＡＩ）に基づくアルゴリズムを使用してもよい。これは、最もうまくゲーム２０４で遊ぶ方法について学習の機会を初心者に提供し、以下でさらに詳細に説明されるように、タッチスクリーンおよび／またはマウス等のポインティングデバイスを用いて遊ぶユーザにとってより好適である。
【００４８】
図１０Ｄ−Ｅは、ユーザがどのようにして、選択された最良の目的位置１０２２および１０２４のうちの１つではない、ピースおよび／またはオブジェクト１０２０の目的位置および向き１０２６を選択できるかを図示する。図１０Ｄ−Ｅのように、図１１Ａ−Ｃは、ユーザによって選択された任意の空白セルのための所与のパズルピースの最良の移動を決定する。図９に関して説明されるように、ユーザは、埋められるであろうセルを選択して、その選択されたセルに対してゲームアプリケーション２０４によって決定される最良の移動を実装することができる。しかしながら、図１１で図示される入力制御プロセスによれば、ユーザは、事前決定された最良の移動が実行された場合に、埋められるであろうセル以外のセル１１０６を選択することができる。これらの場合において、それでもなお、ゲームアプリケーション２０４は、上記で説明される種々のプロセスに従って、選択されたセル１１０６のためのピース１１０８の最良の目的位置および向き１１１０を決定することができる。例えば、ゲームアプリケーション２０４によって決定された最良の成果を考慮した後、ユーザは、アプリケーション２０４によって決定される所与のピースの最良の移動に対応する、埋められるであろうセルではない空白セル１１０６を埋めることを好んでもよい。これは、ピース１１０８の目的位置および向きを選択するように、ユーザに融通性および最終制御を与える。これは、ユーザが、しばしば、パズルゲームで遊ぶことに対して、より全体論的な戦略またはアプローチを有するため、特に有用である。例えば、ユーザは、ゲームの全体的な戦略をより良く決定するように、入ってくるピースおよび現在のピースを考慮してもよい。つまり、ユーザは、典型的には、次のピースを先見することができるため、ユーザは、どのようにしてゲームで遊ぶべきかに対する最終制御が与えられるはずである。したがって、ゲーム制御プロセスは、ユーザのために決定された最良の移動にユーザを従わせない能力を伴って内蔵される。
【００４９】
図１２Ａ−Ｃは、第１の組の最良の位置および目的候補１２０６、次いで、第２の組の最良の位置および目的候補１２０８、次いで、第３組の最良の位置および目的候補１２１０を通した循環のプロセスを示す、一組の例示的なスクリーンショット１２００、１２０２、および１２０４を含む。ある構成において、ユーザは、例えば、最良の位置および目的候補の循環を開始するように、ディスプレイのある領域をクリックすることによって、ディスプレイ１２１２上に含まれるサイクルボタンを選択し、および／またはディスプレイの一部分を選択してもよい。
【００５０】
図１３は、マウス制御パズルゲームアプリケーション２０４を実行するための携帯用電子デバイスおよび／またはモバイルデバイス１３００の例示的な略図である。示されるように、モバイルデバイス１３００は、ユーザがアプリケーションと関連付けられるアイコンを選択することに応じて、１つ以上のアプリケーションを起動すること（およびアプリケーションの制御下で動作すること）ができる。描写されるように、モバイルデバイスは、電話アプリケーション、Ｅメールプログラム、ウェブブラウザアプリケーション、およびメディアプレーヤアプリケーションを含む、いくつかの主要アプリケーションを有する。当業者であれば、モバイルデバイス１３００が、いくつかの付加的なアイコンおよびアプリケーションを有してもよく、アプリケーションが他の方式でも起動されてもよいことを認識するであろう。示される構成において、マウス制御パズルゲームアプリケーション２０４は、モバイルデバイス１３００のタッチスクリーンインターフェース上に表示されるアイコンをユーザがタップおよび／またはタッチすることによって起動される。
【００５１】
いったん例示的なマウス制御パズルゲームアプリケーション２０４が起動されると、ユーザは、上記で説明される種々の方法に従って、マウス制御パズルゲームアプリケーション２０４と相互作用してもよい。場合によっては、ゲームアプリケーション２０４と関連付けられるプログラム命令は、それをモバイルデバイス１３００のために好適にするように修正される。他の実装において、マウス制御アプリケーション２０４の携帯用および／またはモバイルバージョンを実装するために、付加的なプラグインが必要とされてもよい。そうするために、１つの構成において、タッチスクリーン入力は、対応するマウス制御入力に変換されてもよい。例えば、タッチスクリーン１３０２上でユーザがタップすることは、プラグインアプリケーションによって、ユーザがマウスをクリックすることに変換されてもよい。マウスを移動させることによって、画面を横断してカーソルを移動させることと同様に、ユーザは、タッチスクリーン１３０２を横断して指またはスタイラスを摺動させることによって、パズルピースの移動を向き付けることができる。ユーザはさらに、タッチスクリーンから指またはスタイラスを外すことによって、クリックを解放することと同様に、タップを解放することができる。このようにして、ユーザは、マウスまたはキーボードを必要とすることなく、モバイルデバイス１３００上のマウス制御パズルゲーム２０４と関連付けられる、上述の種々の入力制御プロセスから利益を享受することができる。
【００５２】
図１４は、別の構成による、例示的なパズルゲーム２０４を描写するディスプレイ１４００の略図である。場合によっては、図１４に示されるように、例示的なパズルピース１４０２およびベース１４０４は、正方形とは対照的な円形のオブジェクトから成る。３つの円形セルから成る隅ピース１４０６が、ベース１４０４に向かって落下して示される。ユーザは、上記のプロセスまたは方法を使用して、落下する隅ピース１４０６を操作することができる。
【００５３】
上述のように、図４−１４で描写されるパズルゲーム２０４で使用されるピースおよび／またはオブジェクトを操作するための例示的なプロセスは、限定ではないが、コンピュータ支援設計、梱包システム、学習システム等の多種多様の技術的用途に適用されてもよい。開示されたシステムおよび方法は、入力デバイスとしてポインティング入力デバイスを使用して、ユーザが種々の異なる種類のオブジェクトを制御することを可能にする。例えば、開示されたシステムおよび方法は、任意の形状のピースおよび／またはオブジェクトが、表示領域の任意の側面またはさらに隅からも出現することを可能にすることができる。同様に、表示フィールドおよび／または領域は、図４−１４に示される長方形以外の種々の形状を有してもよい。例えば、表示および／またはフィールド領域は、円形、長円形、三角形、および／または任意の他の幾何学形状を有してもよい。いくつかの実装において、開示されたシステムおよび方法のアプリケーションは、ユーザがピースの形状または表示領域をカスタマイズすることを可能にするように構成される。オブジェクト操作アプリケーションは、これらのユーザ指定設定を記憶するためのユーザプロファイルを作成することができる。ユーザはさらに、ゲームアプリケーションによって定義される、パズルゲーム等のアプリケーションのワークフローを変更することができる。いくつかの実装において、ユーザは、ピースをクリックし、表面上でマウスを円形に移動させることによって、ピースを回転させることができる。同様に、タッチスクリーン入力デバイスのユーザは、ピースの点を中心とし、円形運動において画面上で指を移動させることによって、ピースを回転させることができる。
【００５４】
図１５は、オブジェクトを操作するためのプロセス１５００の例示的なフロー図である。ある実装において、システム２００および／またはデバイス１３００等のシステムは、ゲームアプリケーション２０４を実行するためのＣＰＵ３０２等のプロセッサを含む。プロセッサ３０２は、ディスプレイ３１６を介してオブジェクト５０８を表示することを含む、ある機能、アプリケーション、および／またはルーチンをプロセッサ３０２に実行させる、プログラムコードを有する非一過性のコンピュータ可読媒体にアクセスし、および／またはそれを利用してもよい（ステップ１５０２）。オブジェクト５０８は、特定の幾何学形状を有し、幾何学形状の第１の向きで配列されてもよい。プロセッサ３０２は、オブジェクト５０８の１つ以上の向き５１０、５１２、および５１４を決定してもよい。プロセッサ３０２は、オブジェクト５０８を目的位置および向きで向き決定することができる、可能な方法に基づいて、１つ以上の向き５１０、５１２、および５１４を決定してもよい。例えば、図５Ａでは、オブジェクト５０８は、各ミノが目的位置および向きと関連付けられるセルに適合するように位置決定されなければならない。したがって、プロセッサ３０２は、（オブジェクト５０８の現在の向きを含む）限定数の可能な向き５１０、５１２、および５１４を決定することが可能である。
【００５５】
３次元オブジェクト等の他のオブジェクトについては、可能な向きの数が多数であってもよい。多数の決定された可能な向きがある状況で、プロセッサ３０２は、表示するために可能な向きの一部分を提供してもよいが、ユーザが付加的な部分を選択することを可能にしてもよい。プロセッサ３０２は、少なくとも、幾何学形状の第２の向き５１４をオブジェクト５０８に近接して表示してもよい（ステップ１５０４）。システム２００および／またはデバイス１３００は、オブジェクト５０８の幾何学形状の第２の向き５１４を選択して、選択された第２の向き５１４に合致するようにユーザ入力を受信する、ユーザインターフェースおよび／またはユーザ入力デバイス３１４を含んでもよい（ステップ１５０６）。次いで、ディスプレイ３１６および／またはインターフェース３１４と通信しているプロセッサおよび／またはＣＰＵ３０２は、選択された第２の向き５１４に合致するようにオブジェクト５０８の幾何学形状の向きを配列してもよい（ステップ１５０８）。
【００５６】
ある構成において、アプリケーション２０４は、オブジェクト５０８が最初に表示されたときからの、オブジェクト５０８を操作するための時間制限を設定する。アプリケーション２０４は、移動速度にて、ディスプレイ３１４上で第１の位置から第２の位置に向かってオブジェクト５０８を自律的に移動させてもよい。時間制限は、オブジェクト５０８の移動速度、ならびにディスプレイ３１４、４１０、および／または５１８上の第２の位置に基づいてもよい。幾何学形状は、２次元または３次元であってもよい。幾何学形状は、トリミノ、テトロミノ、ペントミノ、ポリオミノ、および／または別の形状を含んでもよい。幾何学形状は、多角形、三角形、四辺形、正方形、五角形、六角形、楕円形、円形、不規則な形状、および／または物理的アイテムに対応する２次元形状を含んでもよい。幾何学形状は、多面体、球体、回転楕円体、角錐、円筒、円錐、角柱、円環体、らせん、十二面体、不規則な形状の３次元形状、および／または物理的アイテムに対応する３次元形状を含んでもよい。場合によっては、テトロミノは、テトリミノまたはテトラミノと呼ばれてもよい。
【００５７】
ある実装において、アプリケーション２０４は、ディスプレイ５１８を介して、向き５１０、５１２、および５１４を含む幾何学形状の全ての可能な向きをオブジェクト５０８に近接して表示する。ユーザ入力は、ポインタデバイス、タッチスクリーン、オーディオ入力、ならびに、例えば、ユーザインターフェースおよび／または入力デバイス３１４を使用する視線追跡装置のうちの少なくとも１つを介してもよい。いくつかの構成において、タッチスクリーンは、ユーザのタッチを追跡するカーソルを提供する、Ｗｉｎｄｏｗｓ（登録商標）またはＭＡＣ（登録商標）ＯＳＸ用のタッチスクリーン等の従来のポインティングデバイスとして機能することができる。しかしながら、他の構成において、ユーザのタッチを追跡するカーソルを提供する代わりに、タッチスクリーン上のユーザのタッチを介して、ユーザがオブジェクトおよび／または他の機能を直接操作することを可能にする、タッチスクリーンが採用されてもよい。本明細書のシステム、デバイス、および方法は、両方の種類のタッチスクリーンをサポートする。さらに、本システム、デバイス、および方法は、多項選択型のプレイスタイルをサポートしてもよく、他の入力の方法は、カメラベースの視線／凝視追跡、ＥＥＧベースの思考制御、カメラベースの身体運動およびジェスチャ追跡、複数の選択肢のうちの１つを直接選択するボタン（限定ではないが、ゲームセンターの機械またはクイズ番組のブザー等）、またはマイクロホンベースの音声コマンドを含んでもよい。
【００５８】
ユーザ入力デバイス３１４に基づいて、プロセッサおよび／またはＣＰＵ３０２は、オブジェクト５０８の位置を変化させるためにユーザ入力を使用してもよい。位置の変化は、ディスプレイ３１６および／または５１８上の水平および垂直方向位置のうちの少なくとも１つの変化を含んでもよい。ユーザ入力は、オブジェクト５０８を選択し、オブジェクト５０８をディスプレイ３１６および／または５１８上の所望の位置へドラッグすることを含んでもよい。オブジェクト５０８は、実質的に対応する形状の物理的アイテムを表してもよい。したがって、オブジェクト５１８の向きを配列する結果として、システム１００等のシステムは、それに対応して、物理的アイテムの向きを配列することができる。
【００５９】
図１６は、オブジェクトを操作するための別のプロセス１６００の例示的なフロー図である。システム２００等のシステムは、１つ以上の他のオブジェクト８１８に関して第１のオブジェクト７１２、８０８、９０６、１０１８、１１０８、および／または１２１２を操作するために使用されてもよい。システム２００は、コンピュータ３００に動作可能に連結されるコンピュータ可読媒体を使用するコンピュータ３００を含んでもよい。コンピュータ可読媒体は、他のオブジェクト８１８の各々が、他のオブジェクトのうちの少なくとも別のオブジェクトに隣接して配列されるように、ディスプレイ８２０上に１つ以上の他のオブジェクト８１８を表示する機能、アプリケーション、および／またはサブルーチンをコンピュータ３００に実行させるプログラムコードを記憶してもよい。他のオブジェクト８１８の各々は、幾何学形状を有し、幾何学形状の特定の向きで配列されてもよい。１つ以上の他のオブジェクト８１８は、任意の他のオブジェクトに対して重複しないように配列されてもよい（ステップ１６０２）。プロセッサおよび／またはＣＰＵ３０２は、第１のオブジェクト、例えば、第１のオブジェクト８０８が幾何学形状を有し、その幾何学形状の第１の向きで配列されるディスプレイ８２０上の第１の位置にオブジェクト８０８を表示してもよい（ステップ１６０４）。プロセッサおよび／またはＣＰＵ３０２は、目的位置が他の１つ以上の他のオブジェクト８１８のうちの少なくとも１つに隣接する、第１のオブジェクト８０８の目的位置および向きを選択するように、ユーザインターフェースおよび／またはユーザ入力デバイス３１４を介してユーザ入力を受信してもよい（ステップ１６０４）。第１のオブジェクト８０８は、他のオブジェクト８１８のうちのいずれか１つに対して重複していなくてもよい。ユーザ入力に応じて、プロセッサおよび／またはＣＰＵ３０２は、オブジェクト８０８を目的位置および向き８１２に位置決定および向き決定する。目的位置および向きおよび／または目的位置および向き候補はまた、成果と呼ばれてもよい。
【００６０】
別の構成において、携帯用電子デバイス１３００は、１つ以上の他のオブジェクト８１８に関して第１のオブジェクト７１２、８０８、９０６、１０１８、１１０８、および／または１２１２を操作するためのアプリケーションおよび／またはアプリケーション２０４とのインターフェースを含む。デバイス１２００は、他のオブジェクト８１８の各々が、他のオブジェクトのうちの少なくとも別のオブジェクトに隣接して配列されるように、１つ以上の他のオブジェクト８１８を表示するように配列されたディスプレイ３１６および／または１３０２を含んでもよく、他のオブジェクト８１８の各々は、幾何学形状を有し、その幾何学形状の向きで配列される。１つ以上の他のオブジェクト８１８の各々は、任意の他のオブジェクトに対して重複しなくてもよい（ステップ１６０２）。ディスプレイ３１６および／または１３０２はまた、第１のオブジェクト８１８が幾何学形状を有し、幾何学形状の第１の向きで配列されるディスプレイ上の第１の位置において、第１のオブジェクト７１２、８０８、９０６、１０１８、１１０８、および／または１２１２を表示してもよい（ステップ１６０４）。
【００６１】
デバイス１３００は、目的位置が他の１つ以上の他のオブジェクト８１８のうちの少なくとも１つに隣接する第１のオブジェクト１２、８０８、９０６、１０１８、１１０８、および／または１２１２の目的位置および向きを選択するために、ユーザ入力を受信するように配列されるユーザ入力デバイス３１４等のユーザインターフェースを含んでもよい。第１のオブジェクト、例えば、オブジェクト８０８は、他のオブジェクト７１０および／または８１８のうちのいずれか１つに対して重複しなくてもよい（ステップ１６０６）。一組の他のオブジェクトもまた、ベースと呼ばれてもよい。ディスプレイ３１６および／または１３０２ならびにユーザインターフェースおよび／または入力デバイス３１４と通信している、プロセッサおよび／またはＣＰＵ３０２は、ユーザ入力に応じて、目的位置および向きでオブジェクトを位置決定および向き決定するように配列される（ステップ１６０８）。
【００６２】
ユーザ入力は、ディスプレイ３１６および／または７１８上の１つ以上の他のオブジェクト７１０に隣接するディスプレイ３１６および／または７１８の一部分を選択することを含んでもよい。次いで、ディスプレイ７１８は、ディスプレイ７１８の選択された部分に対応する、１つ以上の目的位置および向き候補７１４を表示してもよい。プロセッサおよび／またはＣＰＵ３０２は、第１のオブジェクト７１２の目的位置および向きを決定するように、ディスプレイ７１８の選択された部分７０８および／または７１６を調整してもよい。部分７０８および／または７１６の調整は、１つ以上のセルがポリオミノのミノの形状を含む、ディスプレイ７１８の１つ以上のセルをハイライトすることを含んでもよい。入力デバイス３１４を介したユーザ入力は、マウス上のボタンまたはディスプレイ７１８上に表示された仮想ボタン等のポインティングデバイスボタンをクリックおよびホールドすることを含んでもよい。
【００６３】
ある実装において、プロセッサおよび／またはＣＰＵ３０２は、ディスプレイ７１８の選択された部分７０８および／または７１６、オブジェクト７１２、８０８、９０６、１０１８、１１０８、および／または１２１２の幾何学形状、１つ以上の後に利用可能なオブジェクトの幾何学形状、１つ以上の可能な目的位置および向き候補７１４、１０１２、１０１４、１０２２、１０２４、１２０６、１２０８、および／または１２１０、オブジェクトまたは他のオブジェクトの高さ対幅比、他のオブジェクトに隣接する任意の空白セルの数および位置、他のオブジェクトに隣接する任意の間隙、オブジェクトを位置決定および向き決定した後の任意の空白セルまたは間隙のうちの少なくとも１つに基づいて、オブジェクト７１２、８０８、９０６、１０１８、１１０８、および／または１２１２等のオブジェクトの最良の目的位置および向きを決定する。
【００６４】
ユーザインターフェースおよび／または入力デバイス３１４を介したユーザ入力は、ディスプレイ３１６、７１８、８２０、９１０等の一部分を選択することを含んでもよい。ディスプレイの選択された部分７０８および／または７１６は、各セルがポリオミノのミノの形状を含む、１つ以上のセルを含む。目的位置および向きは、決定された最良の目的位置および向きに対応してもよい。プロセッサおよび／またはＣＰＵ３０２は、ディスプレイの選択された部分、オブジェクトの幾何学形状、１つ以上の後に利用可能なオブジェクトの幾何学形状、１つ以上の可能な目的位置および向き候補、オブジェクトまたは他のオブジェクトの高さ対幅比、他のオブジェクトに隣接する任意の空白セルの数および位置、他のオブジェクトに隣接する任意の間隙、オブジェクトを位置決定および向き決定した後の任意の空白セルまたは間隙のうちの少なくとも１つに基づいて、オブジェクトの１つ以上の最良の目的位置および向きを決定してもよい。
【００６５】
ディスプレイ３１６は、第１のオブジェクト７１２、８０８、９０６、１０１８、１１０８、および／または１２１２、ならびに１つ以上の他のオブジェクト７１０および／または８１８のための形式以外の形式で、１つ以上の候補１０１２、１０１４、１０２２、１０２４、１２０６、１２０８、および／または１２１０を表示してもよい。形式は、色、陰影、透明度、テクスチャ、およびパターニングのうちの少なくとも１つを含んでもよい。ユーザ入力は、インターフェースおよび／または入力デバイス３１４を介して、最良の目的位置および向き候補のうちの１つの一部分を選択することを含んでもよい。１つ以上の候補は、第１の組１２０６の最良の目的位置および向き候補を含んでもよい。ディスプレイ３１６は、第２のユーザ入力に応じて、第１の組１２０６の候補の代わりに、第２の組１２０８および／または１２１０の最良の目的位置および向き候補を表示してもよい。第２のユーザ入力は、ディスプレイ３１６上のボタンを選択することを含んでもよい。最良の目的位置および向き候補１２０６、１２０８、および／または１２１０は、重複しなくてもよく、および／または相互に隣接しなくてもよい。
【００６６】
プロセッサおよび／またはＣＰＵ３０２は、第１の組１２０６の候補が、第２の組１２０８および／または１２１０の候補よりも高い次数または階数を有する候補を含むように、候補の次数または階数を決定してもよい。プロセッサおよび／またはＣＰＵ３０２は、オブジェクトが最初に表示されたときからの、オブジェクトを操作するための時間制限を設定してもよい。プロセッサおよび／またはＣＰＵ３０２は、移動速度にてディスプレイ上で第１の位置から第２の位置に向かうオブジェクトの移動に影響を及ぼすように、ディスプレイ３１６と連動してもよい。時間制限は、オブジェクトの移動速度および／またはディスプレイ上の第２の位置に基づいてもよい。幾何学形状は、２次元または３次元であってもよい。幾何学形状は、トリミノ、テトロミノ、ペントミノ、ポリオミノ、および／または別の形状を含んでもよい。幾何学形状は、多角形、三角形、四辺形、正方形、五角形、六角形、楕円形、円形、不規則な形状、および／または物理的アイテムに対応する２次元形状を含んでもよい。幾何学形状は、多面体、球体、回転楕円体、角錐、円筒、円錐、角柱、円環体、らせん、十二面体、不規則な形状の３次元形状、および／または物理的アイテムに対応する３次元形状を含んでもよい。
【００６７】
図１７Ａ−２１Ｃは、例えば、アプリケーション２０４等のポインタベースのオブジェクト制御アプリケーションと関連付けられるプロセッサおよび／またはＣＰＵ３０２によって実行される、種々のプロセスを図示する、種々の例示的なフロー図を含む。プロセッサおよび／またはＣＰＵ３０２は、種々のプロセス１７００、１７０２、１７０４、１７０６、１７０８、１８００、１９００、２０００、および２１００に基づいて、種々の特徴、オブジェクト移動、および／または目的位置の場所および向きを決定するために、人工知能（ＡＩ）アプリケーションを使用してもよい。プロセス１７００、１７０２、１７０４、１７０６、１７０８、１８００、１９００、２０００、および２１００は、ディスプレイ３１６上のオブジェクトの配置を評価するために使用される、ＡＩ呼び出しと関連付けられる種々のプロセスを含む。ＡＩプロセスは、オブジェクトおよび／またはピースを配置する場所を決定するためだけでなく、そこでピースおよび／またはオブジェクトを得るために必要とされる経路および操作を決定するためにも、図２のプロセス２２０、２２２、２２４、および／または２２６の一部として含まれてもよい。したがって、種々のＡＩプロセス１７００、１７０２、１７０４、１７０６、１７０８、１８００、１９００、２０００、および２１００は、マウスおよび／またはタッチデバイスを用いて達成するのが煩雑である、ピースおよび／またはオブジェクトの複雑な操作のユーザのためのタスクを緩和する。
【００６８】
プロセス１７００は、順序付けられた移動を得るステップ１７１０および１７１２を含む。プロセス１７０２は、マウスカーソルの位置と関連付けられ得る入力座標に基づいて最良の移動を得るステップ１７１４および１７１６を含む。プロセス１７０４は、最良のオブジェクトおよび／またはピースを得るステップ１７１８、１７２０、および１７２２を含む。プロセス１７０６は、重複なしで最良の移動を得るステップ１７２４および１７２６を含む。プロセス１７０８は、入力座標に基づいて最良の移動を得るステップ１７２８および１７３０を含む。
【００６９】
図１８Ａ、１８Ｂ、および１８Ｃは、可能な適合表示のマウス制御プロセスと関連付けられるステップ１８０２−１８５０を含む。図１９Ａ、１９Ｂ、および１９Ｃは、最良適合表示のマウス制御プロセスと関連付けられるステップ１９０２−１９６２を含む。図２０Ａ、２０Ｂ、および２０Ｃは、別の可能な適合表示のマウス制御プロセスと関連付けられるステップ２００２−２０５４を含む。図２１Ａ、２１Ｂ、および２１Ｃは、別の最良適合表示のマウス制御プロセスと関連付けられるステップ２１０２−２１５４を含む。
【００７０】
開示されたシステムおよび方法はさらに、複数のユーザが一緒にパズルゲームで遊ぶことを可能にする、オンラインマルチプレーヤプラットフォームをサポートすることができる。ゲームシステムは、複数のプレーヤが相互と対戦し、および／またはチームを結成して他のチームと対戦することを可能にすることができる。場合によっては、開示されたシステムおよび方法は、いくつかの他のプレーヤのゲーム進行に関係する情報を１人以上のプレーヤに提供することができる。
【００７１】
本発明に関与する方法は、コンピュータ使用可能および／または可読媒体を含む、コンピュータプログラム製品で具現化されてもよいことが当業者に明白となるであろう。例えば、そのようなコンピュータ使用可能媒体は、その上に記憶されたコンピュータ可読プログラムコードを有する、ＣＤ  ＲＯＭディスク、従来のＲＯＭデバイス、またはランダムアクセスメモリ等の読取専用メモリデバイス、ハードドライブデバイスまたはコンピュータディスケット、フラッシュメモリ、ＤＶＤ、または任意の類似デジタルメモリ媒体から成ってもよい。
【００７２】
当業者であれば、本明細書で説明される種々の構成が、本発明から逸脱することなく組み合わせられてもよいことを認識するであろう。本発明は、本明細書で開示される形態以外の多くの形態を成してもよいことも認識されるであろう。したがって、本発明は、開示された方法、システム、および装置に限定されないが、以下の請求項に関して当業者によって理解されるようなその変形例および修正を含むことを目的としていることが強調される。
【図４】
0006034930.tif 000002
【図５】
0006034930.tif 000003
【図７】
0006034930.tif 000004
【図８】
0006034930.tif 000005
【図９】
0006034930.tif 000006
【図１０】
0006034930.tif 000007
【図１１】
0006034930.tif 000008
【図１２】
0006034930.tif 000009
【図１４】
0006034930.tif 000010
【図１】
0006034930.tif 000011
【図２】
0006034930.tif 000012
【図３】
0006034930.tif 000013
【図６】
0006034930.tif 000014
【図１３】
0006034930.tif 000015
【図１５】
0006034930.tif 000016
【図１６】
0006034930.tif 000017
【図１７】
0006034930.tif 000018
【図１８】
0006034930.tif 000019
【図１９】
0006034930.tif 000020
【図２０】
0006034930.tif 000021
【図２１】
0006034930.tif 000022