summaryrefslogtreecommitdiff
path: root/prolog/problems/clp_fd/magic_1
diff options
context:
space:
mode:
authorAleš Smodiš <aless@guru.si>2015-08-18 16:06:19 +0200
committerAleš Smodiš <aless@guru.si>2015-08-18 16:06:19 +0200
commit95e2fe57f6e4639f6ae9f1fef368829d5090dbf6 (patch)
tree462ba05eb0c4732ca1c97739548801258bf47b40 /prolog/problems/clp_fd/magic_1
Exported all problems from the SQLite database into the new directory structure.
Diffstat (limited to 'prolog/problems/clp_fd/magic_1')
-rw-r--r--prolog/problems/clp_fd/magic_1/common.py17
-rw-r--r--prolog/problems/clp_fd/magic_1/en.py13
2 files changed, 30 insertions, 0 deletions
diff --git a/prolog/problems/clp_fd/magic_1/common.py b/prolog/problems/clp_fd/magic_1/common.py
new file mode 100644
index 0000000..0308e1d
--- /dev/null
+++ b/prolog/problems/clp_fd/magic_1/common.py
@@ -0,0 +1,17 @@
+id = 151
+group = 'clp_fd'
+number = 60
+visible = True
+facts = None
+
+solution = '''\
+magic(L):-
+ L = [A1,A2,A3,B1,B2,B3,C1,C2,C3],
+ L ins 1..9,
+ all_different(L),
+ A1+A2+A3 #= B1+B2+B3,
+ A1+A2+A3 #= C1+C2+C3,
+ A1+B1+C1 #= A2+B2+C2,
+ A1+B1+C1 #= A3+B3+C3,
+ A1+B2+C3 #= A3+B2+C1,
+ labeling([], L).'''
diff --git a/prolog/problems/clp_fd/magic_1/en.py b/prolog/problems/clp_fd/magic_1/en.py
new file mode 100644
index 0000000..6fcf252
--- /dev/null
+++ b/prolog/problems/clp_fd/magic_1/en.py
@@ -0,0 +1,13 @@
+id = 151
+name = 'magic/1'
+slug = 'generate a 3x3 magic square'
+
+description = '''\
+<p><code>magic(S)</code>: the list <code>S</code> represents a 3×3 magic square (<code>S</code> is a permutation of numbers 1 to 9 - three numbers for each row). The sums of numbers in each row, column and diagonal of a magic squre are equal. Implement this predicate using constraints. Your code should return all possible solutions.</p>
+<pre>
+ ?- magic(S).
+ S = [2, 7, 6, 9, 5, 1, 4, 3, 8] ;
+ …
+</pre>'''
+
+hint = {}