aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorSean Whitton <spwhitton@spwhitton.name>2015-03-18 02:28:20 +0000
committerSean Whitton <spwhitton@spwhitton.name>2015-03-18 02:28:20 +0000
commitc124a5b4341a2bedcf0b1436ae6c25b7a2b7020a (patch)
tree9d56046abfb4659d0c622dfc2511829a6869a722 /src
parent6e628c7113305768fe8901475208dee91eb2ee24 (diff)
downloadsariulclocks-c124a5b4341a2bedcf0b1436ae6c25b7a2b7020a.tar.gz
finished function to update a ScoresList
Diffstat (limited to 'src')
-rw-r--r--src/Data/Classes.hs8
-rw-r--r--src/Types/Classes.hs10
2 files changed, 10 insertions, 8 deletions
diff --git a/src/Data/Classes.hs b/src/Data/Classes.hs
index fa6bfec..b7386d6 100644
--- a/src/Data/Classes.hs
+++ b/src/Data/Classes.hs
@@ -33,11 +33,3 @@ lookupSariulClass grade theClass = do
case classes of
[] -> Nothing
(x:xs) -> Just x
-
--- TODO: make this take into account modified
-
-updateScore :: ScoresList -> Class -> Int -> Int -> ScoresList
-updateScore [] _ _ _ = []
-updateScore (s@(aClass, Score x y):ss) c p t
- | c == aClass = (c, Score (x + p) (y + t)):ss
- | otherwise = s:updateScore ss c p t
diff --git a/src/Types/Classes.hs b/src/Types/Classes.hs
index 930f4e5..bcf487c 100644
--- a/src/Types/Classes.hs
+++ b/src/Types/Classes.hs
@@ -27,3 +27,13 @@ instance Show Class where
numberOfSs :: Class -> Int
numberOfSs (Class _ _ n) = n
+
+getModifier :: Class -> Float
+getModifier (Class (GradeFive m) _ _) = m
+getModifier (Class (GradeSix m) _ _) = m
+
+updateScore :: ScoresList -> Class -> Int -> Int -> ScoresList
+updateScore [] _ _ _ = []
+updateScore (s@(aClass, Score x y):ss) c p t
+ | c == aClass = (c, Score (x + (floor $ (fromIntegral p) * (getModifier aClass))) (y + t)):ss
+ | otherwise = s:updateScore ss c p t