Eingabe_Funktion

This commit is contained in:
ben8
2025-05-02 17:06:29 +02:00
parent a7c42ecf13
commit a6cac52ba6
7 changed files with 245 additions and 18 deletions

View File

@@ -84,7 +84,10 @@ class GameConsumer(AsyncWebsocketConsumer):
elif message_type == 'submit_answer':
participant_id = text_data_json['participant_id']
answer = text_data_json['answer']
try:
answer = text_data_json['answer']
except:
answer=-1
time_remaining = text_data_json.get('time_remaining', 0)
# Save answer and update participant score
@@ -182,15 +185,30 @@ class GameConsumer(AsyncWebsocketConsumer):
# Check if answer is correct
is_correct = False
if answer_index >= 0: # -1 means timeout
question_data = json.loads(current_question.data)
question_data = json.loads(current_question.data)
print(answer_index)
try:
#if answer_index >= 0 : # -1 means timeout
is_correct = question_data['options'][answer_index]['is_correct']
print(is_correct)
except:
user_input = str(answer_index).strip().lower()
correct_value = str(question_data['options'][0].get('value', '')).strip().lower()
print("Richtig",correct_value)
if user_input == correct_value:
is_correct=True
answer_index=0
print(is_correct)
# Calculate score based on correctness and time
score = 0
if is_correct:
base_score = 1000
time_factor = time_remaining / 30000 # 30 seconds max
time_factor = time_remaining / int(current_question.time_per_question)/int(1000)
score = int(base_score * (0.5 + 0.5 * time_factor))
# Update or create answer in QuizAnswer table