Witam serdecznie. Ostatnio piszę program na zajęcia z programowania Javy na uczelnie i mam problem ponieważ nie potrafię zapisać wyniku metody preetyPrint jako stringa. Potrzebuję to zrobić ponieważ return metody getGameState musi zwracać ciąg znaków przedstawiający stan gry. Domniemam że muszę użyć Stringbuildera jednak nie potrafię tego zrobić. Oto kilka metod dla zrozumienia.
private String[][] initBoard() {
String[][] startBoard = new String[9][9];
startBoard[0] = new String[]{"8", bChar, bChar, bChar, bChar, bChar, bChar, bChar, bChar};
for (int i = 0; i < 6; i++) {
startBoard[i + 1] = new String[]{valueOf(7 - i), eChar, eChar, eChar, eChar, eChar, eChar, eChar, eChar};
}
startBoard[7] = new String[]{"1", wChar, wChar, wChar, wChar, wChar, wChar, wChar, wChar};
startBoard[8] = new String[]{" ", "a", "b", "c", "d", "e", "f", "g", "h"};
return startBoard;
}
private void preetyPrint(String[][] board) {
for (int i = 0; i < 9; i++) {
System.out.println(Stream.of(board[i]).collect(Collectors.joining("")));
}
}
@Override
public String getGameState(int game, int move) {
String[][] gameBoard = initBoard();
for(int i =1;i <=move; i++) {
try {
ResultSet resultSet = statement.executeQuery(String.format(QUERY, game, i));
String startField = resultSet.getString(START);
int sFR = 8 - Integer.parseInt(startField.substring(1));
int sFC = Character.getNumericValue(startField.charAt(0)) - 9;
String endField = resultSet.getString(END);
int eFR = 8 - Integer.parseInt(endField.substring(1));
int eFC = Character.getNumericValue(endField.charAt(0)) - 9;
gameBoard[eFR][eFC] = gameBoard[sFR][sFC];
gameBoard[sFR][sFC] = eChar;
} catch (SQLException e) {
e.printStackTrace();
}
}
preetyPrint(gameBoard);
return "";//fixme
}</code></code>