From 320f6db34b5da13e259c3a55db9996a456bf8839 Mon Sep 17 00:00:00 2001 From: Timotej Lazar Date: Mon, 27 Feb 2017 15:55:40 +0100 Subject: Prolog: add texts for new automatic hints --- prolog/common.py | 6 ++++++ prolog/en.py | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ prolog/sl.py | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 104 insertions(+) diff --git a/prolog/common.py b/prolog/common.py index e591e0b..73a8af4 100644 --- a/prolog/common.py +++ b/prolog/common.py @@ -17,6 +17,12 @@ hint_type = { 'monkey_change': HintPopup('monkey_change', style='change'), 'monkey_insert': HintPopup('monkey_insert', style='insert'), 'monkey_remove': HintPopup('monkey_remove', style='remove'), + 'monkey_highlight': HintPopup('monkey_highlight', style='highlight'), + 'monkey_buggy_literal': Hint('monkey_buggy_literal'), + 'monkey_buggy_variable': Hint('monkey_buggy_variable'), + 'monkey_singleton': Hint('monkey_singleton'), + 'monkey_missing': Hint('monkey_missing'), + 'monkey_unknown': Hint('monkey_unknown'), 'noncapitalised_variable': Hint('noncapitalised_variable'), 'noncapitalised_variable_markup': HintPopup('noncapitalised_variable_markup'), 'fail_rule': HintPopup('fail_rule'), diff --git a/prolog/en.py b/prolog/en.py index 17a6fc4..f31eab4 100644 --- a/prolog/en.py +++ b/prolog/en.py @@ -32,4 +32,53 @@ hint = { 'monkey_remove': '''\

Remove the highlighted part.

''', + + 'monkey_highlight': None, # used to highlight erroneous tokens + + 'monkey_buggy_literal': [ +'''\ +

Consider the highlighted values in the following program fragment:

+ +''', +'''\ +

Do all values have the correct type (number/list/structure/…)? Do the highlighted arguments appear in correct relations with other objects in the program?

+''' + ], + + 'monkey_buggy_variable': [ +'''\ +

The variable [%=variable%] is used incorrectly. Pay particular attention to the following program ragments:

+ +''', +'''\ +

Are all goals referencing the variable [%=variable%] correct? +Check whether you are using the right predicate or operator, and that the highlighted arguments make sense.

+

Do all occurrences of [%=variable%] denote the same value? +In Prolog rules, each variable can only refer to a single value (e.g. person or number).

+''' + ], + + 'monkey_singleton': [ +'''\ +

The highlighted variable [%=variable%] appears only once in a rule:

+ +''', +'''\ +

This is usually an error. Should the value denoted by the variable [%=variable%] appear anywhere else in the rule? Also check your program for typos.

+''' + ], + + 'monkey_missing': '''\ +

The program is partially correct, but not complete yet. Perhaps a goal is missing in one of the clauses, or another rule is needed.

+''', + + 'monkey_unknown': [ +'''\ +

Consider the highlighted program fragments:

+ +''', +'''\ +

This pattern does not occur in known solutions to this problem. This can indicate a mistake in the program, or that you are implementing a novel solution.

+''' + ], } diff --git a/prolog/sl.py b/prolog/sl.py index f7209e6..3209742 100644 --- a/prolog/sl.py +++ b/prolog/sl.py @@ -44,6 +44,55 @@ hint = {

Odstrani ta cilj.

''', + 'monkey_highlight': None, # used to highlight erroneous tokens + + 'monkey_buggy_literal': [ +'''\ +

Razmisli, ali so vrednosti v označenem delu programa pravilne:

+ +''', +'''\ +

Ali so vse vrednosti pravilnih tipov (število/seznam/struktura/…)? Ali označeni argumenti nastopajo v pravih relacijah s spremenljivkami?

+''' + ], + + 'monkey_buggy_variable': [ +'''\ +

Spremenljivka [%=variable%] v programu ne nastopa pravilno. Posebej bodi pozoren na označene dele programa:

+ +''', +'''\ +

Ali so vsi cilji, v katerih nastopa spremenljivka [%=variable%], pravilni? +Preveri, da gre za pravi predikat ali operator, in da so označeni argumenti smiselni.

+

Ali spremenljivka [%=variable%] povsod označuje isto vrednost? +V prologu vse pojavitve iste spremenljivke znotraj pravila zmeraj označujejo isti objekt (npr. osebo ali število).

+''' + ], + + 'monkey_singleton': [ +'''\ +

Označena spremenljivka [%=variable%] se v pravilu pojavi le na enem mestu:

+ +''', +'''\ +

To običajno pomeni napako. Razmisli, ali bi vrednost, ki jo označuje [%=variable%], morala nastopati še kje v pravilu. Preveri tudi, da v pravilu ni kakšnih tipkarskih napak.

+''' + ], + + 'monkey_missing': '''\ +

Program je deloma pravilen, vendar še ni dokončan. Morda v katerem od stavkov manjka kakšen cilj, ali pa potrebuješ še eno pravilo.

+''', + + 'monkey_unknown': [ +'''\ +

Preveri označene dele programa:

+ +''', +'''\ +

Ta vzorec se ne pojavlja v doslej znanih rešitvah te naloge. To lahko pomeni, da je napačen, ali pa, da tvoj program implementira novo rešitev.

+''' + ], + 'noncapitalised_variable': '''\

Preveri kodo, označeni so deli, kjer bi morda moral uporabiti velike črke, ki označujejo spremenljivke v prologu.

''', -- cgit v1.2.1