制作数独求解器

时间:2019-01-02 11:17:50

标签: clojure

我正在尝试创建一个数独解算器程序,该程序将向量的向量作为输入,其中向量内的每个向量都是数独的一行,其中每个“ 0”是数独中的一个空单元格。

到现在为止,我已经发现具有0的单元格可以获得的所有可能数字。

问题是这样的,在找到哪个单元只有一个可能的解决方案之后,尽管Clojure具有不变性,我如何将那个唯一的解决方案放在其位置上?

程序需要返回相同的向量向量,其中每个“ 0”由满足要求的数字代替。

2 个答案:

答案 0 :(得分:2)

如果有向量矢量,则可以使用assoc-in设置单元格值,例如

(def cells [[1 3 0]
            [4 2 1]
            [6 3 0]])

(defn set-cell-value [board row col value]
    (assoc-in board [row col] value))

(set-cell-value cells 0 2 2)

答案 1 :(得分:0)

如果需要状态,请将其放入atom https://clojuredocs.org/clojure.core/atom,这是一种可变的引用类型,其中包含不可变的值。