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.
Ignore la partie qui concerne une bibliothèque FRP : aucune bibliothèque tierce n'est nécessaire pour cet exercice. Cet exercice porte sur la programmation événementielle avec des callbacks et la boucle d'événements de Tcl.
Tu dois construire un serveur TCP et un protocole spécifique au domaine. Ce serveur est lancé avec le mot à deviner. Le script de test implémente le client qui envoie les commandes au serveur.
Les commandes du protocole à implémenter sont :
STATUS pour renvoyer l'état actuel de la partie. La réponse sera une liste de trois éléments :
GUESS x où x est une lettre à deviner. Le serveur répond avec la liste de statut après chaque proposition.SHUTDOWN pour arrêter le serveur à distance. Sinon, le serveur se termine après une victoire ou une défaite.Le serveur doit pouvoir traiter ces commandes sans tenir compte de la casse.
Lance ton serveur avec le numéro de port 0 : Tcl trouvera un port inutilisé, ce qui évite de coder un numéro de port « en dur » dans le script de test. Tous les interprètes qui s'exécutent dans un même processus (y compris les threads) partagent le même environnement, donc le serveur peut communiquer son port au script de test grâce au tableau global env. Tu trouveras un exemple dans le fichier hangman.tcl initial.
Tu auras besoin de ces commandes Tcl :
socket,
fileevent,
vwait.
Cet exemple de programme socket peut te servir de point de départ.
Inscris-toi sur Exercism pour apprendre et maîtriser Tcl avec 135 exercices, et un vrai mentorat humain, le tout gratuitement.