0

クロスワード パズルの文字を入力できる 11 X 11 のマトリックスを作成しました。文字が不要な部分はスペースで埋めています。私はマトリックスを取り、その中のすべての単語を水平方向と垂直方向の両方で見つけて、それらを配列に格納しようとしています。私はJavaでのプログラミングにかなり慣れていないので、どんな助けも大歓迎です! ありがとうございました!

4

1 に答える 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 に答える