最も基本的なミニマックスは、リーフ ノードのみを評価し、勝ち、負け、引き分けをマークし、それらの値をツリーに戻して中間ノードの値を決定します。ゲーム ツリーが扱いにくい場合は、カットオフの深さをミニマックス関数の追加パラメーターとして使用する必要があります。深さに達したら、不完全な状態に対して何らかの評価関数を実行する必要があります。
ミニマックス検索のほとんどの評価関数はドメイン固有であるため、特定のゲームのヘルプを見つけるのは難しい場合があります。評価では、特定のプレイヤーが勝利するポジションのパーセンテージを返す必要があることを覚えておいてください (ネガマックス実装を使用している場合ではなく、通常は最大)。あまり研究されていないゲームは、より研究されている別のゲームによく似ています。これは、ゲームのピックアップ スティックと非常に密接に結びついています。ミニマックスとアルファベータのみを使用すると、ゲームは扱いやすいと思います。
非ターミナル ポジションの評価関数を作成する必要がある場合は、これがスティック ゲームの分析に少し役立ちます。これがデート ゲームに役立つかどうかを判断できます。
最終的な位置と、その位置につながる可能性のあるすべての動きを見て、結果を強制する方法を探し始めます。スティック ゲームでは、最終的な位置は最後の移動で 3 つ以下のスティックが残っていることです。したがって、ターミナル ポジションからすぐに進むポジションは、対戦相手に 4 本のスティックを残すことになります。目標は、何があっても対戦相手に 4 本のスティックを残すことです。これは、5 本、6 本、または 7 本のスティックがあなたに残されている場合に行うことができます。あなたが 5、6、または 7 のいずれかになるために対戦相手がいる必要がある場所は 8 です。このロジックを延々と続けると、パターンが非常に迅速に利用可能になります。常に 4 で割り切れる数を相手に残せば勝ち、それ以外は負けです。
これはかなり些細なゲームですが、ヒューリスティックを決定する方法は、割り当てに直接適用できるため、重要です。最後に移動したものが最初に移動し、一度に 1 つの日付属性しか変更できないため、勝つには残り 2 つの移動が必要であることがわかります... など。
頑張ってください、あなたが何をしているのか教えてください。