diff options
Diffstat (limited to 'prolog/problems/family_relations/cousin_2/common.py')
-rw-r--r-- | prolog/problems/family_relations/cousin_2/common.py | 11 |
1 files changed, 5 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 |