Ce projet a pour but d'illustrer plusieurs concepts/pattern de la programmation fonctionnelle statiquement typée, avec Scala 3, en utilisant pour cela une implémentation du célèbre jeu Uno.
- l’immutabilité générale / la transparence référentielle
- les types algébriques de données (ADT)
- les types opaques / les types riches
- les classe de type (typeclass)
- les systèmes d'effets (IO)
- la programmation concurrente / parallèle
- les Stream
https://www.regledujeu.fr/uno/
la progression du développement du jeu; en fonction des concepts illutrés; est faite via les branches git préfixées avec le label step
La branche rawDev
représente le jeu coder "complètement" (avec tous les concepts d'un coup)
avoir à disposition une BDD PostgreSQL version 14
renseigner ces variables d'environnement avec les valeurs de votre base postgres et exporter les dans le scope de votre appli
export POSTGRESQL_ADDON_DB="dbname"
export POSTGRESQL_ADDON_HOST="localhost"
export POSTGRESQL_ADDON_PASSWORD=""
export POSTGRESQL_ADDON_PORT="db_port"
export POSTGRESQL_ADDON_USER="dbuser"
export POSTGRESQL_ADDON_VERSION="14"
la branche
rawDev
contient le code le plus "complet"
sbt
sbt:fpScala3_Uno> ~reStart
1
curl GET http://localhost:2000/api/vEvent/unogame/98064f99-fc82-4634-86e3-28d048be3754
cf. src/main/resources/Unogame.http