Implémente la logique du jeu du pendu en utilisant la programmation réactive fonctionnelle.
Le pendu est un simple jeu de devinettes de mots.
La programmation réactive fonctionnelle est une façon d'écrire des programmes interactifs. Elle diffère de la perspective habituelle : au lieu de dire « quand on appuie sur le bouton, incrémenter le compteur », on écrit « la valeur du compteur est la somme du nombre de fois où on appuie sur le bouton ».
Implémente la logique de base du pendu en utilisant la programmation réactive fonctionnelle. Pour cela, tu devras installer une bibliothèque FRP ; ce point sera décrit dans les fichiers spécifiques au langage ou au parcours de l'exercice.
L'un des principaux aspects de la programmation fonctionnelle est de disposer de fonctions sans effets de bord, sans avoir à se demander quels objets cachés une fonction a modifiés.
En programmation réactive, au lieu d'avoir un composant qui cherche activement du travail, c'est le travail qui est poussé vers le composant. C'est similaire aux callbacks, mais à un niveau bien plus élevé, avec des abstractions plus puissantes. Très souvent, la programmation réactive est utilisée conjointement avec la programmation fonctionnelle.
Dans cet exercice, on utilisera RxJava, une bibliothèque bien connue de programmation réactive dotée d'une API Java.
Le contexte simulé de cet exercice est une application qui reçoit deux entrées :
Ces deux entrées sont implémentées avec Observables, à l'aide de la classe io.reactivex.Observable.
Concrètement, on peut s'abonner à un Observable pour « réagir » aux valeurs qui sont produites quelque part. Par exemple, le moteur de jeu pousse de nouveaux mots lorsqu'il détecte qu'une nouvelle partie a commencé, ou bien les événements du clavier génèrent des entrées de lettres.
Mais de nombreux frameworks réactifs offrent des abstractions puissantes, comme map qui permet de modifier l'entrée reçue, ou combine qui permet de fusionner un ou plusieurs Observable.
La classe Output est le résultat attendu du traitement de l'exercice : elle permet à un front-end
d'afficher l'état complet du jeu sans exiger de sa part la moindre forme de stockage, ce qui la rend
fonctionnelle elle aussi.
Dans cet exercice, tu dois trouver un moyen d'utiliser les deux entrées pour générer cette sortie sous la forme d'un Observable.
Inscris-toi sur Exercism pour apprendre et maîtriser Java avec 26 concepts158 exercices, et un vrai mentorat humain, le tout gratuitement.