summaryrefslogtreecommitdiff
path: root/prolog/problems/lists_advanced/palindrome_1/common.py
diff options
context:
space:
mode:
Diffstat (limited to 'prolog/problems/lists_advanced/palindrome_1/common.py')
-rw-r--r--prolog/problems/lists_advanced/palindrome_1/common.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/prolog/problems/lists_advanced/palindrome_1/common.py b/prolog/problems/lists_advanced/palindrome_1/common.py
index bbd28fb..2299e45 100644
--- a/prolog/problems/lists_advanced/palindrome_1/common.py
+++ b/prolog/problems/lists_advanced/palindrome_1/common.py
@@ -32,7 +32,8 @@ hint_type = {
'one_base_case_missing': Hint('one_base_case_missing'),
'arbitrary_base_case': Hint('arbitrary_base_case'),
'last_used': Hint('last_used'),
- 'final_hint': Hint('final_hint'),
+ 'final_hint_1': Hint('final_hint_1'),
+ 'final_hint_2': Hint('final_hint_2'),
}
test_cases = [
@@ -62,7 +63,12 @@ def test(code, aux_code):
hints = [{'id': 'test_results', 'args': {'passed': n_correct, 'total': len(test_cases)}}]
if n_correct == len(test_cases):
- hints += [{'id': 'final_hint'}]
+ tokens = prolog.util.tokenize(code)
+ if prolog.util.Token('NAME', 'rev') not in tokens:
+ hints += [{'id': 'final_hint_1'}]
+ if prolog.util.Token('NAME', 'rev') in tokens and \
+ (prolog.util.Token('EQU', '=') in tokens or prolog.util.Token('EQ', '==') in tokens):
+ hints += [{'id': 'final_hint_2'}]
return n_correct, len(test_cases), hints
def hint(code, aux_code):