diff options
author | Erin van der Veen | 2017-09-18 13:45:38 +0200 |
---|---|---|
committer | Erin van der Veen | 2017-09-18 13:45:38 +0200 |
commit | 617a5d824a836300e533caafa29e6ff3dbe3a696 (patch) | |
tree | 1d41c56ffc6e6c9a4958e3812d176f17a20e8801 /src/runchess.hs | |
parent | Continue assignment1 (diff) |
Print every gamestate to stdout; Add fault test; Add runchess to gitignore
Diffstat (limited to 'src/runchess.hs')
-rw-r--r-- | src/runchess.hs | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/src/runchess.hs b/src/runchess.hs index 27a6da8..5854e57 100644 --- a/src/runchess.hs +++ b/src/runchess.hs @@ -21,15 +21,19 @@ readPGN = do Right games -> return games applyPGN :: PGN -> IO () -applyPGN pgn = printGame (foldM (flip moveSAN) defaultBoard $ moves pgn) pgn +applyPGN pgn = mapM_ printBoard (seqList [moveSAN m | m <- moves pgn] $ Right defaultBoard) + where + seqList (f:fs) (Right io) = f io:seqList fs (f io) + seqList _ (Left _) = [] + seqList [] _ = [] printGame :: Either MoveError Board -> PGN -> IO () printGame b pgn = printPGN pgn >> printBoard b - where - printBoard (Left e) = putStrLn $ show e - printBoard (Right b) = putStr $ show b - printPGN :: PGN -> IO () - printPGN pgn = do - putStrLn $ site pgn ++ " " ++ date pgn ++ ": " ++ whitePlayer pgn ++ " vs. " ++ blackPlayer pgn - putStrLn $ show $ result pgn +printBoard (Left e) = putStrLn $ show e +printBoard (Right b) = putStr $ show b + +printPGN :: PGN -> IO () +printPGN pgn = do + putStrLn $ site pgn ++ " " ++ date pgn ++ ": " ++ whitePlayer pgn ++ " vs. " ++ blackPlayer pgn + putStrLn $ show $ result pgn |