Pauspapier
Pauspapier ist ein von ultimate geschriebener Kartengenerator. Seit dem <tbd> ist er in Karopapier eingebunden.
Der Generator ist kein "normaler" Generator in dem Sinne, dass er eine Strecke "aus dem Nichts" erzeugt. Stattdessen erzeugt er Karten durch "durchpausen" des Zugverlaufs eines Spielers in einem Spiel.
Inhaltsverzeichnis
Streckenverlauf
Pauspapier arbeitet nach dem gleichen Prinzip wie ZickZack. Dabei wird lediglich der Schritt 2 des Algorithmus abgewandelt und statt zufälliger Abschnitte werden die die Vektoren des gewünschten Spielers aus einem Rennen aus der Karo-Datenbank geladen und als Abschnitte verwendet. Die zufällige Variiation der Streckenbreite, sowie alle weiteren Schritte (Checkpoints und Hindernisse hinzufügen, etc.) bleiben unverändert.
Parameter
Pauspapier verfügt über mehr oder weniger die gleichen Parameter wie ZickZack - aufgrund der abgewandelten Funktionsweise kommen jedoch ein paar dazu und andere fallen dafür weg...
- Spiel> - ID des Spiels aus dem die Vektoren geladen werden sollen
- Spieler< - Name oder ID des Spielers von dem die Vektoren geladen werden sollen
Streckenlänge- die Länge ergibt sich aus den Vektoren des Spielers- Streckenbreite - die minimale und maximale Breite der Strecke (die Strecke wird dabei Mittig um einen Vektor aufgespannt und ist also nach rechts und links je Breite/2 breit)
Zickigkeit (Stärke der Kurven)- der Verlauf ergibt sich aus den Vektoren des SpielersZackigkeit (Länge der Geraden)- der Verlauf ergibt sich aus den Vektoren des Spielers- Checkpoints - die Anzahl der Checkpoints (mindestens jedoch immer 4, wegen des ULTI-Logos - wenn du keine willst, dann deaktiviere sie einfach in den Spiel-Einstellungen). Die CPs werden dabei immer gleichmäßig auf die Gesamtlänge der Strecke (in Karos, nicht in Abschnitten) und aufsteigend ihrer Nummerierung von 1 bis zur eingestellten Anzahl verteilt.
- Hindernisse - die Anzahl der Hindernisse. Die Hindernisse werden dabei immer gleichmäßig auf die Gesamtlänge der Strecke (in Karos, nicht in Abschnitten) verteilt. Bei starken Ecken, werden unter Umständen Hindernisse weggelassen um die Wahrscheinlichkeit zu verringern, dass die Strecke unpassierbar wird. Achtung: bei zu vielen Hindernissen kann die Strecke trotzdem noch unbefahrbar werden.
Überschneidungen- Überschneidungen können sich natürlich aus den Vektoren des Spielers ergebenStartrichtung- die Startrichtung wird anhand des ersten Vektors ermitteltMaximale Größe- die Größe ergibt sich aus den Vektoren des Spielers- Crashs ignorieren?< - normalerweise ignoriert Pauspapier Crashvektoren (da diese bei großem ZZZ sonst quer über die Karte neue Verbindungen schaffen können). Mit dieser Einstellungen kann man die Crashvektoren aber einschließen
- Zugbereich einschränken - normalerweise paust Pauspapier den gesamten Verlauf eines Spielers ab. Mit diesen zwei Parametern kann man einschränken welche Vektoren verwendet werden sollen (von, bis). Dabei zählen positive Zahlen vom Anfang, negative vom Ende, z. B. von=10, bis=-5 bedeutet, dass die ersten 10 und die letzten 5 Züge ignoriert werden. Hinweis: aus Performance-Gründen ist bei 10000 Zügen (also ausgewählter Bereich von, bis) erstmal Schluss
Trivia
- im PHP Code sind ZickZack und Pauspapier beide von einer gemeinsamen Klasse AbstractPointPathGenerator abgeleitet. Ebenso sind die Settings von PointPathGeneratorSettings abgeleitet.
Beispielkarten
Vektorverlauf (Input) | Generierte Karte (Output) | Generierte Karte (Output) - Variante |
---|---|---|
Zugbereich: von=96 |
Zugbereich NICHT eingeschränkt | |
Zugbereich: bis=716 |
- | |
Crashes ignoriert |
Crashes NICHT ignoriert |