ボンバーマンのようなパズルゲームでは、これらの行は、(2つの箱の間に)爆弾を落とすのに最適な場所を特定するために作られています。それは13 * 11グリッドです。Coord ArrayListsは同じサイズでなければなりません
2つのオブジェクトのサイズを確認すると、Xをストックしているものはもう一方のものよりはるかに大きくなります。 彼らは同じサイズの両Xが彼のYに来るようになっています。
最初の最良の動きは同じY軸上にあるので、私は2番目のarraylistがそれらを保存する新しい部屋を作っていないと思うそれはArrayListであり、Set soではありませんか?)。
ArrayList<Integer> bestSpotX=new ArrayList<Integer>();
ArrayList<Integer> bestSpotY=new ArrayList<Integer>();
// ...
for (int line=0, col=0;line<11 && col<13;line++, col++) {
if ((map[line].charAt(col)=='0')&&(map[line+2].charAt(col)=='0')) {
bestSpotX.add(col);
bestSpotY.add(line+1);
}
}
私の反復は間違っているのですか、それとも私がcoord値を追加する方法ですか?
"2つのオブジェクトのサイズを確認すると、Xをストックしているものは他のものよりもはるかに大きくなります。"あなたの質問には、このアサーションをチェックするコードはありません。提示されたコードから、サイクルの前後に問題が起こる可能性が十分にあります。 –
私の貧しい私の英語のために申し訳ありません、エイドリアン。実際、コードの残りの部分は確かです。シンプルな配列を反復処理するとうまくいくので、長さを「ハードコード」する必要があります(各ゲーム、クレートの位置の変更など) 。だから私はArrayListを選んだのです。 – GwadaKing