这是我的方法:
public static boolean hasDuplicatesInSections(int[][] puzzle){
z = 2;
w = 0;
while(z <= 8){
for(i = w; i <= z; i++){
for(j = w; j <= z; j++){
for(l = w; l <= z; l++){
for(k = w; k <= z; k++){
if ((puzzle[l][k] == puzzle[i][j]) &&
(puzzle[l][k] != 0) &&
(k != j)){
System.out.println("There was a match in a square. Shame on you.");
return true;
}
}
}
}
}
z += 3;
w += 3;
}
System.out.println("There wasn't a match in a square. Good job!");
return false;
}
我为拼图制作了一个9x9的2-D int数组。 0意味着只有一个空白区域。该方法查看每个3x3平方,并说明是否在一个中找到重复项。但有时它仍然说有没有匹配的时候。任何人都可以看到可能出错的地方吗?
答案 0 :(得分:0)
发现了什么问题。除了检查时,我的所有比较和迭代都是正确的:
(k != j))
只检查列是否等于错误的列。所以我所做的只是添加行和列的索引,然后比较它们:
(l+k) != (i+j))
完美无缺!