From e318ce671052e30dff8077d7ca72f8633cab9ffa Mon Sep 17 00:00:00 2001
From: Aleksander Sadikov
Date: Wed, 2 Mar 2016 13:20:52 +0100
Subject: Improved hints for ancestor/2 and descendant/2.
---
prolog/problems/family_relations/ancestor_2/common.py | 14 +++++++-------
prolog/problems/family_relations/ancestor_2/sl.py | 10 +++++-----
2 files changed, 12 insertions(+), 12 deletions(-)
(limited to 'prolog/problems/family_relations/ancestor_2')
diff --git a/prolog/problems/family_relations/ancestor_2/common.py b/prolog/problems/family_relations/ancestor_2/common.py
index 9346e5f..2353eab 100644
--- a/prolog/problems/family_relations/ancestor_2/common.py
+++ b/prolog/problems/family_relations/ancestor_2/common.py
@@ -84,6 +84,13 @@ def hint(code, aux_code):
return [{'id': 'grandparent_used_markup', 'start': m[0], 'end': m[1]} for m in marks] + \
[{'id': 'grandparent_used'}]
+ # descendant instead of ancestor (wrong direction)
+ # warning: knowledge base dependent
+ if prolog.engine.ask_truthTO(engine_id,
+ 'findall(_, ancestor(william, X), L1), length(L1, 2), \
+ findall(_, ancestor(X, william), L2), length(L2, 6)'):
+ return [{'id': 'wrong_direction'}]
+
# missing/failed base case
if prolog.engine.ask_truthTO(engine_id,
'findall(X/Y, parent(X, Y), L), member(X/Y, L), \+ ancestor(X, Y)'):
@@ -103,13 +110,6 @@ def hint(code, aux_code):
else:
return [{'id': 'ancestor_to_oneself'}]
- # descendant instead of ancestor (wrong direction)
- # warning: knowledge base dependent
- if prolog.engine.ask_truthTO(engine_id,
- 'findall(_, ancestor(william, X), L1), length(L1, 2), \
- findall(_, ancestor(X, william), L2), length(L2, 6)'):
- return [{'id': 'wrong_direction'}]
-
# Y does not necessarily need to be a parent
if prolog.engine.ask_one(engine_id,
'ancestor(_, Y), \+ parent(Y, _)') == 'false':
diff --git a/prolog/problems/family_relations/ancestor_2/sl.py b/prolog/problems/family_relations/ancestor_2/sl.py
index 5cb8044..974bde3 100644
--- a/prolog/problems/family_relations/ancestor_2/sl.py
+++ b/prolog/problems/family_relations/ancestor_2/sl.py
@@ -53,13 +53,13 @@ Kaj je najbolj enostaven par (prednik, potomec)?
''', # TODO: morda ta hint naredim z "more": najprej tekst, ob kliku pa še slika... (sicer je preveč očitno)
'ancestor_to_oneself': '''\
-Kako je lahko nekdo potomec samega sebe? Premisli, morda se ti splača tudi grafično skicirati
-tvojo trenutno rešitev.
+Kako je lahko nekdo potomec samega sebe? Iz trenutne verzije rešitve se da izpeljati tudi to.
+Premisli, morda se ti splača tudi grafično skicirati tvojo trenutno rešitev.
''',
'ancestor_to_oneself_with_or': '''\
-Kako je lahko nekdo potomec samega sebe? Premisli, morda se ti splača tudi grafično skicirati
-tvojo trenutno rešitev.
+Kako je lahko nekdo potomec samega sebe? Iz trenutne verzije rešitve se da izpeljati tudi to.
+Premisli, morda se ti splača tudi grafično skicirati tvojo trenutno rešitev.
Morda se ti splača preveriti tudi uporabo podpičja. To praktično naredi dva ločena stavka oz. veji
(eno ali drugo velja, morda tudi oboje). Vendar pazi, ker sta ti dve veji med seboj neodvisni
-- vrednosti iz ene se ne prenašajo v drugo vejo.
@@ -67,7 +67,7 @@ tvojo trenutno rešitev.
'only_two_levels_deep': '''\
Tvoja rešitev je premalo splošna. Prednik je lahko tudi bolj oddaljen kot so stari starši,
-npr. prababica ali prapradedek.
+npr. prababica ali prapradedek sta tudi prednika.
''',
'descendant_need_not_be_parent': '''\
--
cgit v1.2.1