Implemente a lógica do jogo da forca usando programação reativa funcional.
Forca é um jogo simples de adivinhar palavras.
Programação reativa funcional é uma forma de escrever programas interativos. Ela difere da perspectiva usual: em vez de dizer "quando o botão for pressionado, incremente o contador", você escreve "o valor do contador é a soma do número de vezes que o botão foi pressionado".
Implemente a lógica básica por trás do jogo da forca usando programação reativa funcional. Você vai precisar instalar uma biblioteca de FRP para isso, e isso será descrito nos arquivos específicos da linguagem/trilha do exercício.
Ignore a parte sobre uma biblioteca FRP: uma biblioteca de terceiros não é necessária para este exercício. Este exercício foca em programação orientada a eventos, usando callbacks e o laço de eventos do Tcl.
Você precisa construir um servidor TCP e um protocolo específico de domínio. Esse servidor é iniciado com a palavra a ser adivinhada. O script de teste implementa o cliente que envia comandos ao servidor.
Os comandos do protocolo a implementar são:
STATUS para retornar o estado atual do jogo. A resposta será uma
lista de três elementos:
GUESS x, em que x é uma letra a ser adivinhada. O servidor responderá com a
lista de status depois de cada palpite.SHUTDOWN para desligar o servidor remotamente. Caso contrário, o servidor
encerra após uma vitória ou uma derrota.O servidor deve ser capaz de lidar com esses comandos sem diferenciar maiúsculas de minúsculas.
Inicie seu servidor usando o número de porta 0: o Tcl vai encontrar uma
porta não utilizada, então não precisamos fixar um número de porta no script
de teste. Todos os intérpretes em execução em um processo (incluindo threads)
compartilham o mesmo ambiente, então o servidor pode comunicar sua porta de
volta ao script de teste usando o array global env. Há um exemplo no arquivo
hangman.tcl inicial.
Você vai precisar destes comandos do Tcl:
socket,
fileevent,
vwait.
Este exemplo de programa com socket pode ajudar você a começar.
Crie sua conta no Exercism para aprender e dominar Tcl com 135 exercícios e mentoria humana de verdade, tudo de graça.