Implementa la lógica del juego del ahorcado usando programación reactiva funcional.
El ahorcado es un juego sencillo de adivinar 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 presiona el botón, incrementa el contador», escribes «el valor del contador es la suma del número de veces que se presiona el botón».
Implementa la lógica básica detrás del ahorcado usando programación reactiva funcional. Para esto vas a necesitar instalar una biblioteca de FRP; esto se describe en los archivos específicos del lenguaje o del track del ejercicio.
Ignora la parte sobre una biblioteca FRP; no se necesita una biblioteca de terceros para este ejercicio. Este ejercicio se centra en la programación basada en eventos, usando callbacks y el bucle de eventos de Tcl.
Debes construir un servidor TCP y un protocolo específico del dominio. Este servidor se inicia con la palabra que hay que adivinar. El script de prueba 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 se va a 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
terminará después de una victoria o una derrota.El servidor debe poder manejar estos comandos sin distinguir entre mayúsculas y minúsculas.
Inicia tu servidor usando el puerto número 0: Tcl encontrará un puerto sin usar, así
no tenemos que poner un número de puerto fijo en el script de prueba. Todos los
intérpretes que se ejecutan en un proceso (incluidos los hilos) comparten el mismo
entorno, así que el servidor puede comunicarle su puerto al script de prueba
usando el array global env. Hay un ejemplo en el archivo hangman.tcl inicial.
Vas a necesitar estos comandos de Tcl:
socket,
fileevent,
vwait.
Este programa de ejemplo con sockets te puede servir para empezar.
Regístrate en Exercism para aprender y dominar Tcl con 135 ejercicios y mentoría humana real, todo gratis.