diff options
author | Sean Whitton <spwhitton@spwhitton.name> | 2015-03-18 02:28:20 +0000 |
---|---|---|
committer | Sean Whitton <spwhitton@spwhitton.name> | 2015-03-18 02:28:20 +0000 |
commit | c124a5b4341a2bedcf0b1436ae6c25b7a2b7020a (patch) | |
tree | 9d56046abfb4659d0c622dfc2511829a6869a722 /src | |
parent | 6e628c7113305768fe8901475208dee91eb2ee24 (diff) | |
download | sariulclocks-c124a5b4341a2bedcf0b1436ae6c25b7a2b7020a.tar.gz |
finished function to update a ScoresList
Diffstat (limited to 'src')
-rw-r--r-- | src/Data/Classes.hs | 8 | ||||
-rw-r--r-- | src/Types/Classes.hs | 10 |
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 |