Проект представляет собой простую шахматную игру, требующую вывода на консоль информации о матче, включая доску и все фигуры. Он также принимает вводимые пользователем данные, очищает экран и печатает обновленное совпадение каждый ход.
Следует ли мне вызывать метод print() для каждой отдельной строки или фрагмента информации (Пример 1) или мне следует добавить строки с необходимым сообщением и вызвать print() только один раз для его отображения (Пример 2)?
Основные проблемы здесь: написание легко читаемого кода и быстрое выполнение.
Пример 1
Код: Выделить всё
public void printBoard(ChessPiece[][] pieces, boolean[][] possibleMoves) {
for (int i = 0; i < pieces.length; i++) {
System.out.print((8 - i) + " ");
for (int j = 0; j < pieces[i].length; j++) {
if (possibleMoves != null && possibleMoves[i][j]) {
System.out.print(ANSI_BLUE_BACKGROUND);
}
if (pieces[i][j] == null) {
System.out.print("-");
} else {
String color = pieces[i][j].getColor() == Color.WHITE ? ANSI_WHITE : ANSI_YELLOW;
System.out.print(color + pieces[i][j]);
}
System.out.print(ANSI_RESET + " ");
}
System.out.println();
}
System.out.println(" a b c d e f g h");
}
Код: Выделить всё
public void printBoard(ChessPiece[][] pieces, boolean[][] possibleMoves) {
StringBuilder stringBuilder = new StringBuilder();
for (int i = 0; i < pieces.length; i++) {
stringBuilder.append((8 - i) + " ");
for (int j = 0; j < pieces[i].length; j++) {
if (possibleMoves != null && possibleMoves[i][j]) {
stringBuilder.append(ANSI_BLUE_BACKGROUND);
}
if (pieces[i][j] == null) {
stringBuilder.append("-");
} else {
String color = pieces[i][j].getColor() == Color.WHITE ? ANSI_WHITE : ANSI_YELLOW;
stringBuilder.append(color + pieces[i][j]);
}
stringBuilder.append(ANSI_RESET + " ");
}
stringBuilder.append("\n");
}
stringBuilder.append(" a b c d e f g h");
System.out.println(stringBuilder.toString());
}

Подробнее здесь: https://stackoverflow.com/questions/788 ... nvocations