Tic Tac Toeのゲームに非常に基本的な AI を埋め込もうとしていますが、要求するのに最も適した正方形を識別するために使用する配列に問題が発生しています。
現在の状態のゲーム グリッドを表す 1 つの配列と、特定の正方形が要求された場合の外観を表す別の配列があります。
AI が変な判断をし続けるので、マイルストーンごとにさまざまな情報を報告するようにしました。
string[,] currentGrid;
string[,] hypotheticalGrid;
MessageBox.Show(currentGrid);
hypotheticalGrid = currentGrid;
hypotheticalGrid[x, y] = "O";
MessageBox.Show(currentGrid);
上記は実際のコードの非常に単純化されたバージョンであることに注意してください。
配列には線に沿って値が割り当てられ、メッセージ ボックスは含まれる値のシーケンスとして currentGrid を表示するように設定されます。
メッセージ ボックス間のコードを除いて、すべて正常に動作します。
問題は、後者が前者のコピーであり、2 つの間のスペースで currentGrid への変更が指定されていないにもかかわらず、2 つのメッセージ ボックスが異なる結果を表示することです。
間にある 2 行はソース コードから直接コピーされたもので、仮想グリッドにのみ影響します。明らかなように、これらの線は仮想グリッドをリセットし、問題の正方形に「O」を追加することになっています。
ただし、何らかの理由で「O」も現在のグリッドに配置されます。
私は何を間違っていますか?