# coding=utf-8 name = 'ancestor/2' slug = 'X je prednik od Y' description = '''\
ancestor(X, Y)
: X
je prednik (oče, mama, dedek, ...) od Y
.
?- ancestor(patricia, X). X = john ; X = michael ; X = michelle.''' plan = ['''\
Sedaj pa bo potrebna rekurzija... kako lahko problem prevedem na (en korak) manjši problem?
''', '''\Če je X
starš od nekega Z
in je
ta Z
prednik od Y
,
potem je X
tudi prednik od Y
.
Je spol res pomemben?
''', 'gender_is_irrelevant_markup': '''\Je to res potrebno?
''', 'grandparent_used': '''\Rešitev z "grandparent" bo premalo splošna, poskusi nadomestiti to z rekurzijo. Skratka, poskusi prevesti na "manjši" problem, npr. prednik v enem koraku manj (en korak bližji prednik)...
''', 'grandparent_used_markup': '''\Bi se dalo rešiti brez tega?
''', 'base_case': '''\Si pomislil na robni pogoj? 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 prednik samemu sebi?
''', 'descendant_need_not_be_parent': '''\Potomec Y
pravzaprav ne rabi imeti otrok...
Si morda sprogramiral ravno obratno in zamenjal prednika s potomcem?
X
naj bo prednik od Y
in ne obratno!