From 723808a5638a249d9578a597345dcdf52d05c7c5 Mon Sep 17 00:00:00 2001 From: "arthur.valin" Date: Tue, 21 Mar 2023 11:30:28 +0100 Subject: [PATCH] Correcting bug when computing points --- Sources/bowlin_project/lib/model/AbstractRound.dart | 11 ++++++++++- Sources/bowlin_project/lib/model/GameDetail.dart | 1 + Sources/bowlin_project/lib/model/LastRound.dart | 1 + Sources/bowlin_project/lib/model/Round.dart | 1 - 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/Sources/bowlin_project/lib/model/AbstractRound.dart b/Sources/bowlin_project/lib/model/AbstractRound.dart index b636611..b5293db 100644 --- a/Sources/bowlin_project/lib/model/AbstractRound.dart +++ b/Sources/bowlin_project/lib/model/AbstractRound.dart @@ -1,5 +1,7 @@ import 'Player.dart'; +final maxScoreInFrame = 30; + abstract class AbstractRound { int? _firstThrow; int? _secondThrow; @@ -28,7 +30,11 @@ abstract class AbstractRound { int? get points => _points; set points(int? value) { - _points = value; + if((value??0)>=maxScoreInFrame){ + _points=maxScoreInFrame; + }else { + _points = value; + } } @@ -76,11 +82,14 @@ abstract class AbstractRound { } void update(int val){ + print(" ROUND " + number.toString() + "UPDATE : " + val.toString()); + points = (points ?? 0) + val; previousRound?.update(val); } void unsubscribePreviousRound(){ + print("UNSUBSCRIBE"); previousRound?.unsubscribePreviousRound(); previousRound=null; } diff --git a/Sources/bowlin_project/lib/model/GameDetail.dart b/Sources/bowlin_project/lib/model/GameDetail.dart index 4b159e9..36a5389 100644 --- a/Sources/bowlin_project/lib/model/GameDetail.dart +++ b/Sources/bowlin_project/lib/model/GameDetail.dart @@ -102,6 +102,7 @@ class GameDetail { print("====COMPUTE POINTS===="); for(var element in rounds){ points[element.player] = (points[element.player] ?? 0) + (element.points ?? 0); + print(element.points); } computeWinner(); addGameToUsers(); diff --git a/Sources/bowlin_project/lib/model/LastRound.dart b/Sources/bowlin_project/lib/model/LastRound.dart index 71cbb86..15ba3f4 100644 --- a/Sources/bowlin_project/lib/model/LastRound.dart +++ b/Sources/bowlin_project/lib/model/LastRound.dart @@ -38,6 +38,7 @@ class LastRound extends AbstractRound{ @override void computePoints() { points = (firstThrow??0)+(secondThrow??0)+(thirdThrow??0); + print("Compute points : " + points.toString()); if(previousRound?.isStrike()??false){ update(points??0); diff --git a/Sources/bowlin_project/lib/model/Round.dart b/Sources/bowlin_project/lib/model/Round.dart index 6e1d9c3..0e37f70 100644 --- a/Sources/bowlin_project/lib/model/Round.dart +++ b/Sources/bowlin_project/lib/model/Round.dart @@ -31,7 +31,6 @@ class Round extends AbstractRound{ if(previousRound?.isStrike() ?? false){ previousRound?.update(points ?? 0); } - unsubscribePreviousRound(); } @override