@Override public String[] draw() { Piece[][] pieces = solver.getSolution(); String[] finalBoard = new String[pieces.length]; char[][] board = new char[pieces.length][pieces[0].length]; for (int i = 0; i < pieces.length; i++) { for (int j = 0; j < pieces[i].length; j++) { Piece piece = pieces[i][j]; if (piece == null) { board[i][j] = '?'; } else { switch (piece.getPieceType()) { case CORNER: board[i][j] = 'C'; break; case EDGE: board[i][j] = 'E'; break; case ALL_IN: board[i][j] = 'X'; break; case ALL_OUT: board[i][j] = 'O'; break; case THREE_IN: board[i][j] = 'K'; break; case THREE_OUT: board[i][j] = '3'; break; case OPPOSITES: board[i][j] = 'O'; break; case ADJACENTS: board[i][j] = 'A'; } } } } for (int i = 0; i < board.length; i++) { finalBoard[i] = new String(board[i]); } return finalBoard; }