private BoardPosition processPosition(Position position) { if (board.positionWasShotAt(position)) { if (board.positionIsTakenByShip(position)) { Ship ship = board.getShipAtPosition(position); if (ship.sunk()) { return BoardPosition.createShipSunk(); } return BoardPosition.createShipHit(); } return BoardPosition.createWaterHit(); } if (mask) { return BoardPosition.createUnknown(); } if (board.positionIsTakenByShip(position)) { return BoardPosition.createShip(); } return BoardPosition.createWater(); }
/** Create a new {@code BoardPosition} with the same values as the one specified */ public static BoardPosition valueOf(BoardPosition bp) { return valueOf(bp.getX(), bp.getY()); }