Spaces:
Runtime error
Runtime error
add generate hint function
Browse files- scripts/quiz/hints.py +21 -23
scripts/quiz/hints.py
CHANGED
@@ -1,34 +1,32 @@
|
|
1 |
-
from random import random
|
2 |
-
|
3 |
-
|
4 |
import random
|
5 |
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
|
|
16 |
hints = [
|
17 |
-
f"What number will fill the gap in a sequence {
|
18 |
-
f"What number is {
|
19 |
-
f"What number is {
|
20 |
f"What number is greater than {right_answer - 1} and less than {right_answer + 1}?"
|
21 |
]
|
22 |
-
|
23 |
hints_used += 1
|
24 |
|
25 |
-
|
26 |
-
"text":
|
27 |
-
"question_numbers":
|
28 |
"right_answer": right_answer,
|
29 |
-
'number_correct':
|
30 |
-
'number_incorrect':
|
31 |
'level': level,
|
32 |
"hints_used": hints_used
|
33 |
}
|
34 |
-
return
|
|
|
|
|
|
|
|
|
1 |
import random
|
2 |
|
3 |
+
|
4 |
+
def generate_hint(question_nums, right_answer, right_answers, wrong_answers, level, hints_used):
|
5 |
+
ord_num = question_nums[1] # ordinal number
|
6 |
+
equation = right_answer - 2 * ord_num - 1
|
7 |
+
min_num = equation if equation > 0 else 0
|
8 |
+
seq_before = " ".join(
|
9 |
+
[str(num) for num in range(right_answer - ord_num, min_num, -ord_num)][::-1]
|
10 |
+
) # sequence before right answer
|
11 |
+
seq_after = " ".join(
|
12 |
+
[str(num) for num in range(right_answer + ord_num, right_answer + 2 * ord_num + 1, ord_num)]
|
13 |
+
) # sequence after right answer
|
14 |
hints = [
|
15 |
+
f"What number will fill the gap in a sequence {seq_before} ... {seq_after}?",
|
16 |
+
f"What number is {ord_num} in the account after {right_answer - ord_num}?",
|
17 |
+
f"What number is {ord_num} in the account before {right_answer + ord_num}?",
|
18 |
f"What number is greater than {right_answer - 1} and less than {right_answer + 1}?"
|
19 |
]
|
20 |
+
rand_hint = random.choice(hints)
|
21 |
hints_used += 1
|
22 |
|
23 |
+
output = {
|
24 |
+
"text": rand_hint,
|
25 |
+
"question_numbers": question_nums,
|
26 |
"right_answer": right_answer,
|
27 |
+
'number_correct': right_answers,
|
28 |
+
'number_incorrect': wrong_answers,
|
29 |
'level': level,
|
30 |
"hints_used": hints_used
|
31 |
}
|
32 |
+
return output
|