defined the structure of a goalie report
This commit is contained in:
parent
4848e54d81
commit
de67628df0
|
@ -33,6 +33,7 @@ module Mtlstats.Format
|
||||||
, tableWith
|
, tableWith
|
||||||
, complexTable
|
, complexTable
|
||||||
, overlayLast
|
, overlayLast
|
||||||
|
, showFloating
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Data.List (transpose)
|
import Data.List (transpose)
|
||||||
|
@ -185,3 +186,7 @@ overlayLast
|
||||||
overlayLast _ [] = []
|
overlayLast _ [] = []
|
||||||
overlayLast str [l] = [overlay str l]
|
overlayLast str [l] = [overlay str l]
|
||||||
overlayLast str (l:ls) = l : overlayLast str ls
|
overlayLast str (l:ls) = l : overlayLast str ls
|
||||||
|
|
||||||
|
-- | Converts a non-integer into a string
|
||||||
|
showFloating :: Fractional n => n -> String
|
||||||
|
showFloating = undefined
|
||||||
|
|
|
@ -213,4 +213,44 @@ playerReport width label ps = let
|
||||||
in rHeader ++ table
|
in rHeader ++ table
|
||||||
|
|
||||||
goalieReport :: Int -> [(Goalie, GoalieStats)] -> [String]
|
goalieReport :: Int -> [(Goalie, GoalieStats)] -> [String]
|
||||||
goalieReport = undefined
|
goalieReport width goalieData = let
|
||||||
|
olayText = "GOALTENDING TOTALS"
|
||||||
|
|
||||||
|
tData = foldl addGoalieStats newGoalieStats
|
||||||
|
$ map snd goalieData
|
||||||
|
|
||||||
|
header =
|
||||||
|
[ CellText "NO."
|
||||||
|
, CellText $ left (length olayText) "GOALTENDER"
|
||||||
|
, CellText "GP"
|
||||||
|
, CellText " MIN"
|
||||||
|
, CellText " GA"
|
||||||
|
, CellText " SO"
|
||||||
|
, CellText "AVE"
|
||||||
|
]
|
||||||
|
|
||||||
|
rowCells stats =
|
||||||
|
[ CellText $ show $ stats^.gsGames
|
||||||
|
, CellText $ show $ stats^.gsMinsPlayed
|
||||||
|
, CellText $ show $ stats^.gsGoalsAllowed
|
||||||
|
, CellText $ show $ stats^.gsShutouts
|
||||||
|
, CellText $ showFloating $ gsAverage stats
|
||||||
|
]
|
||||||
|
|
||||||
|
body = map
|
||||||
|
(\(goalie, stats) ->
|
||||||
|
[ CellText $ show (goalie^.gNumber) ++ " "
|
||||||
|
, CellText $ show $ goalie^.gName
|
||||||
|
] ++ rowCells stats)
|
||||||
|
goalieData
|
||||||
|
|
||||||
|
separator
|
||||||
|
= replicate 2 (CellText "")
|
||||||
|
++ replicate 5 (CellFill '-')
|
||||||
|
|
||||||
|
summary = replicate 2 (CellText "") ++ rowCells tData
|
||||||
|
|
||||||
|
in map (centre width)
|
||||||
|
$ overlayLast olayText
|
||||||
|
$ complexTable ([right, left] ++ repeat right)
|
||||||
|
$ header : body ++ [separator, summary]
|
||||||
|
|
|
@ -171,7 +171,10 @@ module Mtlstats.Types (
|
||||||
goalieSearch,
|
goalieSearch,
|
||||||
goalieSearchExact,
|
goalieSearchExact,
|
||||||
goalieSummary,
|
goalieSummary,
|
||||||
goalieIsActive
|
goalieIsActive,
|
||||||
|
-- ** GoalieStats Helpers
|
||||||
|
addGoalieStats,
|
||||||
|
gsAverage
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Control.Monad.Trans.State (StateT)
|
import Control.Monad.Trans.State (StateT)
|
||||||
|
@ -990,3 +993,11 @@ goalieSummary g = g^.gName ++ " (" ++ show (g^.gNumber) ++ ")"
|
||||||
-- season
|
-- season
|
||||||
goalieIsActive :: Goalie -> Bool
|
goalieIsActive :: Goalie -> Bool
|
||||||
goalieIsActive g = g^.gYtd.gsMinsPlayed /= 0
|
goalieIsActive g = g^.gYtd.gsMinsPlayed /= 0
|
||||||
|
|
||||||
|
-- | Adds two sets of 'GoalieStats'
|
||||||
|
addGoalieStats :: GoalieStats -> GoalieStats -> GoalieStats
|
||||||
|
addGoalieStats = undefined
|
||||||
|
|
||||||
|
-- | Determines a goalie's average goals allowed per game.
|
||||||
|
gsAverage :: GoalieStats -> Rational
|
||||||
|
gsAverage = undefined
|
||||||
|
|
Loading…
Reference in New Issue
Block a user