印刷すると次のように印刷される配列があります。
W V E R T I C A L L
R O O A F F L S A B
A C R I L I A T O A
N D O D K O N W D C
D R K E S O O D D K
O E E P Z E G L I W
M S I I H O A E R A
A L R K R R I R E R
K O D I D E D R C D
H E L W S L E U T H
次のように印刷するにはどうすればよいですか。
# # # # # # # # # # # #
# W V E R T I C A L L #
# R O O A F F L S A B #
# A C R I L I A T O A #
# N D O D K O N W D C #
# D R K E S O O D D K #
# O E E P Z E G L I W #
# M S I I H O A E R A #
# A L R K R R I R E R #
# K O D I D E D R C D #
# H E L W S L E U T H #
# # # # # # # # # # # #
余分な文字に対応するためにサイズを大きくしようとしましたが、範囲外の例外が発生し続けています。私は基本的に、配列の周りに境界線を作成するために文字以外の文字を取得しようとしています。これにより、クロスワードソルバーを実装するときに、周囲の文字で文字を検索するときに、境界にヒットせず、代わりに文字以外の文字にヒットしますそして false を渡します。
これは私の配列を構築する私のコードです:
for (int i=1; i<row; i++){
String getChar = (new String(sc.next()));
for(int j = 1;j<col; j++){
puzzle[i][j] = getChar.charAt(j);
}
}
どんな助けでも大歓迎です!
編集:これは私の配列を出力します:
for (int i=0; i<puzzle.length; i++){
System.out.print(Arrays.toString(puzzle[i]));
System.out.println("");
}
EDIT2:これは私のチェック方法です:
private static boolean checkNE(int row, int col, String word, char[][] puzzle) {
//Checking diagonals direction
for(int letter = 1; letter < word.length(); letter++) {
if(puzzle[row - letter][col + letter] != word.charAt(letter)) {
return false;
}
}
return true;
}