From 84c432c325bc48d02b8474d16241d01e88df66e9 Mon Sep 17 00:00:00 2001 From: "Edgar P. Burkhart" Date: Mon, 16 Jun 2025 16:16:03 +0200 Subject: [PATCH] Refactor value calculation in MusicGameOrder to improve scoring logic Fix #13 Close #12 --- game/models.py | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/game/models.py b/game/models.py index 51eb410..153583f 100644 --- a/game/models.py +++ b/game/models.py @@ -121,13 +121,10 @@ class MusicGameOrder(models.Model): value = models.PositiveIntegerField(default=0) def update_value(self): - n_right = self.musicgameanswer_set.filter(game__player=F("answer")).count() - if n_right == 0: - self.value = 1000 - else: - self.value = 1000 / ( - 1 + ((n_right - 1) / (self.game.players.count() - 1)) ** 0.5 - ) + x = self.musicgameanswer_set.filter(game__player=F("answer")).count() + n = self.game.players.count() + n = max(3, n) + self.value = 1000 * 2 ** (-(x - 2) / (n - 2)) self.save() class Meta: