Benutzerhandbuch zum Kap-Loeb9-Online-Zugeingabeformular

Betriebskonzept

Allgemeines

Das vorliegende Programm erlaubt es einem Teilnehmer einer KapDip-Partie, einen reinen Börsenzug

Das Formular ist hierbei jeweils nur für genau eine Runde verwendbar. (Warum das so ist - und so sein soll! -, wird beim weiteren Lesen klarer werden.)
Innerhalb dieser Runde kann der Spieler während der Erstellung seines Zuges beliebig viele Versuche durchführen und diese Versuche jeweils wieder zurücknehmen, bevor er letztlich seinen fertigen Zug via E-Mail an den Spielleiter sendet. Selbst dies ist dann noch keine endgültige Entscheidung: Das Absenden hindert den Spieler nicht daran, den Zug erneut zurückzunehmen und von vorne zu beginnen.

Für den Spieler bedeutet dies, daß er vom Spielleiter jeweils mit der nächsten Auswertung - sinnvollerweise ebenfalls per E-Mail - ein neues Formular erhalten wird, mit welchem er den Zug für die nächste Runde anfertigen kann.
Dieses auf den ersten Blick aufwendig erscheinende Verfahren wurde bewußt so gewählt, denn es erspart dem Spieler die (fehleranfällige) Arbeit, alle Daten der Auswertung in seinen eigenen Datenbestand einzutragen. Dies erledigt der Spielleiter einmal für alle Spieler.

Anmerkungen für fortgeschrittene Benutzer bzw. Spielleiter

Ein Spieler könnte diese Umstellung mit relativ geringem Aufwand auch selbst durchführen, wenn er die Kenntnisse besitzt, den innerhalb des HTML-Dokuments verwendeten JavaScript-Code zu lesen und die darin angegebenen Zahlenwerte anzupassen. Die entsprechenden Funktionen sind sogar im Quelltext entsprechend gekennzeichnet.
Dieser Service richtet sich allerdings weniger an Spieler als vielmehr an andere KapDip-Spielleiter, die das vorliegende Verfahren zur Auswertung eigener Partien nutzen wollen.

Theoretisch wäre sogar die Generierung eines Zugformulars mit jeweils aktuellen Werten durch ein Auswerteprogramm wie KAPDIP/PC denkbar. Da der Aufwand zur Anpassung des Formulars jedoch für einen geübten Spielleiter nur ca. eine Minute beträgt und dieser bei der vorliegenden Lösung das Layout des Formulars mit entsprechenden HTML-Kenntnissen weitgehend selbst bestimmen kann, wurde eine solche Lösung nicht realisiert.

Anweisungen

Aufbau des Formulars

Das Formular besteht aus zwei Abschnitten:

Das Programm kennt zwei Dialog-Zustände: vor bzw. nach der Ausführung eines Zuges.

Anweisungen vor der Ausführung eines Zuges

Vor der Ausführung eines Zuges bietet das Programm dem Spieler Eingabefelder zu allen Währungen sowie folgende Anweisungen an:

Partie starten

Diese Anweisung erfragt (durch nacheinander angezeigte Dialogboxen) Werte für

setzt

speichert anschließend alle Informationen ab.
Diese Anweisung wird nur zum Aufbau der Spielerdaten benötigt. Sollte das Formularprogramm fehlerhaft arbeiten, kann der Spieler seinen Datenbestand durch Neueingabe seiner Daten anhand der aktuellen Auswertung wiederherstellen.

NMR-Zug eingeben

Diese Anweisung setzt den Inhalt aller Eingabefelder auf den Wert -500 und speichert den Zug ab.

Zug ausführen

Das Programm prüft die eingegebenen Werte, ersetzt alle Meta-Anweisungen (falls möglich) durch entsprechenden Zahlen, erhöht die aktuelle Runde um 1 und speichert den Zug ab.

Anweisungen nach der Ausführung eines Zuges

Nach der Ausführung eines Zuges bietet das Programm dem Spieler folgende Anweisungen an:

Zug ausführen

Das Programm prüft die eingegebenen Werte, ersetzt alle Meta-Anweisungen (falls möglich) durch entsprechenden Zahlen, erhöht die aktuelle Runde um 1 und speichert den Zug ab.

Zugformular per E-Mail abschicken

Diese Anweisung sendet den Inhalt des Formulars als E-Mail an eine im Programm eingetragene Mail-Adresse des Spielleiters.
Die ist fest eingebrannt, damit das Programm nicht auch noch den ansonsten statischen Kopf des Formulars komplett dynamisch erzeugen muß ...)

Datenmodell

Die Daten, welche die aktuelle Partiesituation aus der Sicht des Spielers beschreiben, lassen sich in zwei Gruppen unterteilen, welche von dem vorliegenden Programm unterschiedlich verwaltet werden:

Allgemeine Partiedaten

Allgemeine Partiedaten sind im Quelltext des Programms fest eingebrannt. Hierzu gehören

Insbesondere sind diese Daten für alle Spieler identisch und werden deshalb vom Spielleiter gewartet und mit jeder Runde (d. h. jedem neuen Formular) neu ausgeliefert.

Spielerspezifische Partiedaten

Spielerspezifische Partiedaten werden vom Programm in einem cookie der lokalen Browser-Konfiguration abgespeichert. Hierzu gehören

Die beiden letztgenannten Angaben sind temporärer Natur und dienen lediglich dazu, dem Spieler zu erlauben, einen Zug ausfüren, seine Aktionen abzuspeichern und diese später wieder rückgängig machen zu können.
Insbesondere ermittelt das Programm durch den Vergleich der vorgegebenen mit der aktuellen Rundennummer, ob der Spieler seinen Zug bereits ausgeführt hat oder nicht. Das Formular der folgenden Runde wird mit einer um 1 erhöhren vorgegebene Rundennummer ausgeliefert werden und dadurch die Umschaltung auf die nächste Runde bewirken.

Zulässige Benutzereingaben

Während einer Partie gibt der Spieler nur noch eine Anweisungen bezüglich der einzelnen Währungen ein. Neben reinen Zahlenwerten stehen hier allerdings auch einige mächtige Meta-Befehle zur Verfügung.

Diese Meta-Befehle werden bei der Prüfung des Zuges ausgewertet und durch das entsprechende Ergebnis ersetzt.
Dies bedeutet, daß nach der Zurücknahme eines Zuges diese Meta-Befehle nicht mehr verfügbar sind, sondern lediglich die dadurch berechneten Zahlenwerte. Andererseit bedeutet dies aber auch, daß der Spieler einen aus Meta-Befehlen berechneten Zug manuell nachoptimieren kann - und dies wird in einigen Fällen erforderlich sein, da bei der Verwendung von Meta-Befehlen bei mehr als einer Währung fast immer kleine Restbeträge übrigbleiben werden, bei denen sich das Programm nicht für eine Anlagewährung entscheiden will.

Einfache Befehle

Dynamische Befehle

Da jeder dieser dynamischen Befehle dazu dient, das gesamte verfügbare Geld des Spielers anzulegen, ist nur maximal eine Sorte dieser Befehle pro Zug erlaubt.

Technologie

Das vorliegende Programm besteht fast ausschließlich aus einer großen Anzahl einfacher JavaScript-Funktionen.
Der größte Teil des HTML-Codes wird von diesen Funktionen dynamisch erzeugt, so daß sich das Programm flexibel den vorherigen Eingaben des Anwenders anpassen kann.

Alle Aktionsknöpfe bewirken am Ende das Abspeichern der gesamten Daten in ein Cookie der Browser-Konfiguration. (Falls der Anwender in seiner Browser-Konfiguration die Ausgabe einer Bestätigung beim Abspeichern eines Cookies eingestellt hat, dann wird der Wert dieses Cookies vor dem Abspeichern in einer Dialogbox angezeigt.)
Aus den so abgespeichterten Daten erzeugt das Programm die der Situation angemessenen Ausgaben.