-5

我想用这种条件在 C# 中编写一个填字游戏:

  1. 词不能重复。
  2. 单词可以水平放置,但只能从左到右排列。
  3. 单词可以垂直放置,但只能从高到低。
  4. 一个水平词必须与一个或多个垂直词相交。
  5. 一个垂直词必须与一个或多个水平词相交。
  6. 每个单词必须由空格或网格边缘分隔。

没有给出字段大小。考虑到单词表,算法应该找到最好的填字游戏输出并且字段大小应该是最小的。我的问题是变量字段大小。有人想知道算法的样子吗?

4

1 回答 1

-1

这是一个非常广泛的问题,我认为在开始尝试编写解决方案之前,您需要花一些时间来考虑设计。

您需要解决的一些可能的子问题:

  1. 你需要一些单词的数据存储,你会自己做还是使用网上的东西?
  2. 您将需要一些方法来检查这些单词中的字母,以确保这些单词有共同的字母,您可以使用这些字母将这些单词相互交叉
  3. 您需要测量单词的长度并确保单词不会相互重叠(除非它们应该跨越!)或适合屏幕。每次生成网格时都需要重新测试这些规则以确保其有效
  4. 您可以将网格存储为nxn数组,假设您不使用对角线,则单词需要写在单行或单列中。
  5. 为确保您的单词从左到右或从上到下,您必须确保起始字母索引始终小于末尾的字母。
  6. 您可能还需要存储每行或每列的字数,以确保网格中的字间距均匀
于 2016-05-10T11:47:58.373 回答