1

BejeweledBlitzをしばらくプレイしています。はい、それは中毒です。ゲームについて考えてみると、一部のボードでは、ボードの上部だけがプレイ可能で、下部が乾いて(動きがない)なっていることがわかりました。多くの場合、ボードのその部分は乾き、最後の動きでクリアされたエリアの動きが残ります。

ボードが完全に乾くことがないので、明らかにプログラムは、ボードが乾くのを防ぐためにドロップするものを選択できるようにするある種の計算を行っています。

この「モード」では、アルゴリズムが宝石を落とすことが非常に一般的であることに気づきました。これにより、水平領域により多くの非乾燥領域が表示されます。おそらくそれほど頻繁ではないのは、ボードの下部を再び開くように設計されているように見えるドロップです。

ですから、私の質問は、「常に利用可能な動きがあることを保証するアルゴリズムを設計するにはどうすればよいでしょうか?」です。

4

2 に答える 2

1

私は少し前に3列のゲームを書きました。その問題に対処する方法は、ランダムにドロップする宝石を選択し、すべての有効な動きを数えることです。選択したジェムが少なくとも1つの有効な移動を提供しなかった場合は、別のジェムのセットを選択します。

于 2010-04-18T07:57:11.883 に答える
1

これは、可能な「宝石のドロップ」のスペースを探索することで解決できます。次に、要求したルールに基づいて評価を適用します。高い評価はルールに従うことを意味し、低い評価は従わないことを意味する可能性があり、最高の評価を持つ1つのスロットを選択します。

これを説明するのは簡単ではありませんが、ルールベースのアプローチでうまくいくはずです。

于 2010-04-08T13:37:45.843 に答える