クロスワード パズルの文字を入力できる 11 X 11 のマトリックスを作成しました。文字が不要な部分はスペースで埋めています。私はマトリックスを取り、その中のすべての単語を水平方向と垂直方向の両方で見つけて、それらを配列に格納しようとしています。私はJavaでのプログラミングにかなり慣れていないので、どんな助けも大歓迎です! ありがとうございました!
質問する
60 次
1 に答える
0
これは「C」での実際の例です。Java への変換は簡単です。
ロジックはまったく同じです。
#include <stdio.h>
void matrixwords(char matrix[11][11])
{
int i = 0;
int j = 0;
int k = 0;
char str[12];
/* process each row i using column j */
k = 0;
for (i = 0; i < 11; i++) {
for (j = 0; j < 11; ++j) {
char c = matrix[i][j];
if (c != ' ') {
str[k++] = c;
} else {
/* found a word in the row */
if (k != 0) {
str[k] = '\0'; /* terminate word */
printf("found a row word %s\n", str);
k = 0;
}
}
}
/* don't forget last word in row */
if (k != 0) {
str[k] = '\0'; /* terminate word */
printf("found a row word %s\n", str);
k = 0;
}
}
/* process each column j using row i*/
k = 0;
for (j = 0; j < 11; i++) {
for (i = 0; i < 11; ++j) {
char c = matrix[i][j];
if (c != ' ') {
str[k++] = c;
} else {
/* found a word in the row */
if (k != 0) {
str[k] = '\0'; /* terminate word */
printf("found a column word %s\n", str);
k = 0;
}
}
}
/* don't forget last word in column */
if (k != 0) {
str[k] = '\0'; /* terminate word */
printf("found a column word %s\n", str);
}
k = 0;
}
}
于 2013-11-06T21:40:23.000 に答える