summaryrefslogtreecommitdiff
path: root/prolog/sudoku.pl
diff options
context:
space:
mode:
authorGuillermo Ramos2012-05-03 14:40:48 +0200
committerGuillermo Ramos2012-05-05 14:35:05 +0200
commitf2995fef020183e0abfcafdcf726e413cdab56c8 (patch)
tree5c4e9255f3f814f85da84f313c45fbd406aa9e4f /prolog/sudoku.pl
parent4fb3fa2758fd4db2bef1efc7ae531e0dadaf4ffa (diff)
download7l-f2995fef020183e0abfcafdcf726e413cdab56c8.tar.gz
[Prolog] Día 3
Diffstat (limited to 'prolog/sudoku.pl')
-rw-r--r--prolog/sudoku.pl27
1 files changed, 27 insertions, 0 deletions
diff --git a/prolog/sudoku.pl b/prolog/sudoku.pl
new file mode 100644
index 0000000..159e212
--- /dev/null
+++ b/prolog/sudoku.pl
@@ -0,0 +1,27 @@
+valid([]).
+valid([H|T]) :-
+ fd_all_different(H),
+ valid(T).
+
+sudoku(Puzzle, Solution) :-
+ Solution = Puzzle,
+ Puzzle = [S11,S12,S13,S14,
+ S21,S22,S23,S24,
+ S31,S32,S33,S34,
+ S41,S42,S43,S44],
+ fd_domain(Puzzle,1,4),
+ Row1 = [S11,S12,S13,S14],
+ Row2 = [S21,S22,S23,S24],
+ Row3 = [S31,S32,S33,S34],
+ Row4 = [S41,S42,S43,S44],
+ Col1 = [S11,S21,S31,S41],
+ Col2 = [S12,S22,S32,S42],
+ Col3 = [S13,S23,S33,S43],
+ Col4 = [S14,S24,S34,S44],
+ Sqr1 = [S11,S12,S21,S22],
+ Sqr2 = [S13,S14,S23,S24],
+ Sqr3 = [S31,S32,S41,S42],
+ Sqr4 = [S33,S34,S43,S44],
+ valid([Row1, Row2, Row3, Row4,
+ Col1, Col2, Col3, Col4,
+ Sqr1, Sqr2, Sqr3, Sqr4]).