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);
. Она берет буквы перед точкой пересечения и печатает их назад над строкой пересечения.Мой мозг сейчас перегружен разными вещами, и я не могу понять, как заставить буквы двигаться в правильном порядке.Я не могу прикрепить изображение, чтобы отобразить мою проблему, но, например, вертикальное слово «бросание», которое пересекается с горизонтальным словом «клоунада» на букву «о», выводит «rht» до «о» (когда оно должно быть распечатано)Чет ").Может ли кто-нибудь помочь?Буду очень признателен!