# 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?

Starš od nekoga, ki je prednik od Y, je tudi prednik od Y.

''', '''\

Če je X starš od nekega Z in je ta Z prednik od Y, potem je X tudi prednik od Y.

''', '''\

Če je X starš od Z, ki je prednik od Y, potem je X tudi prednik od Y.

'''] hint = { 'gender_is_irrelevant': '''\

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...

''', 'wrong_direction': '''\

Si morda sprogramiral ravno obratno in zamenjal prednika s potomcem? X naj bo prednik od Y in ne obratno!

''', }