使用 chars(家庭作业)检查 2d 数组中的某些单词



我目前正在编写一个程序,需要我接受类似于下面的输入。 6 6 d e v o l g R E D P H K 秦 中 中 P o a a f o v a m m n l Q t f o x b 前两个整数表示行和列,然后其余整数表示要放置在方法中的实际字符。我已经成功地创建了一个在数组中创建和读取的方法。 该程序是一个单词搜索谜题解决器。它需要几种方法,但我需要关注的是"检查"方法和左右检查......到目前为止,这是我使用此方法的代码。

public static boolean checkUp(char [][] puzzle, String word, int row, int col) {
System.out.println("Row: " + row +  " Col: " + col + " Word: " + word.charAt(0) + " CurLet: " + puzzle[row][col] + " Word length: " + word.length());
if (row==0) {
return false;
} else if (word.length()==1) {
return true;
} else if (word.charAt(0) == puzzle[row][col]){
checkUp(puzzle,word.substring(1),row-1,col);            
}
return false;
}

一些限制,我必须逐个字符地读取数组和其中的所有内容,我无法将其转换为字符串。如果它们匹配,我只需将行倒计时向下移动 1 即可在此特定示例中向上移动。 有没有人对如何做到这一点有更好的想法?在这一点上,我完全被难住了,事实上迷失了。我的朋友帮我写到现在为止,但我真的忘记了他到底想做什么。

首先,您必须检查单词是否比给定的行或列长。然后你遍历这个词并比较字符...

public static boolean checkUp(char[][] puzzle, String word, int row, int col) {
if (row + 1 - word.length() < 0) return false;
for (int i = row; i > row - word.length(); i--) {
if (puzzle[i][col] != word.charAt(i)) {
return false;
}
}
return true;
}
public static boolean checkRight(char[][] puzzle, String word, int row, int col) {
if (col + word.length() > puzzle[row].length) return false;
for (int i = col; i < col + word.length(); i++) {
if (puzzle[row][i] != word.charAt(i)) {
return false;
}
}
return true;
}

最新更新