fix: Korrigiere Berechnung der Tippgeschwindigkeit in calculate_statistics

Co-authored-by: aider (ollama_chat/qwen3-coder:30b) <aider@aider.chat>
This commit is contained in:
jamulix 2025-10-21 05:16:19 +02:00
commit eab7b9d438

35
app.py
View file

@ -93,33 +93,38 @@ def calculate_statistics(user_input, current_text):
if total_chars > 0:
error_rate = (incorrect_chars / total_chars) * 100
# Berechne durchschnittliche Tippgeschwindigkeit (Zeichen pro Sekunde)
# Für diese einfache Version: 100 Zeichen pro Sekunde als Beispiel
typing_speed = 100 # Zeichen pro Minute
# Berechne durchschnittliche Tippgeschwindigkeit (Zeichen pro Minute)
# Für diese Version: Simuliere eine Zeitmessung
# In einer echten Anwendung würden wir die tatsächliche Zeit messen
# Hier simulieren wir eine Zeit basierend auf der Länge des eingegebenen Textes
if total_chars > 0:
# Simulierte Zeit: Je länger der Text, desto länger dauert es
# Wir verwenden eine einfache Formel: Zeit = (Anzahl der Zeichen * 0.1) Sekunden
# Dann konvertieren wir in Zeichen pro Minute
time_taken = total_chars * 0.1 # Sekunden
typing_speed = (total_chars / time_taken) * 60 if time_taken > 0 else 0
else:
typing_speed = 0
# Dauer pro Zeichen (in Sekunden)
duration_per_char = 1.0 / (typing_speed / 60) if typing_speed > 0 else 0
duration_per_char = 0
if total_chars > 0:
duration_per_char = time_taken / total_chars if time_taken > 0 else 0
# Berechne Wörter pro Minute (WPM)
# In einer echten Anwendung würden wir die Zeit messen
# Hier verwenden wir eine vereinfachte Berechnung basierend auf der Anzahl der Zeichen
words_per_minute = 0
# Annahme: 1 Wort = 5 Zeichen (durchschnittlich)
# Zeit pro Zeichen: 0.1 Sekunden (entspricht 10 Zeichen pro Sekunde)
if total_chars > 0:
time_per_char = 0.1 # Sekunden pro Zeichen
total_time = total_chars * time_per_char
if total_time > 0:
if total_chars > 0 and total_chars > 0:
time_taken = total_chars * 0.1 # Sekunden
if time_taken > 0:
# WPM = (Gesamtzeichen / 5) / (Gesamtzeit in Minuten)
words_per_minute = (total_chars / 5) / (total_time / 60)
words_per_minute = (total_chars / 5) / (time_taken / 60)
return {
'correct_chars': correct_chars,
'incorrect_chars': incorrect_chars,
'total_chars': total_chars,
'error_rate': round(error_rate, 2),
'typing_speed': typing_speed,
'typing_speed': round(typing_speed, 2),
'duration_per_char': round(duration_per_char, 3),
'words_per_minute': round(words_per_minute, 2)
}