嗨,看看 这个线程已经在处理这个主题而且这个线程可能很有趣。
我正在尝试编写一个函数
candidates :: Sudoku -> Pos -> [Int]
给了一个数独
data Sudoku = Sudoku { rows :: [[Maybe Int]] }
deriving ( Show, Eq )
并且位置 ( type Pos = (Int, Int)
) 确定您可以在其中写入的数字,例如在已经包含 (1,2,4,7,9,x,x) 的数独行中,您不能在最后写入任何已经存在的数字排。另一个问题是检查高度和宽度,这样数字就不会出现多次(普通数独规则)。那么关于如何开始的任何建议?
示例:数独>候选人示例 (0,2) [4,8]