Implementa la lógica del juego del ahorcado usando programación reactiva funcional.
El ahorcado es un juego sencillo de adivinación de palabras.
La programación reactiva funcional es una forma de escribir programas interactivos. Se diferencia de la perspectiva habitual en que, en lugar de decir «cuando se pulse el botón, incrementa el contador», escribes «el valor del contador es la suma del número de veces que se pulsa el botón».
Implementa la lógica básica del ahorcado usando programación reactiva funcional. Para ello tendrás que instalar una biblioteca de programación reactiva funcional; esto se describe en los archivos específicos del lenguaje o del track del ejercicio.
Por favor, ignora la parte que hace referencia a una biblioteca FRP: no se necesita una biblioteca de terceros para este ejercicio. Este ejercicio se centra en la programación dirigida por eventos mediante callbacks y el bucle de eventos de Tcl.
Debes construir un servidor TCP y un protocolo específico del dominio. Este servidor se lanza con la palabra que hay que adivinar. El script de pruebas implementa el cliente que envía comandos al servidor.
Los comandos del protocolo que debes implementar son:
STATUS para devolver el estado actual del juego. La respuesta será una
lista de tres elementos:
GUESS x, donde x es una letra que hay que adivinar. El servidor
responderá con la lista de estado después de cada intento.SHUTDOWN para apagar el servidor de forma remota. De lo contrario, el
servidor se cerrará tras una victoria o una derrota.El servidor debería poder gestionar estos comandos sin distinguir entre mayúsculas y minúsculas.
Inicia tu servidor usando el puerto número 0: Tcl encontrará un puerto que
no esté en uso, así no tenemos que fijar un número de puerto directamente en
el script de pruebas. Todos los intérpretes que se ejecutan en un proceso
(incluidos los hilos) comparten el mismo entorno, así que el servidor puede
comunicar su puerto al script de pruebas usando el array env global. Hay un
ejemplo en el archivo inicial hangman.tcl.
Necesitarás estos comandos de Tcl:
socket,
fileevent,
vwait.
Este programa de ejemplo con sockets puede servirte para empezar.
Regístrate en Exercism para aprender y dominar Tcl con 135 ejercicios y mentoría humana real, todo gratis.