summaryrefslogtreecommitdiff
path: root/prolog/problems/family_relations/connected_3
diff options
context:
space:
mode:
Diffstat (limited to 'prolog/problems/family_relations/connected_3')
-rw-r--r--prolog/problems/family_relations/connected_3/common.py16
-rw-r--r--prolog/problems/family_relations/connected_3/en.py14
2 files changed, 30 insertions, 0 deletions
diff --git a/prolog/problems/family_relations/connected_3/common.py b/prolog/problems/family_relations/connected_3/common.py
new file mode 100644
index 0000000..9a68d36
--- /dev/null
+++ b/prolog/problems/family_relations/connected_3/common.py
@@ -0,0 +1,16 @@
+id = 102
+group = 'family_relations'
+number = 9
+visible = True
+facts = 'family_relations'
+
+solution = '''\
+connected(X, X, _).
+connected(X, Y, N) :-
+ N > 0,
+ N1 is N - 1,
+ ( parent(X, Z)
+ ;
+ parent(Z, X) ),
+ connected(Z, Y, N1).
+'''
diff --git a/prolog/problems/family_relations/connected_3/en.py b/prolog/problems/family_relations/connected_3/en.py
new file mode 100644
index 0000000..8fe1eed
--- /dev/null
+++ b/prolog/problems/family_relations/connected_3/en.py
@@ -0,0 +1,14 @@
+id = 102
+name = 'connected/3'
+slug = 'check if two people are connected in the family tree'
+
+description = '''\
+<p><code>connected(X, Y, N)</code>: <code>X</code> and <code>Y</code> are connected with a series of (no more than <code>N</code>) parent/child relations.</p>
+<pre>
+ ?- connected(ana, morty, 10).
+ false.
+ ?- connected(ana, margaret, 10).
+ true.
+</pre>'''
+
+hint = {}