RANGLIST - Programmdokumentation

Änderungen

in Version 1.18, 1.17, 1.16, 1.15, 1.14, 1.13, 1.12, 1.11, 1.10, 1.09, 1.08, 1.07, 1.06, 1.05.

Version 1.18 (2002-12-31):

Umstellung der Programmdokumentation auf XHTML 1.1.

Codierung von Windows-Umlauten als HTML-Entities in der HTML-Ausgabedatei der Rangliste.

Überzähliges Leerzeichen am Anfang jedes Spielernamens aus der HTML-Tabelle entfernt.

Version 1.17 (2002-05-06):

Codierung von DOS-Umlauten als HTML-Entities in der HTML-Ausgabedatei der Rangliste.

Version 1.16 (2000-08-05):

Das Programm wurde mit einem gepatchten Borland-PASCAL-Compiler neu übersetzt und ist nun auch auf schnellen PCs (deutlich mehr als Pentium 200) lauffähig.

Version 1.15 (1998-07-26):

Die Ranglistentabelle wird nun zusätzlich auch in HTML in eine Datei namens <basisname>.HTM ausgegeben.

Die Programmdokumentation wurde von ASCII nach HTML umgestellt.

Version 1.14 (1994-08-07):

Aufgrund gesteigerter Anforderungen (Hans-Peter Siegel will 1000 Partien Ashes of Empire mit 3500 Spielern verwalten) wurde die interne Speicherstruktur völlig umgeworfen, um der 64-k-Grenze von Turbo-PASCAL-Datenstrukturen zu entkommen.
Bisher war das Programm auf Lesbarkeit optimiert gewesen - aber ein array [1..1000] of spieler_record, wobei im Spieler auch noch sein Name als string [256] steht, das geht unter DOS mit seinen 64-k-Segmenten einfach nicht.

Statt dessen werden alle Datenstrukturen, die eine nennenswerte bzw. variable Größe aufweisen, nun dynamisch angelegt; alle Spielernamen werden in einem Buchstaben-Kasten gespeichert, in dem nur noch die Nettolänge aller Namen benötigt wird. (Für die Spielernamen dynamisch Strings zuzuweisen verschwendet bei einer mittleren Namenslänge von 25 Zeichen etwa 90% Speicherplatz - da habe ich lieber eine Beschränkung der Summe aller Namens-Zeichen in Kauf genommen. Hier kann der Anwender ggf. durch Abkürzungen selbst noch Platz sparen, falls es wirklich nicht reichen würde.)

Die neuen Obergrenzen, die das Programm nun aushalten dürfte, sind nicht leicht zu beschreiben, da der nun Speicherbedarf auch von den konkreten Daten abhängt.
Eingestellt sind folgende Grenzen:

Es ist aber zu befürchten, daß unter DOS (640-k-Grenze!) diese Werte nicht erreicht werden können. Das Programm wurde unter DOS mit einem Heap-Limit von 500 kB übersetzt, dürfte also den üblichen konventionellen Speicher weitgehend benutzen wollen.

Getestet wurde das Programm mit der zu diesem Zeitpunkt aktuellen Ashes of Empire-Rangliste (8 Teilnehmer pro Partie, 252 Partien, ca. 850 Spieler). Damit wird das Programm inzwischen fertig.

Version 1.13 (1993-04-17):

Das Programm wurde mit der neuen Version 1.6 von Maxon-PASCAL neu übersetzt.

Version 1.12 (1993-03-10):

Bei einer Portierung nach Turbo-Pascal 6.0 wurde eine zusätzliche unit mit Bildschirmsteuerfunktionen hinzugefügt.

Version 1.11 (1993-01-10):

Beim Einlesen der Daten wird nun zusätzlich die Nummer des aktuell bearbeiteten Spielers auf dem Bildschirm angezeigt.
Dadurch soll die Suche nach einem Fehler in der Eingabedatei unterstützt werden, wenn das Programm aufgrund einer fehlerhaft aufgebauten Eingabedatei abgestürzt ist.

Version 1.10 (1992-11-06):

Der Quelltext wurde versuchsweise mit dem Compiler Pure-PASCAL übersetzt.
Dabei wurde eine kleinere Ungenauigkeit beim Einlesen der Daten gefunden und behoben. Das vom Pure-Compiler erzeugte Programm ist allerdings nicht lauffähig.

Die Dialogschnittstelle zum Benutzer wurde komplett überarbeitet. Die Zwischenausgaben auf den Bildschirm sind nun verständlicher und haben keinen variablen Umfang mehr.

Version 1.09 (1992-08-13):

Die Grenze der verwaltbaren Spieler wurde auch in der Atari-Version auf 750 reduziert.

Die Dokumentation ist nun für beide Varianten des Programms einheitlich.

Version 1.08 (1992-06-06):

bug fix: Bei der Initialisierung der Spielerdaten wurde eine Hilfsvariable bisher nicht ordnungsgemäß gelöscht.
Für die Atari-Version war das egal, weil dort der Compiler automatisch alle Variablen zu löschen scheint; bei der PC-Version gab es dadurch aber Programmabstürze.
Für die ab jetzt angebotene PC-Version schlägt leider die 64-k-Grenze gnadenlos zu. Dadurch werden nur noch 750 Spieler erfaßt werden können.

Diese Version wurde im Juli 1992 von Lukas Kautzsch auf PC portiert; ab jetzt liegt ein gemeinsamer Quelltext für beide Systeme vor.

Version 1.07 (1992-05-09):

Bisher wurde das allgemeine Partieniveau, an dem alle Teilnehmer gleichermaßen beteiligt sind, als Gewichtungsfaktor für die Erträge der Teilnehmer herangezogen.
Damit konnte ein guter Spieler allein durch seine Teilnahme seinen eigenen Faktor nach oben ziehen. Das kann ja nun nicht Sinn der Sache sein.

Nun wird für jeden Spieler ein subjektives Partieniveau aus den Stärkewerten seiner Konkurrenten in der aktuellen Partie berechnet und für den Ertrag dieses Spielers aus dieser Partie herangezogen. Dasselbe Ergebnis ist nun also für Spieler unterschiedlicher Spielstärke unterschiedlich viel wert!
Die subjektiven Partie-Niveaus werden auch in der Ausgabedatei der Partien angezeigt.

Die Änderung bedeutet leider, daß das Programm nun für reine Zweipersonenspiele weitgehend unbrauchbar geworden ist - bei denen terminiert die Iteration nicht mehr.

Version 1.06 (1992-05-08):

Die Berechnung des nun linearen Gewichtungsfaktors wurde von einer Tabelle auf einen Funktionsaufruf umgestellt.

Die zulässige Länge des Partienamens wurde von 20 auf 80 Zeichen erhöht.

Version 1.05 (1992-03-08):

Verwaltet werden können nun

(Die Zahlen können bei Bedarf noch heraufgesetzt werden; eine Grenze bildet nur noch der Hauptspeicher des Rechners.)

Das ursprüngliche Pascalsche Dreieck wurde durch eine linear ansteigende bzw. wieder abfallende Gewichts-Folge "1-2-3- ... -3-2-1" ersetzt. Die ursprünglichen Werte tendierten dazu, bei großen Teilnehmerzahlen inflationär zu werden, so daß

Inzwischen werden ausschließlich hochgenaue Gleitpunktzahlen für die Berechnungen verwendet, was das Programm zwar nicht schneller, aber auch nicht merklich langsamer macht.

Gegenüber dem Artikel wurde natürlich - siehe Diskussion im Interzine - längst (etwa in V1.02) der "politische Faktor", sprich die Multiplikation mit der Leistungszahl aus der Anzahl der absolvierten Partien, aus der Berechnung der Partie-Niveaus und damit aus der eigentlichen Iteration entfernt. (Zuvor waren Partien mit Selten-Spielern automatisch nichts wert und sogar schädlich für die eigene Ranglistenposition.)