From e318ce671052e30dff8077d7ca72f8633cab9ffa Mon Sep 17 00:00:00 2001
From: Aleksander Sadikov
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': '''\ diff --git a/prolog/problems/family_relations/descendant_2/common.py b/prolog/problems/family_relations/descendant_2/common.py index 70936da..b4d8f31 100644 --- a/prolog/problems/family_relations/descendant_2/common.py +++ b/prolog/problems/family_relations/descendant_2/common.py @@ -88,6 +88,13 @@ def hint(code, aux_code): return [{'id': 'grandparent_used_markup', 'start': m[0], 'end': m[1]} for m in marks] + \ [{'id': 'grandparent_used'}] + # ancestor instead of descendant (wrong direction) + # warning: knowledge base dependent + if prolog.engine.ask_truthTO(engine_id, + 'findall(_, descendant(william, X), L1), length(L1, 6), \ + findall(_, descendant(X, william), L2), length(L2, 2)'): + return [{'id': 'wrong_direction'}] + # missing/failed base case if prolog.engine.ask_truthTO(engine_id, 'parent(Y, X), \+ descendant(X, Y)'): @@ -100,13 +107,6 @@ def hint(code, aux_code): else: return [{'id': 'descendant_of_oneself'}] - # ancestor instead of descendant (wrong direction) - # warning: knowledge base dependent - if prolog.engine.ask_truthTO(engine_id, - 'findall(_, descendant(william, X), L1), length(L1, 6), \ - findall(_, descendant(X, william), L2), length(L2, 2)'): - return [{'id': 'wrong_direction'}] - # X does not necessarily need to be a parent if prolog.engine.ask_one(engine_id, 'descendant(X, _), \+ parent(X, _)') == 'false': diff --git a/prolog/problems/family_relations/descendant_2/sl.py b/prolog/problems/family_relations/descendant_2/sl.py index 2b638fd..9f1d818 100644 --- a/prolog/problems/family_relations/descendant_2/sl.py +++ b/prolog/problems/family_relations/descendant_2/sl.py @@ -54,13 +54,13 @@ Kaj je najbolj enostaven par (potomec, prednik)? ''', # TODO: morda ta hint naredim z "more": najprej tekst, ob kliku pa še slika... (sicer je preveč očitno) 'descendant_of_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.
''', 'descendant_of_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.
-- cgit v1.2.1