各ネットがグリッドの 1 つの要素のみをカバーするように、プレイヤー (人間) が N*M グリッドにネットを配置できる SDL ゲームを設計しています (グリッドには N*M 要素/セルがあります)。現在、ゲームの各ラウンド (ゲームには現在 10 ラウンドあります) で、プレーヤーはネットを購入することでグリッド上にネットを配置できます。各ネットのコストは NetCost (プレーヤーのスコアから差し引かれます) で、落下するボールをキャッチします。また、プレーヤーは、任意のラウンドの開始時に、エッジを共有するセル/要素 (つまり、上、下、左、右) にネットを移動できます。ボールが各ラウンドに落ちるようになりました (各ラウンドは理論的には瞬間的ですが、ゲームのビジュアルでは 2 秒続きます) プレーヤーのネットは、セルに配置されたネットがその特定のセルに落ちたすべてのボールをキャッチするように、これらのボールをキャッチします。逃したボールごとに、スコア B にペナルティがあります。プレーヤーは固定スコアで開始します。コンピューター プレーヤーと人間のプレーヤーは同じラウンドを別々にプレイし、人間のプレーヤーの選択がコンピューターのプレーヤーに影響を与えないようにします。
ここで、シングル プレーヤー モード用の効率的なコンピューター プレーヤーを設計する必要があります。コンピューター プレーヤーも、人間のプレーヤーと同じスコアから開始します。コンピュータプレーヤーの目的は、ユーザーが利用できる同じネットを使用して、同じグリッドで可能な最大スコアを獲得することです。コンピュータ プレーヤーへのこれらの入力は、ラウンド R の開始時に各ラウンド R に落下するボールとそのグリッド位置です。このゲームの効率的なコンピューター プレーヤーを設計するにはどうすればよいですか?
グリッド サイズは各ラウンドで一定で、30x30 であることに注意してください。両方のプレーヤーの開始スコアは 100,000 に固定されています。ただし、ネット コストとボール ドロップ ペナルティは、ゲームの開始時、つまりラウンド 1 の前にユーザーが選択できます。これらのコストは、すべてのラウンドで一定のままです。ネットの数は制限される場合があります。各ラウンドで200としましょう。ここで適用できるアルゴリズムがわかりません。誰かが私を正しい方向に導いてくれますか?