【问题标题】:crossword c#- algorthm searched填字游戏 C#- 算法搜索
【发布时间】:2016-05-10 11:37:07
【问题描述】:

我想在 C# 中使用以下条件编写填字游戏:

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

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

【问题讨论】:

标签: c# crossword


【解决方案1】:

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

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

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

【讨论】:

  • 感谢不加解释的投反对票,总是有价值的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多