这里是要完成一个填字游戏
enforce_node_consistency
这里算是遍历一遍 word 和 var,通过长度作为判断依据,把长度不匹配的 word 从 var 的 domain 中移除
revise
这里需要的注意的是:
- 重叠部分可能为 None,不能直接赋值,而是要先判断
- 设定一个变量 edit 来标记是否修改。而不是修改完立刻 return,这样会导致函数中断,没法检查后面
- remove先记录后移除,因为 xword 还没有遍历完,不能直接移除
ac3
这里需要注意:
- 添加全部数对的时候需要检查不要重复、不要添加无关的两个节点作为边
- 传入 arcs 时,需要用 list 包成列表
- 这里可以通过调用 pop 方法,取出元素
- 需要在修改后检查 x 的 domain 是否为空,防止报错
assignment_complete
比较简单
consistent
这里主要是用来检查传入的 assignment 字典,也就是分配情况是否符合规则
三条规则在说明中都提到了,按着完成就行
注意 overlaps的调用方法,overlaps 本身是一个值,这里需要通过字典的查询方法来获取重叠坐标,不要把他当成一个方法来调用了