EVO/XY

Version 1.14 (1999-07-15)

Benutzerhandbuch

Michael Schröpl
Varusstraße 5
65187 Wiesbaden
E-Mail-Adressemichael.schroepl@gmx.de
http://www.schroepl.net/

 

  1. Verwaltungskram
  2. Historisches
  3. Anwendungen: Turnier-Fußball, Pokal-Amateure, Einsteiger
  4. Die Züge-Datei
  5. Prüfung der Aufstellungen
  1. Auswürfeln der Tore
  2. Zwischenausgabe der Ergebnisse auf dem Bildschirm
  3. Format der Ausgabe
  4. Schnittstellen zu anderen Programmen
  5. Ausblick

1. Verwaltungskram

EVO wurde ursprünglich für den persönlichen Gebrauch des Autors geschrieben. Inzwischen hat sich jedoch herausgestellt, daß andere Spielleiter das Programm ebenfalls verwenden wollen. An mir soll's nicht liegen!

EVO ist Freeware. Jeder kann es frei und kostenlos kopieren und weitergeben. Je mehr, desto besser! Die jeweils aktuellste Version dieses Programms wird auf meiner Homepage zum Download bereitgestellt.

Allfällige Garantien werden nicht gegeben. Ich bin für nix verantwortlich! Ich verwende das Programm allerdings selbst für meine Auswertungen (für die seit Jahren laufenden Partien ZUFALL und AUFSTIEG im Amtsblatt), werde also bestimmt etwas gegen unerwünschte Effekte unternehmen.
Ich werde EVO bei Bedarf selbst weiterentwickeln und stehe in Notfällen auch für Support zur Verfügung (bevorzugt via E-Mail-AdresseE-Mail). Werden mir sinnvolle Programmerweiterungen vorgeschlagen, dann dürften sich diese eines Tages in neuen Versionen niederschlagen.

Portierungen auf andere Rechnersysteme wären mir durchaus recht - dafür (und nur dafür!) würde ich auch den Quelltext des Programms zur Verfügung stellen. EVO ist in Turbo-Pascal geschrieben, wobei systemspezifische Funktionen spärlich verwendet und in eigene, 'systemnahe' Module ausgelagert wurden. Derzeit wird die Version 6.0 von Turbo-Pascal zur Übersetzung verwendet.
Der Quelltext sollte auch heute noch mit dem Maxon-Pascal-Compiler für Atari ST übersetzbar sein - ich habe allerdings heute keinen solchen Rechner mehr zur Verfügung.

2. Historisches

Ursprünglich war es das Ziel des Autors, ein Programm zu schreiben, das mehrere Aufstellungen für Turnited-Teams gegeneinander spielen lassen sollte.

Durch entsprechend nachzurüstende (aber bis heute nie geschriebene) Routinen sollte dann ein Evolutionsverfahren realisiert werden, das die jeweils schwächsten Aufstellungen ausmustern, neue Aufstellungen zufällig ermitteln und die robustesten Aufstellungen überleben lassen sollte. Von diesem Vorhaben (das andere Programmierer, z. B. Martin Ahlemeyer, später tatsächlich realisiert haben) ist heute nur noch der Name des Programms übriggeblieben.

3. Anwendungen: Turnier-Fußball, Pokal-Amateure, Einsteiger

Als das Programm funktionsfähig war, entstand schon bald der Gedanke, das neue Verfahren, die 'Stärke' einer Aufstellung gegenüber anderen Aufstellungen zu testen, zur Grundlage eines neuen Spiels zu machen, das (in Anlehnung an Turnited, aber doch als Abgrenzung von diesem) den Namen Turnier-Fußball erhielt.

Die Stärke und gleichzeitig Schwäche von Turnited ist das erhebliche Zufallselement. Wenn man in der ersten Runde in eine Gruppe gelost wird, in der man auch nur eine einzige wirklich unpassende Aufstellung erwischt, dann ist man ausgeschieden, bevor die Spiele, in denen man gut aussehen würde, überhaupt kommen.
Turnier-Fußball möchte als Sieger eines Turniers denjenigen Verein ermitteln, der die (gemessen an allen Konkurrenten) beste Aufstellung für dieses Turnier abgegeben hat.
Das Verfahren in Turnited, erfolgreiche Vereine mit mehr WP in späteren Turnieren zu belohnen, ist dort zwar der eigentliche Anreiz für viele Teilnehmer, aber aufgrund des starken Zufallseinflusses doch etwas fragwürdig; Turnier-Fußball bietet allen Teilnehmern gleiche Voraussetzungen.

Zudem erleichtert dies den gleitenden, jederzeit möglichen Ein- und Ausstieg von Spielern:

Diese Art von Robustheit macht Turnier-Fußball zu einem idealen Spiel für Neulinge, die in die pbm-Szene gerade erst 'hineingerochen' und keine Lust auf lange Wartelisten haben.

Eine weitere Anwendung des Programms liegt im Bereich United vor. Um für einen Pokalwettbewerb eine Zweierpotenz an Teilnehmern zu erhalten, wird das Teilnehmerfeld üblicherweise mit Amateurvereinen aufgefüllt. Ein Qualifikationsturnier nach Turnierfußball-Regeln bietet sich als Möglichkeit an, die Manager zu bestimmen, die diese Pokalamateure betreuen dürfen.

Auch beim Einstieg in eine United-Partie gibt es unterschiedliche Verfahren: Einige Spielleiter vergeben neue Teams an die ersten Plätze der Warteliste, andere veranstalten auch hierfür ein Qualifikationsturnier zwischen den neu aufgebauten (und ggf. vorgealterten) Teams.

Aus den beiden letztgenannten Gründen wird das Programm EVO inzwischen auch gemeinsam mit UNITED/XY ausgeliefert.

4. Die Züge-Datei

Bei der Auswertung eines solchen Turniers sind vom Spielleiter relativ viele Einzeldaten anzugeben. Bei einer solchen Eingabe ist die Möglichkeit von Eingabefehlern letztlich nie auszuschließen.
Daher (aber auch weil der Autor zu faul war, ein aufwendiges, fehlertolerantes interaktives Eingabesystem zu implementieren) sind für dieses Programm die benötigten Daten nicht im Dialog einzugeben, sondern mit einem beliebigen ASCII-Editor in eine Textdatei zu schreiben.

Diese Datei muß den Namen <partie>.DAT haben. Der Namensteil <partie> ist vom Spielleiter nach dem Start des Programms einzugeben. (In diesem Namensteil darf kein Punkt enthalten sein - diese Art der Fehleingabe wird abgefangen.)

Diese Textdatei ist in zwei Bereiche unterteilt:

  1. Verwaltungsinformationen
    Die ersten 6 Zeilen der Datei bestehen jeweils aus einem Zahlenwert (der auch mit Leerzeichen beginnen darf und durch mindestens ein Leerzeichen abgeschlossen werden muß) und einem dahinter folgenden Text, der die Bedeutung des Zahlenwertes beschreibt. Der Erklärungstext wird vom Programm allerdings nicht gelesen und darf vom Spielleiter nach eigenem Gutdünken verändert werden.
    Diese Zeilen enthalten folgende Informationen: Die nächsten 2 Zeilen der Datei bestehen jeweils aus einem Schalterwert (J oder N) und einem dahinter folgenden Text, der die Bedeutung des Schalterwertes beschreibt. Auch hier wird der Erklärungstext vom Programm nicht gelesen und darf vom Spielleiter nach eigenem Gutdünken verändert werden.
    Diese Zeilen enthalten folgende Informationen:
  2. Vereinsbeschreibungen
    Eine Beschreibung eines Vereins besteht immer aus zwei Zeilen.

Da das Programm ursprünglich nur für den Autor selbst vorgesehen war, ist die Fehlertoleranz bezüglich der Struktur dieser Datei etwas zu kurz gekommen. Das Programm erwartet unbedingt die hier beschriebene Anordnung der Informationen; Abweichungen führen in der Regel zu einem Programmabsturz. Der Anwender sollte also mit seinem Editor einigermaßen umgehen können.
Da die Züge-Datei vom Programm jedoch immer nur gelesen, niemals aber verändert wird, ist eine Zerstörung von mühsam eingetippten Daten durch das Programm ausgeschlossen - der Benutzer kann einfach den Fehler in der Eingabedatei korrigieren und die Auswertung wiederholen, d. h. das Programm erneut starten.

Von den Konfigurationsdaten ist die Angabe der Anzahl der teilnehmenden Vereine die kritischste. Stimmt diese Zahl nicht mit der Anzahl der nicht als inaktiv gekennzeichneten Vereine überein, dann können folgende Situationen auftreten:

Für eine spätere Programmversion ist geplant, die Angabe der teilnehmenden Vereine ersatzlos zu streichen und die Datei bis Dateiende zu lesen. (Dann kann man allerdings andere Dinge verkehrt machen ... und bisher scheinen die Anwender mit diesem kryptischen Programm auch so irgendwie zurecht zu kommen ...)

Derzeit sind maximal 200 Teilnehmer an einem Turnier zulässig (Einschränkung des Turbo-Pascal-Compilers unter DOS: 64 kByte pro Struktur).

5. Prüfung der Aufstellungen

Nachdem alle Aufstellungen erfolgreich eingelesen wurden, nimmt das Programm mehrere Prüfungen vor.
Wenn ein Verein

dann wird eine entsprechende Meldung ausgegeben.

Will der Spielleiter diese Fehler korrigieren, dann kann er das laufende Programm jederzeit problemlos abbrechen; falls seine Regeln solche Aufstellungen erlauben, kann er die Auswertung einfach fortsetzen.

Es wurde einem solchen Fall ausdrücklich darauf verzichtet, automatische Korrekturen durch das Programm vorzunehmen:

Der Programmautor selbst kennzeichnet dabei in seinen eigenen Auswertungen den Namen des Vereins mit '(*)', um

Der Autor will dem Spielleiter kein Regelsystem verbindlich aufdrücken. In anderen Partien könnte z.B. eine 4:1-Regel oder eine (z. B. im ehemaligen United-Europapokal praktizierte) erweiterte 3:1-Regel gelten; es könnte die (ebenfalls aus dem Europacup bekannte) "extreme Maueraufstellung" erlaubt sein, bei der man die Verteidigung bis zu viermal so stark wie anderen Feldreihen aufbauen darf. Statt sämtliche dieser Möglichkeiten im Programm vorzusehen, war es einfacher, Aufstellungsfehler zwar zu melden, aber notfalls auch zu tolerieren. EVO kann solche Partien auswerten, sofern der Spielleiter weiß, wie er zu reagieren hat.

6. Auswürfeln der Tore

In jedem Spiel werden die Torchancen nach United-Regeln berechnet und ausgewertet.

Aufgrund der unterschiedlichen Behandlung der Hintermannschaft sind zwei Besonderheiten zu beachten:

7. Zwischenausgabe der Ergebnisse auf dem Bildschirm

Im Abstand von <n> Runden (wobei der Wert von <n> vom Spielleiter in der Züge-Datei angegeben werden kann) berechnet das Programm die aktuelle Tabelle aufgrund der bisherigen Ergebnisse und gibt die ersten 20 Plätze dieser Tabelle auf den Bildschirm aus. Zusätzlich wird auf dem Bildschirm jeweils die Nummer des zuletzt absolvierten Durchgangs ausgegeben.
Durch diesen Mechanismus kann der Spielleiter bei der Auswertung des Turniers "zusehen", d. h. die Veränderungen der Plazierungen während des Turniers beobachten.

Bei der Wahl von <n> ist zu berücksichtigen, daß die Berechnung der Tabelle ähnlich viel Zeit benötigen kann wie ein kompletter Durchgang. Bei sehr vielen Durchgängen sollte <n> also nicht zu klein gewählt werden, sonst wird die Auswertung gebremst - und außerdem könnte man dann die Ausgabe nicht lange genug betrachten.
Zudem ist zu berücksichtigen, daß die Dauer eines Durchgangs sowohl von der Anzahl der Torchancen, d. h. der WP der Vereine (etwa linear) als auch von der Anzahl der Vereine (quadratisch) und der Qualität der Hintermannschaft (gegen Spieler der Stufe 0 muß nicht gewürfelt werden - das spart viel Zeit) abhängt; ein Durchgang mit 20 Vereinen zu je 100 WP dauert also etwa achtmal so lang wie ein Durchgang mit 10 Vereinen zu je 50 WP! Auf einem schnellen Rechner (der Autor benutzt derzeit einen Pentium-200-PC) dauern 10000 Durchgänge bei ca. 20-30 Vereinen einige Minuten.

Die Beschränkung auf 300 WP in den Regeln von Turnier-Fußball ist auf die Laufzeiten auf früheren, langsameren Rechnern zurückzuführen; bei 1000 und mehr WP pro Verein würde sich am Charakter des Spieles nichts mehr ändern, aber ein Turnier wäre eventuell zeitlich nicht mehr auswertbar.

8. Format der Ausgabe

Nachdem das Turnier komplett ausgewertet wurde, wird vom Programm eine sortierte und druckfertige Tabelle aller Vereine (sortiert nach Punkten) in die Datei <partie>.AUS geschrieben.
Diese Tabelle ist 100 Zeichen breit; falls keine manuellen Änderungen (z. B. per Editor) vorgenommen werden, muß sie also mit einer kleinen Schrift ausgegeben werden (mehr als 12 Zeichen/Zoll).

Die Zeichenkette zur Beschreibung von Vereins- und ggf. Managername wird dabei in der Länge von 50 Zeichen formatiert ausgegeben. (Ist diese Zeichenkette länger, dann wird sie komplett ausgegeben; die Tabelle sieht dann etwas schief aus. Abschneiden wollte ich sie aber auch nicht.)

Dahinter folgen dann

Seit Version 1.12 werden in einer weiteren Ausgabedatei <partie>.TAB die logischen Spalten der Ergebnistabelle durch ein Tabulatorzeichen getrennt ausgegeben. Dieses Ergebnisformat eignet sich am besten dazu, es in eine Tabelle eines Textverarbeitungssystems (AmiPro, Word usw.) zu importieren.

Seit Version 1.13. wird in einer dritten Auswertungsdatei eine komplett formatierte Auswertung als HTML-Dokument ausgegeben. Diese Datei eignet sich durch ihr plattformunabhängiges Format zur Verschickung einer Auswertung in rechnerlesbarer Form, insbesondere auch für die Veröffentlichung der Ergebnisse im World Wide Web. (Die Benutzung des vorliegenden Programms zu diesem Zweck ist ausdrücklich erlaubt.)

9. Schnittstellen zu anderen Programmen

Das Auswerteprogramm TURNITED (von Peter Rau) hat eine Datenexportfunktion für das Datenformat der Version 1.09 von EVO integriert.
Es ist also möglich, mit Turnited-Daten parallel auch eine Turnier-Fußball-Auswertung zu machen. Auf den Spieltagen in Essen wird diese Funktion seit 1992 mit Erfolg verwendet.

Das Datenformat von EVO 1.14 ist zu demjenigen von V1.09 allerdings nicht mehr exakt kompatibel, weil zusätzliche Verwaltungsinformationen in der Züge-Datei hinzugekommen sind; eine manuelle Anpassung ist allerdings mit geringem Aufwand möglich.

10. Ausblick

Jegliche Rückmeldungen bezüglich dieses Programms sind dem Autor angenehm, Erfolgsmeldungen ebenso wie Hinweise auf mögliche Fehler (wie sollte man die sonst finden und beheben?) oder Erweiterungswünsche. (Die dürfen auch gerne diese Dokumentation betreffen!)

Die Fertigstellung neuer Versionen wird in der Compi-Corner des Interzines bekanntgegeben.