質問: 2048ゲームに最適なアルゴリズムは何ですか? 私は最近ゲームに出会いました 2048 。あなたは "より大きな"タイルを作るために四方のいずれかにそれらを動かすことによって同様のタイルを併合します。移動のたびに、新しいタイルが2または4の値を持つランダムな空の位置に表示されます。すべてのボックスがいっぱいになり、タイルを結合できる移動がない場合、ゲームは終了します。または、値が2048のタイルを作成します。1つは、目標を達成するために明確に定義された戦略に従う必要があります。だから、私はそれのためにプログラムを書くことを考えました。私の現在のアルゴリズム:while (!game_over) { for each possible move: count_no_of_merges_for_2-tiles and 4-tiles choose the move with a large number of merges } 私は、タイルを2と4の値でマージしようとしています。つまり、できるだけ2と4のタイルを使用するようにしています。この方法で試してみると、他のすべてのタイルは自動的にマージされていたので、戦略は良いようです。しかし、実際にこのアルゴリズムを使用すると、ゲームが終了する前に4000ポイントしか獲得できません。最高得点afaikは20,000点を少し上回っています。これは私の現在の得点よりもはるかに大きいです。上記より優れたアルゴリズムはありますか?
回答: このゲームにはすでにaiの実装があります ここ 。 readmeからの抜粋: このアルゴリズムは、深さ優先のアルファ - ベータ検索を繰り返し深くするものです。評価関数は、グリッド上のタイルの数を最小限に抑えながら、行と列を単調(すべて減少または増加)に保とうとします。 hacker news にこのアルゴリズムについての議論もありますが、これは役に立つかもしれません。