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++;
}
}
}
上記は、クロスワード パズル ボードで単語リストの最初の 2 つの単語を交差させる方法です。私の質問はその部分です:
for (int z = 0; z < j; z++)
crossword[t - z - 1][s] = a1.get(i).charAt(z);
交点の前の文字を取得し、交点の行の上に逆方向に印刷します。私の脳は今、さまざまなことで過負荷になっており、文字を正しい順序に並べる方法を理解できないようです. 問題を表示するために画像を添付することはできませんが、たとえば、文字「o」で水平方向の単語「clowning」と交差する垂直方向の単語「throwing」は、o の前に「rht」を出力します (「」を出力する必要がある場合)。 thr")。誰か助けてくれませんか?よろしくお願いします!