Prolog Sudoku Ex。高水平

时间:2012-06-03 19:50:00

标签: prolog sudoku

写一个数独求解器的学校作业。我把问题分解为几个步骤。 “主要”功能的代码如下。至于每个单独的步骤,它们都可以工作,但是我想知道如何将列表中的未绑定变量与我计算的数字统一起来。然后,我希望在下一个电话中通过此列表。如果问题不完全清楚,请告诉我,我会详细说明。感谢

代码:

我知道下面的代码是错误的,因为我认为我只是传递了我原来的数独列表。数独列表是列表列表,例如

 [[1,_,_,8,_,4,_,_,_],
  [_,2,_,_,_,_,4,5,6],
  [_,_,3,2,_,5,_,_,_],
  [_,_,_,4,_,_,8,_,5],
  [7,8,9,_,5,_,_,_,_],
  [_,_,_,_,_,6,2,_,3],
  [8,_,1,_,_,_,7,_,_],
  [_,_,_,1,2,3,_,8,_],
  [2,_,5,_,_,_,_,_,9]]

代码:

fill(List) :- 
    findVar(V,List,0,X,Y,Sub), % Find a variable to bind
    difference([1,2,3,4,5,6,7,8,9],Sub,Choices), % Find numbers not yet in row
    random(Choices,N), % Select random number from available numbers
    V = N,
    check(List,X,Y), % Check for correctness
    fill(List).

0 个答案:

没有答案