Diese Datei dokumentiert das Programm Usw (United-Spieler-Werte).
Programm-Version: 1.13 [22 Oct 1998]
Handbuch-Version: 1.3, 19. Oktober 1998
Usw darf frei benutzt, kopiert und weitergegeben werden, wenn damit keine kommerziellen Zwecke verbunden sind.
Ich stelle Usw zur Verfügung, gebe aber keinerlei Garantie. Ich gebe keine Garantie darauf, daß das Programm Usw in irgendeiner Version fehlerfrei arbeitet. Ich kann auch nicht garantieren, daß diese Anleitung das Programm Usw korrekt beschreibt. Ich übernehme keinerlei Haftung oder Verantwortung für Folgen aus der Benutzung dieses Programms.
Ich danke Michael Schröpl und Martin Ahlemeyer für ihre Artikel über die Runden-WP Theorie im United-Forum. Diese Artikel bilden die Grundlage für dieses Programm.
Dieses Programm soll Managern und Spielleitern des Postspiels United helfen, den Handelswert von Spielern zu berechnen. United wurde von Alan Parr erfunden und ich gehe davon aus, daß die Benutzer dieses Programms mit United vertraut sind. Das Programm berechnet den Nichtliga-Wert (NL-Wert), den Geschätzten Handelswert (GH-Wert) und den Reihenverstärkungs-Wert (RV-Wert) von United-Spielern.
Der Nichtliga-Wert ist Bestandteil der United-Regel. Der Geschätzte Handelswert wird mit Hilfe einer Handelswert-Tabelle berechnet. Das pbm-Auswerteprogramm United/XY von Lukas Kautzsch und Michael Schröpl und das pbm-Hilfsprogramm TEAMCHEF von Pedl Rau berechnen Handelswerte von Spielern mit dieser Methode.
Im März 1989 schrieb Michael Schröpl einen Artikel im United-Forum über 'Die magische Liga-Wert-Konstante'. Dabei ging es darum, die Verstärkung einer Aufstellung durch einen zusätzlichen WP für einen bestimmten Zeitraum (eine Saison, eine Runde, ein Spiel) zu bewerten. Michaels These war gerade, daß der Wert einer solchen Verstärkung bezogen auf ein Zeitintervall konstant ist. Da Michael als Zeitraum eine Runde betrachtete, nannte er sein Berechnungsmodell Runden-WP-Theorie oder kurz RWP-Theorie.
Im darauffolgenden Heft verfeinerte Martin Ahlemeyer die RWP-Theorie. Er beschäftigte sich mit dem Wert von trainierbaren Spielern und Hintermannschafts-Spielern.
Der Reihenverstärkungs-Wert in Usw wird mit Hilfe der RWP-Theorie berechnet. Da es United-Ligasysteme gibt, in denen nicht konstant zwei Liga-Spiele pro Runde ausgetragen werden, rechnet Usw mit einem konstanten Verstärkungs-WP-Wert pro Spiel, SWP. Da der Bezugszeitraum (Saison, Runde, Spiel) eher zweitrangig ist, benutze ich den Begriff Reihenverstärkung statt Zeit-WP.
Bitte traut nicht blind den Ergebnissen des Programms! Es lohnt sich immer noch einmal nachzudenken, ob die ausgespukten Ergebnisse auch plausibel sind, und ob die Existenz des berechneten Spielers in einem realen Ligasystem sinnvoll ist.
Erstens kann die Änderung eines Parameters schon dramatische Auswirkungen auf das Gesamtergebnis haben, zweitens können in Usw inzwischen Spieler eingegeben werden, die aus dem Rahmen des Gewöhnlichen fallen.
Das Programmpaket kann in ein beliebiges Verzeichnis ausgepackt werden. Ich empfehle, usw.exe und usw_d.bat in ein Verzeichnis zu kopieren, das in der Umgebungsvariablen %PATH eingetragen ist. Dann kann Usw von jedem Platz aus im Dateisystem aufgerufen werden.
Ich benutze Usw auf einem PC mit i486, 16 MByte Hauptspeicher und dem Betriebssystem MS-DOS Version 5.0. Ich schätze, daß Usw mit einem 286 Prozessor, 640 kByte Hauptspeicher und MS-DOS 3.3 auch noch läuft. Der Vorgänger von Usw hieß UUH (United-Uttility: Handel) und lief auf ATARI/ST Rechnern.
Das Programmpaket Usw besteht unter anderem aus folgenden Dateien:
usw.exe ist ohne weitere Dateien lauffähig. Wenn Ihr Usw weitergebt, kopiert bitte trotzdem alle Dateien mit (insbesondere auch die Anleitung).
Wenn Usw gestartet wird, versucht das Programm zunächst die Befehlszeile zu interpretieren, mit der Usw aufgerufen wurde. Dabei wird ein - gefolgt von einem oder mehreren Buchstaben als Option interpretiert:
Option | Bedeutung |
---|---|
-V | gibt die Versionsnummer und Erstellungszeit des Programms aus. |
-z | beendet das Programm direkt nach der Interpretation der Befehlszeile. |
-d Datei | führt den Befehl 'durch Datei' aus. |
Dateinamen mit der Endung '.dat' werden als Handelswert-Tabelle eingelesen. Andere Dateinamen werden als Befehlsdatei eingelesen. Falls durch die Befehlszeile keine Handelswert-Tabelle eingelesen wurde, wird versucht, die Datei 'gehawert.dat' im aktuellen Verzeichnis zu lesen. Danach können einzelne Zeilen eingegeben werden, die vom Programm als Befehle interpretiert werden.
Der Aufbau ist identisch mit der gleichnamigen Datei, die in United/XY benutzt wird. Diese Datei enthält den Wert eines Spielers vor den Spielen in Runde 1 in Abhängigkeit von Alter und Stufe. Jede Zeile ist einer bestimmten Altersgruppe zugeordnet (siehe Tabelle). Jeder Spalte ist eine Stufe zugeordnet. Der ersten Spalte (von links) ist Stufe 0 zugeordnet, den nächsten Spalten sind entsprechend die nächsten Sufen zugeordnet.
Zeile | Spieleralter |
---|---|
1 | tT |
2 | nT |
3 | I |
4 | II |
5 | III |
6 | IV |
7 | V bis X |
In jeder Zeile müssen genau vierzehn positive ganze Zahlen, die durch mindestens ein Leerzeichen voneinander getrennt sind, stehen. Falls beim Lesen Probleme auftreten, wird die Ausführung des Programms abgebrochen.
Ich habe in letzter Zeit immer noch Parameter so geändert, daß alte Befehls-Dateien dann nicht mehr korrekt arbeiteten. Um sich die aktuellen Parameternamen mit ihren Default-Werten anzuschauen, ruft Usw ohne Argumente auf und gebt die Befehle '=' und '==' ein. Usw ist durchaus auch als Plattform für Experimente gedacht. Deshalb gibt es vielfältige Möglichkeiten, den RV-Wert durch Parameter zu beeinflussen. Für konkrete Berechnungen haben sich einfachere Parameter durchgesetzt: WP-Wert konstant, jede Saison die gleiche Stärke-Tabelle etc.
Bei der Berechnung der Spielerwerte benutzt Usw einige Parameter, die durch den Benutzer geändert werden können. Die Parameter lassen sich in verschiedene Typen einteilen, je nach dem welche Werte sie annehmen können:
Tabellen lassen sich noch einmal unterteilen in:
Ist ein Spieler mehrere Saisons aktiv, dann kann die Stärke des Spielers in jeder Saison mit einer anderen Stärke-Tabelle verglichen werden. Saison-Tabellen steuern, welche Stärke-Tabelle einer Saison als Referenz zugeordnet wird. Wer in jeder Saison die gleiche Stärke-Tabelle benutzen möchte, wird bei den Beispielen weiter unten fündig und kann sich die folgende Beschreibung erst mal ersparen.
Es gibt in Usw neun verschiedene Stärke-Tabellen. Sie sind von 1 bis 9 durchnummeriert. Der erste Teil, der Vorspann, einer Saison-Tabelle besteht aus drei Zahlen, die bestimmen, wie die Stärke-Tabellen einer Saison zugeordnet werden. Der zweite Teil einer Saison-Tabelle besteht aus einer bis acht Zahlen zwischen 1 und 9. Jede dieser Zahlen verweist damit auf eine Stärke-Tabelle.
Die erste Zahl im Vorspann gibt an, wieviele Stärke-Tabellen von dieser Saison-Tabelle benutzt werden. Ist die erste Zahl gleich n, dann besteht die ganze Saison-Tabelle aus 3 + n Werten.
Die zweite Zahl im Vorspann gibt an, welcher Eintrag im zweiten Teil in der ersten Saison der Spielerkarriere benutzt wird. Ist die zweite Zahl gleich i, dann wird in der ersten Saison die Stärke mit der Nummer benutzt, die an 3 + i-ter Stelle in der Saison-Tabelle, also an i-ter Stelle im zweiten Teil der Saison-Tabelle steht.
Wenn in einer Saison der letzte Eintrag der Saison-Tabelle, die Zahl, die ganz rechts steht, benutzt wurde, dann bestimmt die dritte Zahl im Vorspann, welcher Eintrag in der nächsten Saison benutzt wird. Wenn in einer Saison nicht der letzte Eintrag der Saison-Tabelle verwendet wurde, dann wird in der nächsten Saison der nächste Eintrag verwendet. Der nächste Eintrag ist die Zahl rechts neben der aktuell verwendeten.
Um den Vorspann einer Saison-Tabelle von den Verweisen auf die Stärke-Tabellen zu trennen, sind die ersten Zahlen nicht nur durch Leerzeichen getrennt.
In jeder Saison wird Stärke [3] als Referenz-Tabelle verwendet.
In der ersten Saison wird Stärke [5] verwendet. Danach Stärke [6], [4], [5], [6], [4] und so weiter.
In der ersten Saison wird Stärke [3] verwendet, in jeder weiteren Saison Stärke [4].
Je nach Inhalt der Parameter sind bei der Eingabe nur Werte gültig, die in einem bestimmten Wertebereich liegen. Der Bereich [x, z] bedeutet dabei, daß der Wert y einer Eingabe größer gleich x und kleiner gleich z sein muß, damit die Eingabe gültig ist. Es gibt unter anderem folgende Bereiche:
Name | [x,z] | |
---|---|---|
Runde | 1 | 11 |
Würfel | 11 | 100 |
Stufe | 0 | 20 |
Prozent | 0 | 200 |
In der Form:
In-Abschnitt
festgelegt.Beispiel: Ist HIM-SWP := 10, T-Platz := (1) 1, 1: 1 und Stärke [1] := 0 0 ..., dann erzielt ein T X 7 pro Spiel 10 SWP.
In-Abschnitt
: [1, 3] = 1In-Abschnitt
legt fest, zu welchem Zeitpunkt in der Runde
Ab-Runde
der Spieler in den Vereinskader kommt.
Wert | Zeitpunkt | Aktionen in Ab-Runde |
---|---|---|
1 | vor dem Training | Spieler kann trainiert, eingesetzt und an die Nichtliga verkauft werden |
2 | nach dem Training und vor den Spielen | Spieler kann eingesetzt und an die Nichtliga verkauft werden |
3 | nach den Spielen | Spieler kann an die Nichtliga verkauft werden |
Name | Typ | Bereich | Default |
---|---|---|---|
A-Feld-Anteil | INT | Prozent | 20 |
A-Würfel | INT | Würfel | 15 |
Ab-Runde | INT | Runde | 1 |
Anzahl-Runden | INT | Runde | 11 |
Geduld | INT | Prozent | 100 |
GHW-extra | BOOLE | ja, nein | ja |
HIM-Halbe-SWP | REAL | [0, 100] | 8 |
Letzter-Handel | INT | Runde | 7 |
T-Würfel | INT | Würfel | 14 |
Name | Bereich | Default |
---|---|---|
Spiele | [0, 10] | 2 ... |
SWP-Wert | [0, 100] | 15 ... |
TWP-Wert | [0, 1000] | 330 ... |
Stärke [i] 1<=i<=9 | [0, 20] | |
Training [Alter] | [0, 1] | 1 ... |
Name | Default |
T-Platz | (1) 1, 1: 1 |
A-Platz | (1) 1, 1: 2 |
F-Platz | (1) 1, 1: 3 |
Die Befehlszeile kann leider nicht großartig bearbeitet werden. Mit Backspace kann das letzte Zeichen des Befehls gelöscht werden.
#
wird nicht als Befehl interpretiert,
sondern als Kommentar ignoriert. Dies funktioniert aber nur, wenn
'#' am Anfang
der Zeile steht.a
aus
[datei]d
durch
[datei]ein
,
aus
). Wurde ein Dateiname angegeben, so wird die Ausgabe immer auf eine Datei
mit der Endung '.txt' umgelenkt. Am Ende der Datei wird zwar die
Eingabe, aber nicht die Ausgabe geschlossen. Dies kann durch den
Befehl aus
getan werden oder geschieht automatisch, wenn das Programm beendet wird.ec
echo
[text]ei
ein
[datei]en
ende
g
ghw
[datei]h
, ?
hilfe
k
kauf
[zahl]Eine Differenz von 30% entspricht der Transferlisten-Grenze von 130 in Aufstieg.
Beispiel: Für einen M I 10 sind folgende Werte berechnet worden:
Kauf 2500 ergibt:
m
memory
,memory =
[-NGR
],memory
('
|+
|-
)
[geld]=
[-NGR
]-N
-G
-R
'
[geld]+
[geld]-
[geld]se
, =
setze
,setze =
,setze
parameter [wert...]Mit '= Runden-Tabelle [i]', wobei
Runden-Tabelle ein Parameter des Typs Rundentabelle (Spiele, SWP-Wert,
TWP-Wert) ist und i eine ganze Zahl zwischen 1 und
Anzahl-Runden
, können neue Werte ab Position
i in Runden-Tabelle geändert werden. Mit '=
Stärke [x, y]', wobei für x und y
ganze Zahlen eingegeben werden, können neue Werte ab Position
y in Stärke-Tabelle x eingegeben werden.
Ebenso können mit '=Training [A,
y]' neue Werte ab Position y in eine
Trainings-Tabelle eingegeben werden, wenn A ein Alter (tT,
nT, ...) ist.
=
sp
, :
Spieler
reihen alter
stufe [sondereigenschaften]Mit spieler
werden die Daten des aktuellen
Spielers neu gesetzt. Das Format ist weitgehend dem der
Aufstieg-Regeln (Kapitel 3) angepaßt. Falls das Format verletzt wird,
ist das Verhalten des Programms undefiniert. Das heißt nicht, daß Usw
abstürzen wird oder einen Fehler melden, sondern das Usw die
Spielerdaten irgendwie ändert.
Reihen: T, A, V, M, S. Bei Mehrfachqualifikationen in dieser Reihenfolge. Ein Torwart kann keine andere Reihenqualifikation haben.
Alter: tT, nt, I, II, III, IV, V, VI, VII, VIII, IX, X. Groß/Kleinschreibung ist nicht relevant.
Stufe: ganze Zahl zwischen 0 und 20.
Sondereigenschaften
Trainingsaufwand: [ gebrochene Zahl ]. Die kleinste Einheit, die Usw versteht sind halbe WP.
Trainingsgrenze: > Stufe.
Einsätze: Zahl * Reihe.
Sperren: ( Zahl ).
Disziplinarpunkte: Zahl 'DP'.
Vor und zwischen Sondereigenschaften kann ein Komma stehen.
v
version
Usw
-Version aus.w
wert
[-NGRhkrs
]
[training-bis [verkauft-bis]]-N
-G
-R
-h
-k
-r
-s
Ich definiere als Grundzuwachs die Grundwertdifferenz zwischen einem Spieler mit Alter V und Stufe 13 und einem Spieler mit Alter V und Stufe 12. Der Grundwert eines Spielers mit einer Stufe n > 13 ist gleich dem Grundwert eines Spielers gleichen Alters mit Stufe 13 plus (n - 13) mal Grundzuwachs.
Zum Rechnen führe ich einige Variablen ein. Sei:
Die Wahrscheinlichkeit, dass ein Torwart der Stärke t einen Torschuss durchläßt, ist (w - t)/w. Wenn (w - r)/(w - t) = 2, dann vereitelt der Torwart im Schnitt doppelt so viele Torschüsse wie die Referenz. Bei gleichem Ausputzer in der Hintermannschaft ist der HIM mit dem Torwart der Stärke a halb so groß wie der HIM mit dem Referenz-Torwart der Stärke r.
Falls t < w und r < w, dann gilt swp := Maximum (0, HIM-Halbe-SWP * log ((w - r)/(w - t)) / log (2)).
Die swp einer Runde werden addiert und am Ende der Runde auf eine ganze Zahl gerundet.
Zum Rechnen führe ich einige Variablen ein. Sei:
Die Wahrscheinlichkeit, dass ein Ausputzer der Stärke a eine Torchance zum Torschuss durchläßt, ist (w - a)/w. Wenn (w - r)/(w - a) = 2, dann vereitelt der Ausputzer im Schnitt doppelt so viele Torchancen wie die Referenz. Bei gleichem Torwart in der Hintermannschaft ist der HIM von Ausputzer a halb so groß wie der HIM von Referenz r.
Ein Ausputzer der Stärke a verhindert Maximum (0, a - r) Torchancen des gegnerischen Sturms gegenüber dem Referenz-Ausputzer der Stärke r. Da diese Reihenverstärkung im Gegensatz zu zusätzlichen WP in der Reihe V keine Torchancen erzeugt, wird die Verstärkung mit A-Feld-Anteil multipliziert.
Falls a < w und r < w, gilt swp := Maximum (0, HIM-Halbe-SWP * log ((w - r)/(w - a)) / log (2)) + Maximum (0, A-Feld-Anteil * (a - w) / 100). Die swp einer Runde werden addiert und am Ende der Runde auf eine ganze Zahl gerundet.
Beispiel: Die SWP für einen A X 10 sollen berechnet werden.Usw
-Parameter sind folgendermaßen gesetzt:A-Feld-Anteil 20 A-Platz (1) 1, 1: 1 Stärke [1] 5 5 5 ... A-Würfel 15 Ab-Runde 1 Anzahl-Runden 11 HIM-Halbe-SWP 9 Spiele 1 2 3 ...