我无法手动测试我方法的代码,因为我还没有完成其他相关代码,但我觉得方法public boolean isFilledAt(int row, int col)
的逻辑是错误的。如果形状在给定的行/列位置具有填充块(任何true
),则该方法返回char
,如果块为空,则返回false
(点'.'
) 。如果该位置超出界限,请提出FitItException
并提供信息性消息。请问smb请仔细阅读并告诉我该方法的代码是否有任何问题?谢谢!
public class CreateShape {
private int height;
private int width;
private char dc;
private Rotation initialPos;
private char[][] shape = new char[height][width];
public boolean isFilledAt(int row, int col)
{
if(row < 0 || row >= height || col < 0 || col >= width)
throw new FitItException("Oops! Out of bounds!");
else
{
for (int i = 0; i < shape.length; i++)
for (int j = 0; j < shape[i].length; j++) {
if (shape[row][col] == dc)
return true;
}
}
return false;
}
答案 0 :(得分:1)
public boolean isFilledAt(int row, int col) {
if(row < 0 || row >= height || col < 0 || col >= width)
throw new FitItException("Oops! Out of bounds!");
else
return (shape[row][col] == dc);
}
与您当前的代码相同。我不确定您要通过数组,但您甚至没有使用i
和j
变量。