私は優れたプログラマーではないので、誰かが私を助けてくれるかどうか疑問に思っていました. 私の戦艦ゲームでは、Rect クラスから作成された船がありますが、それらが重複しているかどうかを確認する必要があります。これは私がこれまでに持っているものです。
編集: 正確に何が間違っているか: サイズ 2 と 5 の 2 つの船があります。つまり、船 1 の座標が (0,0)(0,1) で、船 2 の座標が (0,1) から (5,1) であるとします。ポイント(0,1)で船1の両方の座標をチェックするのに最適ですが、それだけです。これが理にかなっていることを願っています。したがって、(1,1) で (0,0) と (0,1) をチェックすると、エラーは表示されません
public boolean contains(Ship ship) {
int currentX = ship.getX();
int currentY = ship.getY();
int testX = xCoord;
int testY = yCoord;
if (rotated) { //if ship is horizontal enter
for (int j = 0; j < sizeOfShip; j++) {
for (int k = 0; k < ship.getSize(); k++) {
if (testX == currentX && testY == currentY) {
return false;
}
testX++;
}
if (ship.rotated)
currentX++;
else {
currentY++;
}
}
}
//
if (!rotated) {
for (int j = 0; j < sizeOfShip; j++) {
for (int k = 0; k < ship.getSize(); k++) {
if (testX == currentX && testY == currentY) {
return false;
}
testY++;
}
if (ship.rotated)
currentX++;
else {
currentY++;
} }
}
return true;
}