1

プレイヤー対PCの三目並べプログラムを作成しています。PC は自分ができる最善の動きを計算し、それを実行する必要があります。可能なすべてのステップを計算するには、TreeNode は完璧に聞こえますが、問題は、各レベルの後に子の量が少なくなることです。たとえば、次のようになります。

^ は空を意味します

^ X O 
O O X
^ X ^

この状況では、3 つの子を持つツリーが必要になりますが、この状況では:

^ ^ ^
^ X ^
^ ^ ^

8 つの子を持つツリーが必要です。それで、子供の数を変更することは可能ですか?質問をしている間、不要な子にnullを置くことが解決策になると思いましたが、より良い提案はありますか?それとも、ツリーでさえ私の状況に最適なオプションではありませんか?

4

2 に答える 2

2

はい、簡単にできます。配列を使用してノードの子を保持する代わりに、またはListのような可変サイズの実装を使用します。ArrayListLinkedList

または、単に配列を使用して、子の数をパラメーターとして のコンストラクターに渡すこともできますTreeNode。8 人の子供がいる場合TreeNode a、各子供は最大で 7 人の子供を持つことになります。

于 2012-12-09T23:58:19.133 に答える
1

子への配列を含むノードで構成された独自のTreeオブジェクトを実装する必要があります。このようにして、ヒューリスティック手法を実装して、最適なソリューションからおおよその距離測度を取得することもできます。

于 2012-12-10T00:22:23.887 に答える