Battleship

1 输出棋盘的方法:


static void drawBoard(char[][] board) {
        char letters = 'A';
        int digits = 1;

        for (int i = 0; i <= 10; i++) {
            for (int j = 0; j <= 10; j++) {
                if (i == 0 && j == 0) {
                    System.out.print("  ");
                } else if (j == 0) {
                    System.out.print(letters + " ");
                    letters++;
                } else if (i == 0) {
                    System.out.print(digits + " ");
                    digits++;
                } else {
                    System.out.print(board[i - 1][j - 1] + " ");
                }
            }
          System.out.println();
      }
}

 static String[][] createMatrix(int row, int col, String filling) {
        String[][] matrix = new String[row][col];
        for (String[] vector : matrix) {
            Arrays.fill(vector, filling);
        }
        return matrix;
}

  1 2 3 4 5 6 7 8 9 10
A ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
B ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
C ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
D ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
E ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
F ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
G ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
H ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
I ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
J ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

2 在循环中判断语句的另一种替代方法

 if (!isValidLocation(startRow, startColumn, endRow, endColumn)) {
       continue;
} else if (!isValidLength(startRow, startColumn, endRow, endColumn, limit)) {
      continue;
} else if (isOccupied(grids, startRow, startColumn, endRow, endColumn)) {
      continue;
} else if (isAdjacent(grids, startRow, startColumn, endRow, endColumn)) {
      continue;
}

以上语句与下面等同

static boolean isInputValid(grids, startRow, startColumn, endRow, endColumn,limit) {
        return isValidLocation(startRow, startColumn, endRow, endColumn) && isValidLength(startRow, startColumn, endRow, endColumn, limit) && 
                        isOccupied(grids, startRow, startColumn, endRow, endColumn) && isAdjacent(grids, startRow, startColumn, endRow, endColumn);
}

3 定义数组的新方法

static Ship[] spawnFleet() {
        return new Ship[] {
                new Ship(SHIPTYPE.Aircraft_Carrier),
                new Ship(SHIPTYPE.Battleship),
                new Ship(SHIPTYPE.Submarine),
                new Ship(SHIPTYPE.Cruiser),
                new Ship(SHIPTYPE.Destroyer)
      };
}

4 二维数组赋值

public Battlefield() {
        field = new String[10][10];
        for (String[] row : field)
            Arrays.fill(row, "~");
}
posted @ 2020-11-11 17:00  longlong6296  阅读(165)  评论(0)    收藏  举报