Commit graph

3 commits

Author SHA1 Message Date
Sam Tay
ad1fcf9192 Refactor game state computation
Cleaning up the Tetris module, mainly to favor a MonadState style over
explicit `Game -> Game` functions, which were a little awkward. This also
led naturally to explicitly isolating `IO`, by having pure state modifiers
with types like `Tetris a ~ forall m. StateT Game m a` being executed
with `m ~ Identity`, and those few modifiers that need IO specified by
`TetrisT a ~ StateT Game IO a`.
2018-12-27 10:28:26 -05:00
Sam Tay
8361b3464a Improve visuals 2017-06-18 00:25:24 -04:00
Sam Tay
c12bef50b3 Finish level picker, start game interface 2017-06-17 02:55:21 -04:00