ボードは現在のボードゲームです。これは、ゲームのボードを表すために使用する任意の構造にすることができます。
最初に呼び出されると、ミニマックス関数は、これまでに行われたさまざまなプレイ(ゲームの現在の状態)によって到達された現在のボード構成を受け取ります。ミニマックス機能では、ボードを変更します。各変更は、ゲームのルールに従って可能な動きを表す必要があります。これらの変更されたボードのそれぞれは、新しいミニマックス呼び出しへの引数として渡される必要があります。特定の深さ(つまり、反復回数)に達したら、評価関数を使用して最適な動きを選択し、変更されたすべてのボードにスコアを付け、スコアが最も高いボードを選択します。
あなたが読んでいるアルゴリズムは一般的であり、どんなゲームでも機能する可能性があります。ボードは、利便性、つまり、表現したいゲームのボードに最適なものに応じて定義できます。
三目並べの場合、ボードを3x3配列で表すと、ボードを変更できます。
int miniMax(char board[3][3], int iterations)
または、正方形ごとに2ビットを使用してボードを表現したい場合があります。
typedef struct {
unsigned square1: 2;
unsigned square2: 2;
unsigned square3: 2;
unsigned square4: 2;
unsigned square5: 2;
unsigned square6: 2;
unsigned square7: 2;
unsigned square8: 2;
unsigned square9: 2;
} Board;
ただし、三目並べの場合、最大深度が9であるため、軽量のボード表現は必要ありません。ボードゲームを表現するために使用する任意の構造である可能性があることを理解できるように、例を示します。
ミニマックス関数を扱う予定で、ゲームが三目並べよりもはるかに複雑な場合は、大きな改善であるアルファベータ法の使用を真剣に検討する必要があります。
編集:まったく異なるものである評価関数と混同される可能性があるため、ボードを「評価」と呼ぶべきではないと思います。