私が使用できるゲームデザインテクニックはありますか?すなわち。ゲームは不可能なシナリオを含んではいけません。
私が推測する限りでは、すべての宝石と、3または4の宝石グループが溶解した後にユーザーにどこを与えるかによって異なります。
出来ますか ? An always infinitely solvable Bejewelled game?
私が使用できるゲームデザインテクニックはありますか?すなわち。ゲームは不可能なシナリオを含んではいけません。
私が推測する限りでは、すべての宝石と、3または4の宝石グループが溶解した後にユーザーにどこを与えるかによって異なります。
出来ますか ? An always infinitely solvable Bejewelled game?
回答:
無限の宝石をちりばめたゲームを作成することは確かに可能です。PopCapは、最新のBejeweled 3(モードは "Zenモード"と呼ばれます)を使用して、それを行っています。
まず、最初にボードを生成するときに、少なくとも1つの有効な手があることを確認する必要があります。
プレーヤーが移動するたびに、結果のボードを計算して有効な移動を検索する必要があります。何も見つからない場合は、生成される宝石を制御して、有効なボードを復元する必要があります。(少なくとも)1つの移動で3つの宝石が削除され、3つの交換用宝石を生成する必要があるため、これらの3つの交換用宝石が現在のボードで別の有効な移動を確実に形成するようにすることができます。エンドレスモードを達成しました。
もちろん、新しい動きが新しい宝石で表示されるのは理想的ではありませんが、常にプレイ可能なボードを確保するための安価な方法です。また、有効な移動を作成することは、実際には宝石の位置を交換することを意味するので、他の移動が可能になるまでには時間がかかりません。
既に述べたように、爆弾やボードの大きな部分をクリアする他の手段はゲームプレイに多様性を追加しますが、エンドレスモードを保証するために必要ではありません。
はい。これは実際には可能です。ケースが定義されているため、これは停止問題のケースではなく、恣意的ではありません。これに答えるには、2つの部分に答える必要があります。最初に解決策が存在する場合、それを見つけることができます。次に、有効な解決策が常に見つかるでしょう。
の最初の部分は、プレイ可能なボードを作成する一連の交換用タイル(宝石)を見つける方法です。これはブルートフォースメソッドを使用して実現できます。可能な交換セットをすべて、再生可能なセットに遭遇するまでチェックしてください(より最適な非ブルートフォースメソッドもあります)。
2番目の部分は、再生可能なセットを生成する置換セットが常に存在するかどうかを判断することです。1回の移動で削除されるタイルのセットは、3つのタイルのセットのスーパーセットになります。したがって、削除されるタイルが3つだけの最小の場合、再生可能なセットが常に見つかると、削除されたタイルのすべての可能なパターンに対して削除されたタイルのサブセットである3つの削除されたタイルの各セットのすべてのソリューションを含むため、再生可能なセットがあります。
行/列の3つのタイルのみをクリアする最小限のケースでは、タイプBのタイルで区切られたタイプAの2つのタイルを含む置換セット(タイプAは、クリアされた3つのセットの上下のタイルのタイプです) 3列の場合、または3行の場合は左または右)。これにより、これらの3つのタイルの中心を適切なAタイルと並べ替えて3つのタイルのセットを作成する動きが生じます。これは、元のタイルがクリアされた列/行に沿って有効な移動を生成するタイルのセットが常に見つかることを示しています。その列または行への将来の移動を制限することは、無限のプレイアブルゲームの有効な解決策でありながら、あまり面白くないでしょう。しかし、一般的な宝石で飾られたスタイルのゲームのすべてのルールを使用して、その行/列の外への移動も可能にするソリューションが常に存在することを示すのは簡単です。3つのAタイプのタイルをドロップすると仮定します。ここで、Aは削除された3つのセットの上下または左右のタイルの1つです。これにより、「爆弾」スタイルのタイルが作成され、削除すると領域がクリアされます。次に、別のタイルの代替セットをドロップすると、その爆弾とのマッチングが行われ、タイルの領域がクリアされます。この領域には、他の行内にいくつかの3つのタイルサブセットが含まれます。つまり、将来の移動は必ずしも単一の行/列に限定されるわけではありません。これにより、「爆弾」スタイルのタイルが作成され、削除すると領域がクリアされます。次に、別のタイルの代替セットをドロップすると、その爆弾とのマッチングが行われ、タイルの領域がクリアされます。この領域には、他の行内にいくつかの3つのタイルサブセットが含まれます。つまり、将来の移動は必ずしも単一の行/列に限定されるわけではありません。これにより、「爆弾」スタイルのタイルが作成され、削除すると領域がクリアされます。次に、別のタイルの代替セットをドロップすると、その爆弾とのマッチングが行われ、タイルの領域がクリアされます。この領域には、他の行内にいくつかの3つのタイルサブセットが含まれます。つまり、将来の移動は必ずしも単一の行/列に限定されるわけではありません。
任意のコンピュータプログラムの説明を前提として、ある時点で停止するか、永久に実行されるかを推測できますか?これが「問題」と呼ばれるのには理由があります。
短い答えは次のとおりです。いいえ、宝石をちりばめたゲームが違法な動きをしないことは保証できません。保証するには無限の計算時間がかかるからです。