2

私はAndroidアプリを書きました。これは、古いボードゲームのコネクト4のシンプルなバージョンです。現在、私の「ボード」オブジェクトは、ボード上に配置されたカウンターを保持しています。このゲームには2人のプレイヤーがいます。

Boardクラスは7つのArrayListオブジェクトで構成され、各オブジェクトはボード上の列を表します(ボードは7 x 6以上)。たとえば、赤いプレーヤーが画面の3番目の列をクリックすると、

boardObj.addCounter("red", column);

addCounter()関数のボードオブジェクト内では、次のような動作をします。

column3.add(playerColor);

したがって、ArrayList column3は、別の項目を追加します。

私の質問は、7つのArrayListを使用するのではなく、使用できるより良いデータ構造はありますか?ボードにカウンターを追加した後に呼び出される勝ちかどうかをチェックする機能が、CPUの面でかなり高価な機能になっていることに気づきました。データを取得および設定し、checkwin()アルゴリズムを最高のパフォーマンスで実行できるようにする構造はどれですか?

4

1 に答える 1

2

7x6のボードがあり、同じ行、列、または対角線上の要素をテストする必要があります。

2次元配列が最も明白な選択です。私はそれを使います。

于 2012-10-23T22:56:45.073 に答える