c中的填字游戏生成器

时间:2016-02-22 09:54:42

标签: c arrays crossword

我的此功能crossword包含参数wordarraystorenElem。此函数应该在纵横字谜样式中将字符串从word传输到字符的2D array,如果字符串不能放在2d数组中或者不包含在内,则应将其存储到数组store

示例输入:

hello, look, okay, book, keep, cat

示例输出:

h e l l o
    o   k e e p
    o   a
    k   y

not included is/are
book
cat

首先,我根据字符串的长度按降序排列字符串列表。 (通过函数调用sortWords)然后,我最初将第一个/最长的单词水平放置在2D数组上。我不知道如何以这种方式放置或存储留在2D数组中的单词。

这是我到目前为止所拥有的:

void crossword(string15 word[], char array[][ATABLE], string15 store[], int nElem)
{
    int i, j, k, l;
    sortWords(word, nElem);

    for(i=0; i<strlen(word[0]); i++)
        array[0][i]=word[0][i]; //place first word horizontally in the 2d array

    for(j=1; j<nElem; j++)
    {
        for(k=0; k<strlen(word[0]); k++)
        {
            if(word[j][0]==word[0][k])
            {
                for(l=1; l<strlen(word[j]); l++)
                    array[l][k]=word[j][l];
            }
        }
    }
}

自上周以来,我每天都试图解决这个问题但我没有那么远。我想到的并不是很好,因为它是一种蛮力的方法。对算法的任何建议?只要它生成填字游戏,它就不一定非常好。所有答案都将被赞赏x

0 个答案:

没有答案