Implementiere die Logik des Hangman-Spiels mit funktionaler reaktiver Programmierung.
Hangman ist ein einfaches Wortratespiel.
Funktionale reaktive Programmierung ist eine Möglichkeit, interaktive Programme zu schreiben. Sie unterscheidet sich von der üblichen Sichtweise: Statt zu sagen „wenn die Taste gedrückt wird, erhöhe den Zähler“, schreibst du „der Wert des Zählers ist die Summe der Anzahl, wie oft die Taste gedrückt wurde“.
Implementiere die grundlegende Logik hinter Hangman mit funktionaler reaktiver Programmierung. Dafür musst du eine FRP-Bibliothek installieren, das wird in den sprach- und trackspezifischen Dateien der Übung beschrieben.
Bitte ignoriere den Teil über eine FRP-Bibliothek: Für diese Übung ist keine Bibliothek von Drittanbietern erforderlich. Diese Übung konzentriert sich auf ereignisgesteuerte Programmierung mit Callbacks und der Ereignisschleife von Tcl.
Du sollst einen TCP-Server und ein domänenspezifisches Protokoll implementieren. Dieser Server wird mit dem zu erratenden Wort gestartet. Das Testskript implementiert den Client, der die Befehle an den Server sendet.
Die Protokollbefehle, die du implementieren musst, sind:
STATUS, um den aktuellen Zustand des Spiels zurückzugeben. Die Antwort ist
eine dreielementige Liste:
GUESS x, wobei x ein Buchstabe ist, der geraten werden soll. Der Server
antwortet nach jedem Versuch mit der Statusliste.SHUTDOWN, um den Server aus der Ferne herunterzufahren. Andernfalls beendet
sich der Server nach einem Sieg oder einer Niederlage.Der Server sollte diese Befehle ohne Beachtung der Groß- und Kleinschreibung verarbeiten können.
Starte deinen Server mit Portnummer 0: Tcl findet dann einen unbenutzten
Port, sodass wir keine Portnummer im Testskript fest verdrahten müssen. Alle
Interpreter, die in einem Prozess laufen (einschließlich Threads), teilen sich
dieselbe Umgebung, sodass der Server seinen Port über das globale env-Array
an das Testskript zurückmelden kann. Ein Beispiel findest du in der
ursprünglichen Datei hangman.tcl.
Du brauchst diese Tcl-Befehle:
socket,
fileevent,
vwait.
Dieses Beispiel-Socket-Programm kann dir den Einstieg erleichtern.
Melde dich bei Exercism an, um Tcl mit 135 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.