在类似炸弹人的益智游戏中,这些线路是为了确定投放炸弹的最佳位置(在两个板条箱之间)。这是一个13 * 11的网格。
当我检查2个物体的大小时,放置X的那个远远大于另一个。 它们应该具有相同的尺寸,每个坐标X与他的Y一起出现。
由于第一个最好的动作是在同一个Y轴上,我怀疑第二个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值的方式?
答案 0 :(得分:0)
为什么:
ArrayList<Integer> bestSpotX=new ArrayList<Integer>();
ArrayList<Integer> bestSpotY=new ArrayList<Integer>();
而不是:
class LineColLocation {
protected int line, col;
// constructors, setters and getters
}
ArrayList<LineColLocation> bestSpots=new ArrayList<LineColLocation>();
int bestSpotLine=...; // ... whatever logic to ...
int bestSpotCol=...; // determine a *best spot*
LineColLocation bestSpot=new LineColLocation(bestSpotLine, bestSpotCol);
bestSpots.add(bestSpot);
这样你就不会意外地弄乱same number of X and Y in two different lists
的**隐含要求* - 你只是实现了这个约束(明确表示),不需要验证这个约束,你和& #39;每次你都可以把事情搞砸了。