import java.io.*; import java.util.*; import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.awt.image.*; import javax.imageio.*; public class Board extends Container{ private ShipPart[][] board; public Board(int r, int c){ board = new ShipPart[r][c]; clear(); } public ShipPart[][] getBoard(){ return board; } public void set(int r, int c, ShipPart p){ board[r][c] = p; } public int getRow(ShipPart p){ for(int r=0; r<board.length; r++){ for(int c=0; c<board[r].length; c++){ if (board[r][c].equals(p)){ return r; } } } return -1; } public int getColumn(ShipPart p){ for(int r=0; r<board.length; r++){ for(int c=0; c<board[r].length; c++){ if (board[r][c].equals(p)){ return c; } } } return -1; } public boolean movePartForward(ShipPart p){ int dir = p.getShip().getDirection(); int dRow = 0; int dCol = 0; int row; int col; row = getRow(p); col = getColumn(p); if(row<0 || col<0){ return false; } switch(dir){ case 0: dRow = -1; break; case 1: dCol = 1; break; case 2: dRow = 1; break; case 3: dCol = -1; break; } board[row+dRow][col+dCol] = p; board[row][col] = null; return true; } public void clear(){ for (ShipPart[] row : board){ for(ShipPart part : row){ part = null; } } } public String toString(){ String s = ""; for (ShipPart[] row : board){ for(ShipPart p : row){ s = s + p + " "; } s = s + "\n"; } return s; } }