From c50452d81b08d54b734f1da73b736bfbc2997215 Mon Sep 17 00:00:00 2001 From: Aleksander Sadikov Date: Tue, 22 Sep 2015 17:57:04 +0200 Subject: New problems with hints for famrel section added. This practically completes famrel section without some details. --- prolog/problems/family_relations/sister_2/common.py | 12 +++++------- prolog/problems/family_relations/sister_2/sl.py | 2 +- 2 files changed, 6 insertions(+), 8 deletions(-) (limited to 'prolog/problems/family_relations/sister_2') diff --git a/prolog/problems/family_relations/sister_2/common.py b/prolog/problems/family_relations/sister_2/common.py index b3cbff0..6c48b00 100644 --- a/prolog/problems/family_relations/sister_2/common.py +++ b/prolog/problems/family_relations/sister_2/common.py @@ -24,7 +24,7 @@ sister(X, Y) :- hint_type = { 'x_must_be_female': Hint('x_must_be_female'), 'common_parent_needed': Hint('common_parent_needed'), - 'Y_can_be_of_any_gender': Hint('Y_can_be_of_any_gender'), + 'y_can_be_of_any_gender': Hint('Y_can_be_of_any_gender'), 'x_y_must_be_different': Hint('x_y_must_be_different'), } @@ -118,15 +118,13 @@ def hint(program, solved_problems): # this is an example of using the ordering of hints for easier trigger checks if prolog.engine.ask_one(engine_id, 'sister(_, Y), male(Y)') == 'false': - return [{'id': 'Y_can_be_of_any_gender'}] + return [{'id': 'y_can_be_of_any_gender'}] # X and Y must be different # this is the last code-specific hint (when everything else doesn't trigger anymore) - ans = prolog.engine.ask_one(engine_id, - 'setof(X, (member(X, [sally, nevia, vanessa]), sister(X, X)), L), length(L, N).') - # TODO this barfs if ans is 'false' - #if ans.get('N') == '3': - # return [{'id': 'x_y_must_be_different'}] + if prolog.engine.ask_truth(engine_id, + 'setof(X, (member(X, [sally, nevia, vanessa]), sister(X, X)), L), length(L, 3)'): + return [{'id': 'x_y_must_be_different'}] # last hints are connected with programming style # here, this means detecting such code: diff --git a/prolog/problems/family_relations/sister_2/sl.py b/prolog/problems/family_relations/sister_2/sl.py index aa66567..8c4c60f 100644 --- a/prolog/problems/family_relations/sister_2/sl.py +++ b/prolog/problems/family_relations/sister_2/sl.py @@ -37,7 +37,7 @@ hint = {

Sestra je navadno ženskega spola.

''', - 'Y_can_be_of_any_gender': '''\ + 'y_can_be_of_any_gender': '''\

Y je pravzaprav lahko poljubnega spola.

''', -- cgit v1.2.1