summaryrefslogtreecommitdiff
path: root/prolog
diff options
context:
space:
mode:
Diffstat (limited to 'prolog')
-rw-r--r--prolog/problems/family_relations/cousin_2/common.py11
-rw-r--r--prolog/problems/family_relations/cousin_2/sl.py1
2 files changed, 6 insertions, 6 deletions
diff --git a/prolog/problems/family_relations/cousin_2/common.py b/prolog/problems/family_relations/cousin_2/common.py
index 86ef5cc..ffebdae 100644
--- a/prolog/problems/family_relations/cousin_2/common.py
+++ b/prolog/problems/family_relations/cousin_2/common.py
@@ -97,17 +97,16 @@ def hint(code, aux_code):
'findall(_, cousin(X, Y), L), (length(L, 14) ; length(L, 16))'):
return [{'id': 'precedence_fail'}]
- # cousin should not be brother or sister
- # common parent, probably solved via grandparent
- if prolog.engine.ask_truth(engine_id,
- 'cousin(X, Y), (brother(X, Y) ; sister(X, Y))'):
- return [{'id': 'cousin_vs_sibling'}]
-
# cousin to him/herself
# just common grandparent is not enough
if prolog.engine.ask_truth(engine_id, 'cousin(X, X)'):
return [{'id': 'cousin_to_oneself'}]
+ # cousin should not be brother or sister
+ # common parent, probably solved via grandparent
+ if prolog.engine.ask_truth(engine_id,
+ 'cousin(X, Y), parent(P, X), parent(P, Y)'):
+ return [{'id': 'cousin_vs_sibling'}]
# X (or Y) does not necessarily need to be a parent
# cousin is a symmetrical relation, so X and Y are covered by this
diff --git a/prolog/problems/family_relations/cousin_2/sl.py b/prolog/problems/family_relations/cousin_2/sl.py
index c1380bf..3719368 100644
--- a/prolog/problems/family_relations/cousin_2/sl.py
+++ b/prolog/problems/family_relations/cousin_2/sl.py
@@ -54,6 +54,7 @@ Si morda pozabil, da starša od <code>X</code> in <code>Y</code> ne smeta biti i
<p>Kako je lahko nekdo bratranec/sestrična samemu sebi?
Imata morda <code>X</code> in <code>Y</code> istega starša?</p>
<p><img src="[%@resource Prolog_cousin_04.svg%]" /></p>
+<p>Poskusi prolog vprašati tole: <code>?- cousin(X, X).</code>?</p>
''',
'cousin_need_not_be_parent': '''\