Open tmrdlt opened 4 years ago
Minesweepskell is a web implementation of the widely known video game Minesweeper fully written in the Haskell functional programming language.
Yesod
frameworkYesods
shakespearean templating systemTVars
TVars
, which provide mutability as well as atomic writing operationsPersistent
& MongoDB
Persistent
library to connect a MongoDB
Lenses
lenses
are used for almost all operations on data types matrix-lens
package and provide elegant manipulation of cells on the game board
Monads
Monads
are widely used throughout the project, especially the IO monad for things like state manipulation, as well as Yesods Handler Monad for the REST API, own Monads are not definedState
monad, but we could not get it to work in combination with Yesods handler monad. Due to this we switched to TVars for the global in-memory state, which proved to be a better choice, since it even provides atomic writing operations and was astonishingly smooth to implement for our use cases.
SPRINT GOAL ♦️
README.md
(incl. usage, topics and short description) and align with lecture topics 🔺 https://github.com/ndrsllwngr/ffp/issues/17#issuecomment-691658596stylish-haskell -r -i src/*
), be careful that{-# LANGUAGE
are preservedBACKEND
FRONTEND
OPTIONAL
BUGS
NOT DOING
/game/#id
page (🤔 not sure if useful at all. any information gain?)DONE
localhost
is hardcoded at the moment, better solution? b2ac90bf57cff14643fdc78b1b1b163517352a93REQUIREMENTS (Uni2Work)
yesod
Persistent
)AI/Automated Problem SolvingUPDATED REQUIREMENTS