Implementa la logica del gioco dell'impiccato usando la programmazione funzionale reattiva.
L'impiccato è un semplice gioco in cui si indovinano le parole.
La programmazione funzionale reattiva è un modo per scrivere programmi interattivi. Si differenzia dalla prospettiva usuale: invece di dire «quando si preme il pulsante, incrementa il contatore», scrivi «il valore del contatore è la somma del numero di volte in cui si preme il pulsante».
Implementa la logica di base dell'impiccato usando la programmazione funzionale reattiva. Per farlo dovrai installare una libreria di programmazione funzionale reattiva: sarà descritto nei file specifici della lingua dell'esercizio.
Ignora la parte che riguarda una libreria FRP: per questo esercizio non serve una libreria di terze parti. Questo esercizio si concentra sulla programmazione orientata agli eventi, usando callback e il ciclo di eventi di Tcl.
Devi costruire un server TCP e un protocollo specifico del dominio. Il server viene avviato con la parola da indovinare. Lo script di test implementa il client che invia i comandi al server.
I comandi del protocollo da implementare sono:
STATUS per restituire lo stato attuale della partita. La risposta sarà un elenco di tre elementi:
GUESS x, dove x è una lettera da indovinare. Il server risponderà con l'elenco di stato dopo ogni tentativo.SHUTDOWN per spegnere il server da remoto. Altrimenti il server termina dopo una vittoria o una sconfitta.Il server deve essere in grado di gestire questi comandi senza distinguere maiuscole e minuscole.
Avvia il server usando il numero di porta 0: Tcl troverà una porta libera, così non dobbiamo scrivere un numero di porta fisso nello script di test. Tutti gli interpreti in esecuzione in un processo (compresi i thread) condividono lo stesso ambiente, quindi il server può comunicare la sua porta allo script di test usando l'array globale env. C'è un esempio nel file hangman.tcl iniziale.
Ti serviranno questi comandi di Tcl:
socket,
fileevent,
vwait.
Questo programma di esempio con i socket può aiutarti a iniziare.
Iscriviti a Exercism per imparare e padroneggiare Tcl con 135 esercizi e il mentoring di persone reali, tutto gratis.