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, "~");
}