我用 c# 编写的程序得到一个黑色单元格和空白单元格的网格以及一个单词列表作为输入,它应该将单词放入网格中。我想通过 CSP 算法生成这个填字游戏,我想将单词(交叉或下空格)作为变量,但我不知道如何确定哪些单元格一起是变量。例如,如果我将此矩阵作为输入,0 表示空白单元格,1 表示黑色单元格:
0001
0100
0000
1010
我的程序如何理解有多少变量以及它们的长度是多少?我多次尝试用嵌套的“for”来编写它,但我做不到。我会欣赏任何观点。
如果您仍在阅读本文,您是否有任何 CSP 算法(或框架)或尝试构建一个?
如果你确实使用了一些 CSP 框架,它们应该有一个接口来为这个问题添加约束
如果你想为这个问题创建一个 CSP 框架,有一些链接(也在 SO 上)处理 CSP 和/或填字游戏编译
例如CWC 开源编译器使用的http://thesis.cambon.dk/