summaryrefslogtreecommitdiff
path: root/prolog/problems/family_relations/father_2
diff options
context:
space:
mode:
authorAleksander Sadikov <aleksander.sadikov@fri.uni-lj.si>2015-10-01 21:11:58 +0200
committerAleksander Sadikov <aleksander.sadikov@fri.uni-lj.si>2015-10-01 21:11:58 +0200
commit2fefd55550808f630190c89c6d9b3f6bfed3f164 (patch)
treebb0bb85eadf8224231cdf2ee6635ee8b3fe673db /prolog/problems/family_relations/father_2
parenteaaeb3af7acebe0e1414fb25c1b50cd5a383f2a3 (diff)
Figures and hints updated for mother/2, father/2, and grandparent/2 problems.
Diffstat (limited to 'prolog/problems/family_relations/father_2')
-rw-r--r--prolog/problems/family_relations/father_2/common.py7
-rw-r--r--prolog/problems/family_relations/father_2/sl.py18
2 files changed, 18 insertions, 7 deletions
diff --git a/prolog/problems/family_relations/father_2/common.py b/prolog/problems/family_relations/father_2/common.py
index cbfbcab..1643066 100644
--- a/prolog/problems/family_relations/father_2/common.py
+++ b/prolog/problems/family_relations/father_2/common.py
@@ -21,6 +21,7 @@ father(X, Y) :-
hint_type = {
'or_instead_of_and': Hint('or_instead_of_and'),
+ 'or_instead_of_and_two_rules': Hint('or_instead_of_and_two_rules'),
'x_must_be_male': Hint('x_must_be_male'),
'x_must_be_parent': Hint('x_must_be_parent'),
'y_can_be_of_any_gender': Hint('y_can_be_of_any_gender'),
@@ -80,6 +81,12 @@ def hint(program, solved_problems):
'findall(_, father(X, Y), L), length(L, 48)'):
return [{'id': 'or_instead_of_and'}]
+ # OR instead of AND written with two rules, namely:
+ # (r1) father(X, Y):- male(X). (r2) father(X, Y):- parent(X, Y).
+ if prolog.engine.ask_truth(engine_id,
+ 'findall(_, father(X, Y), L), length(L, 48)'):
+ return [{'id': 'or_instead_of_and_two_rules'}]
+
# X must be male
if prolog.engine.ask_truth(engine_id, 'female(X), father(X, _)'):
return [{'id': 'x_must_be_male'}]
diff --git a/prolog/problems/family_relations/father_2/sl.py b/prolog/problems/family_relations/father_2/sl.py
index ee6893b..67bf764 100644
--- a/prolog/problems/family_relations/father_2/sl.py
+++ b/prolog/problems/family_relations/father_2/sl.py
@@ -17,13 +17,12 @@ description = '''\
plan = [
'''\
-<p><img src="Father-1.png" /></p>
-<p>Loni naj zbriše imena relacij (parent, mother) s te slike!</p>''',
+<p><img src="[%@resource Prolog_father_01.svg%]" alt="Oče ima otroka in je moškega spola." /></p>''',
'''\
-<p><img src="Father-1.png" /></p>''',
+<p><img src="[%@resource Prolog_father_02.svg%]" alt="Oče X je starš od Y in je moškega spola." /></p>''',
'''\
-<p>Če je <code>X</code> ženska in je hkrati <code>X</code> starš od <code>Y</code>,
-potem je <code>X</code> mama od <code>Y</code>.</p>'''
+<p>Če je <code>X</code> moški in je hkrati <code>X</code> starš od <code>Y</code>,
+potem je <code>X</code> oče od <code>Y</code>.</p>'''
]
hint = {
@@ -31,14 +30,19 @@ hint = {
<p>Si morda uporabil podpičje (ki pomeni ALI) namesto vejice (ki pomeni IN)?</p>
''',
+ 'or_instead_of_and_two_rules': '''\
+<p>Si morda zapisal dve pravili, eno za spol in eno za "starševstvo"?
+Pozor: velja eno ALI drugo, ne nujno eno IN drugo!</p>
+''',
+
'x_must_be_male': '''\
<p>Oče je navadno moškega spola.</p>
-<p><img src="Father-2.png" /></p>
+<p><img src="[%@resource Prolog_father_03.svg%]" /></p>
''',
'x_must_be_parent': '''\
<p>Oče naj bi imel vsaj enega otroka... torej je starš od nekoga.</p>
-<p><img src="Father-3.png" /></p>
+<p><img src="[%@resource Prolog_father_04.svg%]" /></p>
''',
'y_can_be_of_any_gender': '''\