Create reward.py
Browse files- logic/reward.py +34 -0
logic/reward.py
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
class RewardSystem:
|
| 2 |
+
def __init__(self):
|
| 3 |
+
self.quiz_base_reward = 10
|
| 4 |
+
self.exercise_base_reward = 20
|
| 5 |
+
self.perfect_bonus = 5
|
| 6 |
+
|
| 7 |
+
def calculate_quiz_reward(self, correct_answers, total_questions):
|
| 8 |
+
"""محاسبه پاداش برای کوییز"""
|
| 9 |
+
base_score = (correct_answers / total_questions) * self.quiz_base_reward
|
| 10 |
+
if correct_answers == total_questions:
|
| 11 |
+
base_score += self.perfect_bonus
|
| 12 |
+
return round(base_score)
|
| 13 |
+
|
| 14 |
+
def calculate_exercise_reward(self, is_correct, keyword_matches, total_keywords):
|
| 15 |
+
"""محاسبه پاداش برای تمرین"""
|
| 16 |
+
if is_correct:
|
| 17 |
+
base_reward = self.exercise_base_reward
|
| 18 |
+
# پاداش اضافه برای تطابق بیشتر کلمات کلیدی
|
| 19 |
+
match_bonus = (keyword_matches / total_keywords) * 5
|
| 20 |
+
return round(base_reward + match_bonus)
|
| 21 |
+
return 0
|
| 22 |
+
|
| 23 |
+
def get_feedback_message(self, reward, max_reward):
|
| 24 |
+
"""پیام بازخورد بر اساس پاداش"""
|
| 25 |
+
percentage = (reward / max_reward) * 100
|
| 26 |
+
|
| 27 |
+
if percentage >= 90:
|
| 28 |
+
return "عالی! عملکرد فوقالعادهای داشتید! 🎉"
|
| 29 |
+
elif percentage >= 70:
|
| 30 |
+
return "خوب! در مسیر درستی قرار دارید! 👍"
|
| 31 |
+
elif percentage >= 50:
|
| 32 |
+
return "قابل قبول. میتوانید بهتر عمل کنید! 💪"
|
| 33 |
+
else:
|
| 34 |
+
return "نیاز به مطالعه بیشتر دارید. ادامه دهید! 📚"
|