生成类似填字游戏的数据集

时间:2010-12-09 09:18:10

标签: c# crossword


我必须编写一个函数,它接受一个字符串列表(长度不一的字),一个int(数据集的大小,例如.int的值为4将是4列,表中有4行),并且我必须产生一个像块一样的填字游戏(块作为数据集),它将尽可能多地保存列表中的单词,就像填字游戏,如果字母在正确的位置匹配,它们可以相互交叉,并且这些单词必须全部混合起来,阅读各个方向(如填字游戏)。

我似乎无法找到帮助我的代码,到目前为止我有数据集的基本结构,在这里,任何帮助将不胜感激,谢谢。

public WordsDs WordMixer(List<string> wordList, int size)
{
    if ((wordList == null) || (size < 2))
    {
        return null;
    }

    //shuffle the words in the list so that they are in a random order
    Random random = new Random();
    var sortedList = wordList.OrderBy(i => random.Next()).ToList();

    //create a dataset for the words
    DataSet ds = new DataSet();
    DataTable dt = new DataTable();

    //add columns and rows according to the size parameter
    for (int i = 0; i < size; i++)
    {
        dt.Columns.Add(i.ToString(), typeof(string));
    }
    for (int i = 0; i < size; i++)
    {
        dt.Rows.Add(i);
    }


    for (int i = 0; i < wordList.Count; i++)
    {



    }//for (int i = 0; i < wordList.Count; i++)

}

1 个答案:

答案 0 :(得分:2)

您可以使用二维数组来保存字符。我想棘手的部分是从单词列表中找出两个单词之间共享字母的地方。我想从最不常用的字母和工作开始吧!

有趣的文章
http://blogs.teamb.com/craigstuntz/2010/01/11/38518/

Stack Overflow问题可能会有所帮助(尽管在c ++中可能有用) Best data structure for crossword puzzle search

代码生成器的其他链接。
http://www.pscode.com/vb/scripts/ShowCode.asp?txtCodeId=6082&lngWId=10
http://dotnetslackers.com/articles/net/Creating-a-programming-crossword-puzzle.aspx
一个在c中  http://pdos.csail.mit.edu/cgi-bin/theme-cword