編集:この質問は、2048 年のゲームに最適なアルゴリズムは何ですか?の複製ではありません。
- その質問は、「ゲームに勝つための最良の方法は何ですか?」と尋ねます。
- この質問は、「どうすればゲームの複雑さを解決できるでしょうか?」と尋ねます。
それらはまったく異なる質問です。「勝利」状態に移行するために必要なステップには興味がありません。可能なステップの総数を計算できるかどうかを調べることに興味があります。
ゲームをうまくプレイするアルゴリズムを作成するための戦略について説明しているゲーム2048に関するこの質問を読んでいます。
受け入れられた回答には、次のことが記載されています。
ゲームは離散状態空間、完全な情報、チェスのようなターンベースのゲーム
その複雑さについて考えさせられました。チェスのような決定論的なゲームでは、(理論的には) 勝利状態につながる可能性のあるすべての動きを計算し、逆方向に作業して、その結果につながり続ける最良の動きを選択することができます。私はこれが多数の可能性のある動きにつながることを知っています(宇宙の原子数の範囲内の何か)..しかし、2048年は多かれ少なかれ複雑ですか?
擬似コード:
for the current arrangement of tiles
- work out the possible moves
- work out what the board will look like if the program adds a 2 to the board
- work out what the board will look like if the program adds a 4 to the board
- move on to working out the possible moves for the new state
この時点で、これが実行されるのを待っている間、ここにいると思います...
そこで私の質問は、このアルゴリズムをどのように書き始めるかということです。ゲームの複雑さを計算するのに最適な戦略は何ですか?
2048 とチェスの大きな違いは、プログラムが新しい牌を追加するときに 2 から 4 の間でランダムに選択できることです。
最終的には、ゲーム内で可能な順列の数を示す 1 つの図をプログラムに出力してもらいたいと考えています。これは可能ですか?