1

我的任务是创建一个填字游戏,一个特定的填字游戏。所有的答案都给出了,但他们的位置是未知的。程序必须读取带有板方案的文件,如下所示:

0 1 0 0 0 0 0 0 1 0 0
0 1 0 1 1 1 1 1 1 1 1
0 1 0 1 0 0 1 0 1 0 1
0 S 1 1 0 1 1 1 1 0 1
0 1 0 0 1 0 1 0 1 0 0
1 1 1 1 1 1 1 S 1 1 0
0 0 0 0 1 0 1 0 0 0 0
0 0 0 0 1 0 0 0 0 0 0

将每一列/每一行视为一个可能的答案。有没有办法在不使用 gazilion if 的情况下解析这个文件并标记答案?其余逻辑如下:
- 在解析文件的基础上创建填字游戏。
- 用户从可能性列表中选择答案
- 用户单击答案的第一个块,如果所选答案的长度和字母与答案匹配 - 字段已更新

我猜游戏板应该存储在二维数组中,每个答案都应该有字段索引?

4

1 回答 1

3

填字游戏的构造通常是 NP-Complete 的(即 nxn 1 和 0 板以及从中选择答案的给定集合)。看看:http ://en.wikipedia.org/wiki/List_of_NP-complete_problems刚刚提到了这一点。Garey and Johnson 的经典著作也有提到这一点,说精确的封面可以减少 3 套。

因此,您可能必须使用一些回溯/启发式方法来填充网格。

也许这个来自达特茅斯学院的两名学生的项目报告会有所帮助:填字游戏生成器。它包含一些您可以使用的启发式方法。

当然,您似乎暗示有人参与其中,但尚不清楚您是否可以利用该人来填充网格,以及您的问题是否基本上是一些 UI 编程问题以帮助用户解决问题。

于 2010-06-20T19:11:35.733 回答