public void fill(ArrayList<String> a1) {
int i = 0;
while (i < a1.size()) {
if (i == 0) {
for (int j = 0; j < a1.get(i).length(); j++)
crossword[ROWS / 2][(COLUMNS / 4) + j] = a1.get(i)
.charAt(j);
i++;
}
if (i == 1) {
outerloop: for (int t = 0; t < ROWS; t++)
for (int s = 0; s < COLUMNS; s++)
for (int j = 0; j < a1.get(i).length(); j++)
if (crossword[t][s] == a1.get(i).charAt(j)) {
for (int z = 0; z < j; z++)
crossword[t - z - 1][s] = a1.get(i).charAt(
z);
for (int h = j + 1; h < a1.get(i).length(); h++)
crossword[t + h - j][s] = a1.get(i).charAt(
h);
crossword[t][s] = a1.get(i).charAt(j);
break outerloop;
}
i++;
}
}
}
以上是我在填字游戏板上使单词列表的前两个单词相互交叉的方法。我的问题是:
for (int z = 0; z < j; z++)
crossword[t - z - 1][s] = a1.get(i).charAt(z);
它获取交叉点前面的字母并将它们向后打印到交叉行上方。我的大脑现在充斥着各种各样的事情,我似乎无法理解如何让字母按正确的顺序排列。我无法附加图像来显示我的问题,但例如垂直单词“throwing”与字母“o”处的水平单词“clowning”相交会在 o 之前打印出“rht”(当它应该打印出“苏”)。有人可以帮忙吗?将不胜感激!