Autor Thema: Das grosse Steppenturnier - Wie erschlägt SL ein Organisationsmonster?  (Gelesen 1027 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline torben

  • Experienced
  • ***
  • Beiträge: 332
  • Username: torben
Isengart-Gruppe, raus hier!  :D

Liebe Tanelornis und Organisationstalente

Meine Gruppe (die Isengart-Gruppe, siehe in den Sessionberichten) befindet sich auf dem Weg an das "Steppenturnier". Dieses zu organisieren und durchzuführen bereitet mir gewisse Probleme, weshalb ich auf Eure guten Ideen hoffe. Der ganze Hintergrund des Turniers ist klar, für mich geht es hier um die "rechnerische Umsetzung" des Ganzen, denn mein "Ideal" wäre es, das Ganze quasi als Simulation durchrechnen zu lassen, mit der Möglichkeit, manuelle Abänderungen bei den Wettkampfpaarungen vornehmen zu können und gewisse Wettkampfergebnisse manuell festlegen zu können.
Hier mal die Eckpunkte des Turniers:

  • 22 Reiche mit je maximal 15 Wettkämpfern (manche Mannschaften haben weniger Wettkämpfer)
  • Rund 20 Disziplinen (Wettreiten, Bogenschiessen, Nahkampfduell, Seilziehen, Wettsingen, ...), in denen die Wettkämpfer einzeln oder als Mannschaft gegeneinander antreten
  • Automatische Generierung der Wettkampfpaarungen (am besten mit der Möglichkeit, einige Paarungen manuell festzulegen)
  • Automatische Ermittlung der reinen NSC-Wettkampfausgänge nach Zufall mit der Möglichkeit, eine Gewinnchance anzuwenden (z.B. Wettkämpfer 1 gewinnt zu 70% gegen Wettkämpfer 2) und Möglichkeit zur manuellen Festlegung einiger Wettkampfausgänge (die Wettkämpfe der SC werden ausgespielt)
  • Die Disziplinen finden als Single-Elimination statt mit so vielen Runden, bis der Gewinner feststeht. Am ehsten jeweils 128 Teilnehmer pro Disziplin, wenn es jeweils 1:1 ist
  • Punktevergabe für jeden Gewinner einer Disziplin

Leider kann ich nicht programmieren. Ich habe schon mit Excel rumprobiert und mit Chatgpt auch schon eine AI auf das Problem angesetzt, die einige Vorschläge gemacht hat, wie man der Sache in Python Herr werden könnte, allerdings habe ich dazu wie gesagt nicht den Background, um das selber umsetzen zu können (und das ganze Programm wollte die AI dann doch nicht schreiben).
Ich habe im Netz PDFs mit Wettkampfpaarungen für 128 Teilnehmer einer Single-Elimination gefunden, aber da kommt dann schon das Problem, dass man die Paarungen händisch erstellen und eintragen muss und dasselbe gilt natürlich auch für die Resultate, wobei diese für die reinen NSC-Paarungen auch nicht automatisch ermittelt werden.

Eine Möglichkeit wäre natürlich zu sagen: Für die SCs spielen wir alle Eliminationsrunden und erst im 8tel-Finale lege ich fest, wer von den Gegnern noch dabei ist. Das würde das Ganze sehr vereinfachen, aber eigentlich fände ich es cool, es nicht so sehr vom SL abhängig zu machen, sondern eben mehr als Simulation "entstehen" zu lassen.

Hat jemand von Euch da Ideen oder schon Erfahrungen dazu gemacht oder ein Programm, mit dem man sowas simulieren könnte?

Liebe Grüsse
torben[/list]

Offline Weltengeist

  • spielt, um zu vergessen
  • Mythos
  • ********
  • Kaufabenteueranpasser
  • Beiträge: 11.006
  • Geschlecht: Männlich
  • Username: Weltengeist
Erfahrung nicht, aber als jemand, der programmieren kann, habe ich den Eindruck, dass du noch gar nicht so genau weißt, was du willst. Konkret: Was wäre denn das Input für dein Programm? Willst du ernsthaft eine Liste mit hunderten Wettkämpfern, zugehörigen Disziplinen, Namen, Kompetenzen und SC-Flag erstellen? Und wie wäre der Ablauf? Willst du das Programm echt für ca. 20 Wettkämpfe und für 5-7 Runden je Wettkampf einmal am Spieltisch laufen lassen und jedesmal stoppen und auf Input warten, wenn ein SC beteiligt ist? Ich habe den Eindruck, der Mehrwert eines Programmes im Vergleich zum Aufwand ist hier relativ überschaubar. Wahrscheinlich nervt das am Spieltisch sogar, wenn du nicht noch andere Dinge mit den Ergebnissen machst (die Spieler wetten lassen beispielsweise).

Ich selbst würde es - obwohl ich sowas programmieren könnte - vermutlich einfach als SpL entscheiden und mich auf die Kämpfe konzentrieren, in denen die Promis (SC oder wichtige NSC) vorkommen.
"Wenn ich in Unterleuten eins gelernt habe, dann dass jeder Mensch ein eigenes Universum bewohnt, in dem er von morgens bis abends recht hat." (Juli Zeh, Unterleuten)

Spielt derzeit: The Wild Beyond the Witchlight (Savage Worlds - Prismeer), Troubleshooter (Savage Worlds - Starfinder)
In Vorbereitung: -

Offline Dimmel

  • Adventurer
  • ****
  • Beiträge: 978
  • Geschlecht: Männlich
  • Username: Dimmel
Sind dir den die ganzen Ergebnisse der Kämpfe zwischen den NSCs den wirklich wichtig? Unterscheiden sich diese 128 Kämpfer pro Disziplin den Überhaupt?
Und wenn ihr das alles berechnen lasst, was macht ihr den den Spielabend lang?

Ich habe mal in DSA ein Tunier abgehalten, das ebenfalls verschiedene Disziplinen hatte. Ich habe das mehr narrativ und mit viel Player Empowerment gelöst (und den DSA-Reiterkampfregeln :) ), wir haben alles ausgewürfelt war also durchaus alles offen und nichts geskriptet. Falls dich das interessiert, kann ich gerne mehr schreiben, aber halt nur, wenn du auch an alternativen Herangehensweisen interessiert bist.

Offline Jiba

  • ערלעך מענטש
  • Mythos
  • ********
  • Bringing the J to RPG
  • Beiträge: 11.204
  • Geschlecht: Männlich
  • Username: Jiba
Klingt für mich wie eine Aufgabe für die ARStice League. Kann da nicht wer schnell was anhand von Zufallstabellen modellieren?

(Nein, wirklich, ich glaube 1-2 Zufallstabellen mit Ergebnissen sind genau der Middleground zwischen Aufwand und Einbindung von Werten und Würfeln).
Engel – ein neues Kapitel enthüllt sich.

“Es ist wichtig zu beachten, dass es viele verschiedene Arten von Rollenspielern gibt, die unterschiedliche Vorlieben und Perspektiven haben. Es ist wichtig, dass alle Spieler respektvoll miteinander umgehen und dass keine Gruppe von Spielern das Recht hat, andere auszuschließen oder ihnen vorzuschreiben, wie sie spielen sollen.“ – Hofrat Settembrini

Online klatschi

  • Famous Hero
  • ******
  • Eichhörnchen auf Crack
  • Beiträge: 2.469
  • Username: klatschi
Ich habe das schon in deinem Spielberichte-Thread gelesen und denke, dass es grundlegend mehrere Optionen gibt, wie man das machen könnte, so dass es nicht fad ist.

Die Frage meiner Vorredner ist natürlich schon wichtig: Willst du das Turnier modellieren oder grundlegend nur im Hintergrund abhalten und davon erzählen können? Beim grundlegend im Hintergrund abhalten würde ich auch - um Zeit zu sparen - einfach einen Würfel entscheiden lassen. Die Idee mit Zufallstabellen finde ich da auch ziemlich charmant.

Selbst wenn du es modellieren willst, würde ich es abstrahieren.
  • Hier würde ich ich einfach drei "Qualitätsstufen" bei den Wettkämpfern einführen: 1 = schlecht, 2 = gut, 3 = super. Eine QS gewinnt immer gegen die niedrigeren, gegen dieselbe wird es ein 50/50. Jede Nation hat 15 Wettkämpfer, auf die du 30 QS-Punkte verteilst, das sollte selbst mit Zufallsprinzip gut laufen.
  • Du könntest dabei auch die Festlegung deine Spieler übernehmen lassen; dadurch sind sie vielleicht auch nochmal mehr bei den anderen Nationen "invested" und freuen sich zu lesen und zu hören, wie welche Nation am Ende steht. Da kann man sich dann auch gleich nochmal über die Ardapedia über die anderen Nationen schlau machen - wo würden sie wohl bessere Teilnehmer haben? Wen werden sie senden? Im Notfall könnte man auch das "Finale" von jedem Teilturnier dann auswürfeln, wenn wirklich Interesse daran besteht?
  • Immer, wenn deine Spieler beteiligt sind, kann du dann reinzoomen und es auswürfeln, wobei du für die QS einfach gewisse Werte festlegst, beispielsweise: 1 = 50+2w6, 2 = 75+2w6, 3 = 100+2w6. Dadurch kannst du schnell bei einem Wettkampf die wichtigen Werte des jeweils zugeteilten Gegners generieren.

In Sachen Turniersoftware hätte ich dir nun gerne eine empfohlen, die ich aus dem Tabletop-Bereich kenne, aber die gibt es wohl nicht mehr, was sehr schade ist. Vielleicht kann dir das Programm helfen? https://challonge.com/de/tournament/bracket_generator
« Letzte Änderung: 21.02.2023 | 10:20 von klatschi »

Offline torben

  • Experienced
  • ***
  • Beiträge: 332
  • Username: torben
Danke schon mal für die Rückmeldungen.

Vielleicht zuerst noch was zum Hintergrund des Turniers: Der Veranstalter ist böse (tm) und hat bereits Einfluss über 6 Reiche. 5 Reiche stehen unter dem Einfluss einer anderen Macht und 7 Reiche sind noch "frei". Dem Veranstalter geht es beim Turnier darum, möglichst viele freie Reiche für seine Sache zu gewinnen und vielleicht sogar ein paar "gegnerische" Reiche abzuwerben. Die SCs sind wie auch 3 weitere Reiche neutral und für den Veranstalter eigentlich nicht von Bedeutung. Umgekehrt sieht das natürlich anders aus. Das Turnier ist also ein Anlass, um die Anführer der Reiche an einen Tisch und unter die eigene Knute zu bringen.

@Weltengeist:
Ja ich kann mir gut vorstellen, dass meine Eckpunkte noch nicht wirklich klar machen, was ich mir im Idealfall vorstelle. So war's auch, als ich das mit Chatgpt versucht habe, da musste ich auch immer wieder "nachbessern" mit den Anforderungen.

Ich habe schon mehrere Turniere mit verschiedensten Disziplinen durchgespielt, aber noch nie in solchen Dimensionen (so viele Teams und so viele Disziplinen). Und da habe ich mich gefragt, wie ich den Aufwand für das reine Turnier einigermassen überschaubar halten kann und es trotzdem nicht einfach "gescripted" ist.
Normalerweise bedeutet so ein Turnier für mich, dass ich
- Namen für die Wettkämpfer aufschreibe
- Allen Wettkämpfern Werte zuweise, die für die Disziplinen, die denen die antreten, relevant sind. Dabei ist wichtig, dass es wirkliche Spezialisten gibt, also super im Reiten aber eine Niete im Bogenschiessen usw.
- Mir überlegen, wie ich die Gewinner bei reinen NSC-Wettkampfpaarungen ermittle, ohne dass ich dort alles auswürfle
- Mir überlegen, wie ich den Eliminations-Baum aufbaue, damit die SCs möglichst weit kommen können und am Ende auf die "interessanten" Gegner stossen können, die selbst sehr gut in den jeweiligen Disziplinen sind

Wenn ich diese Punkte alle miteinander kombiniere, bedeutet das bei 22 Reichen mit je maximal 15 Wettkämpfern einen riesigen Aufwand. Dazu kommt, dass sich das Spiel eigentlich eher um das Turnier herum abspielt, also tagsüber wird gekämpft, abends wird im Festzelt Politik gemacht.

Bei den Turnieren geht es den Spielern durchaus darum, sich mit NSC messen zu können, also solche Wettkämpfe, an denen sie beteiligt sind, auszuspielen. Aber eben, in Runde 1 wären das 64 Paarungen, von denen nur die 6 mit SC-Beteiligung auszuspielen wären, usw. Im Spiel wäre es also die SC-Kämpfe durchzuspielen, Ergebnisse eintragen und - klick - das Programm errechnet, wer die anderen Gewinner der Runde sind, wobei es Kämpfer mit höheren Siegeschancen als ihre Gegner gibt, aber trotzdem der Zufall entscheidet, wer gewinnt.

Nun fände ich es irgendwo spannend, wenn nicht ich die Wettkampfpaarungen erstellen und die Gewinner auswürfeln müsste, sondern das automatisiert wäre, am besten noch mit der Möglichkeit, auch manuell eingreifen zu können. Auch die genauen Werte der NSC könnte man in einem gewissen Rahmen per Zufall genieren lassen (da ich ja zu Beginn noch nicht weiss, welcher NSC im Verlauf der Disziplin gegen welchen SC antreten wird).

Kurz und knapp: Ich hätte gerne das Gefühl, einige Dinge steuern zu können, aber gleichzeitig alles, was "unwichtig" ist, an eine Zufallsmaschine auslagern zu können, die im besten Fall auch noch schön Buch führt.

Mir macht z.B. nur schon die Erstellung der Eliminations-Bäume Mühe, da eigentlich die Stärksten gegen die Schwächsten starten sollten, damit sich die starken Kämpfer nicht schon am Anfang gegenseitig eliminieren. Wenn ich da einfach setzen könnte, dass die SC frühestens im 8tel-Finale aufeinandertreffen können und der Rest automatisch erstellt würde, wäre das schon eine grosse Hilfe.

Mein Problem ist wohl auch, dass ich bei der Sache wie vor einer Wand stehe und das Ding einfach nicht zu fassen bekomme.


@Dimmel:
Danke für Dein Angebot. Ich habe wie oben geschrieben selbst schon mehrere Turniere durchgespielt, die aber einfach nicht so gross waren.
Als Ablauf am Tisch hätte ich mir vorgestellt:
- Der Turniertag beginnt, die Disziplinen und Runden bekannt gegeben werden und dann die Kämpfe der SC ausgewürfelt werden. Bei den reinen NSC-Paarungen die Gewinner per Knopfdruck ermittelt und dann gleich die Paarungen für die nächste Runde per Zufall erstellt.
- Die Turnierleitung (böse tm) sagt aufgrund der Wettkampfergebnisse, wer beim Abendessen wie nah beim Gastgeber sitzt, wo dann Politik gemacht wird (Allianzen schmieden, gegen andere Reiche hetzen,...) Dort und auch zwischen den Disziplinen findet ein Grossteil des Spieles statt.
- Am nächsten Tag dasselbe, aber natürlich mit anderen Disziplinen und weiteren Verstrickungen nach den Wettkämpfen...


@Jiba:
Hast Du eine Vorstellung oder ein Beispiel, wie diese Zufallstabellen aussehen könnten, denn ich kann mir das grade nicht so richtig vorstellen?


@klatschi:
Die Modellierung des Turniers fände ich eigentlich schön.
Dein Ansatz mit den Qualitätsstufen gefällt mir. Wenn ich das richtig sehe, müsste man die QS-Punkte aber nicht nur auf die Wettkämpfer pro Mannschaft verteilen, sondern auch auf die Disziplinen pro Wettkämpfer, richtig?
Also z.B.
Alrik hat Nahkampf 6, Fernkampf 3, Reiten 5, Lyrik 12, Seilziehen 4 = 30 total
Amoniak hat Nahkampf 16, Fernkampf 4, Reiten 2, Lyrik 1, Seilziehen 7 = 30 total

Soweit klar, das müsste man dann halt einmal für alle durchschreiben (oder Excel in einer Tabelle per Zufall machen lassen).

Ich fände es eben interessant, wenn Alrik im Seilziehen gegen Amoniak gewinnen könnte, auch wenn der eigentlich um 3 besser ist, aber die Chance dafür ist halt geringer. Nur wie mach ich es, dass ich das jetzt in Runde 1 nicht für 58 Paarungen händisch auswürfeln muss?

[Edit] Ah, halt, wenn nur 3 QS-Stufen, wäre es eher
Alrik Nahkampf 2, Fernkampf 2, Reiten 3, Lyrik 3, Seilziehen 2 = 12
Amoniak Nahkampf 3, Fernkampf 2, Reiten 1, Lyrik 1, Seilziehen 3 = 10

Hm, gäbe es dann eine maximale QS-Zahl pro Wettkämpfer (nicht dass einer dann 15 Punkte für sich verbraucht)? [/Edit]

Auch die Idee, aus der QS einen Wert zu ermitteln gefällt mir gut, das könnte schön schnell gehen.

Ja, Challonge habe ich auch schon gesehen, aber für grössere Bäume muss man glaub zahlen und ich bin mir nicht ganz sicher, ob ich da dann nicht doch die Ergebnisse alle selbst eintragen muss oder ob es quasi eine Simulation macht und selbst die Gewinner bestimmt und einträgt.
Eliminations-Brackets mit 128 Teilnehmern habe ich schon einige gefunden.


Grüsse
torben
« Letzte Änderung: 21.02.2023 | 11:44 von torben »

Offline sma

  • Hero
  • *****
  • a.k.a. eibaan
  • Beiträge: 1.380
  • Geschlecht: Männlich
  • Username: sma
Ich würde wohl so vorgehen (mein Python ist total eingerostet):

Erstelle eine Liste mit den 20 Disziplinen.

    disciplines = ["Wettreiten", ...]

Erstelle eine Liste mit zufälligen Namen und erstelle für jeden Namen einen Teilnehmer (ich nehme ein Dictionary statt Exemplaren von Klassen).

    realms = ["R1", ...]
    names = {
      "R1": (
        ["Alrik", ...],
        ["Allgemein", ...],
      ),
      ...
    }
    participants = [{"n": random_name(*names[r]), "r": r}
      for _ in range(d(10)+4) for r in realms]

Wenn du zu jedem jeweils Tabellen mit typischen Namen hast, baust du zu jedem Reich z.B. W10+4 (also 5 bis 15) Namenspaare aus Vor- und Nachname (ich brauche dazu ein paar Hilfsfunktionen).

    def random_name(n1, n2): return f"{pick(n1)} {pick(n2)}"
    def pick(lst): return sample(lst, 1)[0]
    def sample(lst, n=None): return random.sample(lst, n or len(lst))
    def d(n): return random.randint(1, n)

Ordne jetzt jedem Teilnehmer N=1W20 Disziplinen zu, indem du jeweils die Liste der Disziplinen mischt und dann die ersten N nimmst. Ordne jeder dieser Disziplinen eine Qualitätsstufe mit 1W6 (1=schlecht, 6=gut) zu.

    for p in participants:
      p['d'] = {di: d(6) for di in sample(disciplines, d(20))}

Füge dieser Liste jetzt noch SCs hinzu (ich erkenne sie daran, dass ihre QS -1 ist:

    participants.append({"n": "SC1", "r": "Rx", "d": {"Dy": -1, ...}})
    ...

Für den Wettstreit, gehe nun alle 20 Disziplinen durch und Suche für jede Disziplin eine Liste alle Teilnehmer, die darin geübt sind, d.h. eine Qualitätsstufe haben. Ist die Liste leer, mache mit der nächsten Disziplin weiter. Ansonsten: Mische diese Liste. Sie kann eine ungerade Anzahl von Teilnehmer enthalten. In diesem Fall nimm den ersten Teilnehmer, er oder sie kommt weiter. Alle anderen wettstreiten nun paarweise gegeneinander, indem ihre QS verglichen wird, siehe unten. Wiederhole dies, bis die Liste nur noch einen Teilnehmer hat. Dies ist der Gewinner.

    for di in disciplines:
      ps = sample([p for p in participants if di in p['d']])
      while len(ps) > 1:
        ps2 = []
        if len(ps) % 1:
          ps2.append(ps.pop())
        for (p1, p2) in zip(ps[::2], ps[1::2]):
          ps2.append(p1 if fight(p1, p2) else p2)
        ps = ps2
      if len(ps) > 0:
        print(f"Gewinner von {di} ist {ps[0]['n']} aus {ps[0]['r']}")
      else:
        print(f"{di} hat keinen Gewinner")

Um die QS zu vergleichen könnte man 1W6+QS würfeln und den höheren suchen. Bei Gleichstand, entscheidet 1W2 zufällig. An dieser Stelle kann man auch erkennen, dass es ein SC ist (weil QS gleich -1 ist), der da kämpft und interaktiv nach dem Kampfergebnis fragen, statt es per Zufall bestimmen.

Offline Kurna

  • Famous Hero
  • ******
  • Beiträge: 2.236
  • Username: Kurna
Eine allgemeine Bemerkung zum Turnier. Es liest sich so, als ob du jede Runde die Paarungen zufällig erstellen möchtest. Man könnte es alternativ auch so machen, dass der ganze Turnierbaum schon klar ist (d.h. wie z.B. bei einem Tennisturnier). Das hat den Vorteil, dass du alle Äste schon im Vorfeld soweit berechnen lassen könntest, bis SCs involviert sind. Das könnte den Verwaltungsaufwand während der Spielrunde senken.
Es hätte aber den zweiten Vorteil, dass es mehr Intrigen erlaubt. Ein SC könnte z.B. heimlich NSC A gegen NSC B helfen, weil er weiß, dass A eigentlich schwächer ist und er selbst (oder ein anderer SC) später im Verlauf auf den Sieger dieser Paarung treffen wird. NSCs könnten natürlich ähnliche Pläne haben etc.
"Only the good die young. The bad prefer it that way." (Goblin proverb)

Offline torben

  • Experienced
  • ***
  • Beiträge: 332
  • Username: torben
Das geht ja schnell hier  :)

klatschis Idee mit der vereinfachten Qualitätsstufe gefällt mir schon mal gut, wenn man es doch nicht in ein Programm reinbringen können sollte, resp. nur teilweise automatisieren würde. Ich glaube, da müsste ich dann pro Reich ein Raster erstellen und dann pro Kämpfer die QS pro Disziplin eintragen, damit der einzelne Teilnehmer nicht einfach im allem entweder QS 1, 2 oder 3 hat, sondern etwas differenziert ist (sind die SC ja auch, z.B. gut im Nahkampf, Flasche in Lyrik):
NahkampfFernkampfLyrikReitenSeilziehen
Alrik
Alrim
Alrib
Alril
Alrob

Dabei wäre es dann aber cool, wenn die Tabelle durch eine Funktion nach Zufall ausgefüllt werden könnte und wenn man dann immer noch manuell nachsteuern kann, wenn's einem nicht ganz passt. Nur wie viele Punkte pro Disziplin? Da aus 22 Teams maximal 128 Wettkämpfer zugelassen werden, sind es in der Regel die besten 5 bis 6 pro Team, die in einer Disziplin antreten. Und die nächste Frage, was ist die Maximalpunktzahl, die ein Wettkämpfer in allen Disziplinen zusammengezählt auf sich vereinen kann?

Im zweiten Schritt wäre dann die Tabelle nach den Besten pro Disziplin zu ordnen und dann kommt die SChwierigkeit, diese Namen in einem Turnierbaum so zu verteilen, dass zuerst die Besten gegn die Schlechtesten antregen (wobei die schlechteren SCs auch schlechtere Gegner am Anfang haben dürften) und die SC erst möglichst spät gegeneinander drankommen können.

Im dritten Schritt wäre dann eine automatisierte Ermittlung der reinen NSC-Gefechte toll, bei der die Gewinner dann direkt in den Turnierbaum eingetragen werden und damit die nächste Runde schon klar ist.

Wenn Ihr andere, einfachere, bessere, schnellere umfassendere oder sonstige Ideen habt, bitte gerne weiter her damit  :)



@sma:
Vielen Dank für die Programmierhinweise. Leider bin ich in Sachen programmieren nie über Qbasic in der Schule (vor 30 Jahren) hinausgekommen und kann daher leider so ein Programm nicht selbst schreiben. Chatgpt hatte mir Lösungsmöglichkeiten in Python für all meine Anforderungen präsentiert, aber 1) konnte ich nicht nachvollziehen, ob die auch wirklcih funktionieren und 2) konnte ich sie nicht zusammennsetzen und ein lauffähiges Programm daraus machen. Und das ganze Programm wollte CHatgpt dann doch nicht schreiben.

Die Namen der Wettkämpfer habe ich mir übrigens schon aus den Fingern gesaugt (ziemlich uninspiriert, aber wenn dann einer heraussticht, kann man ihm ja einen besseren Namen geben, in erster Linie geht's ja vorerst noch nur um die Unterscheidbarkeit).


@Kurna:
Der Turnierbaum kann ja im Vorfeld immer nur für die erste Runde erstellt werden, denn ab da kommt's dann drauf an, wer die Runde gewinnt. Aber ja, so kann man sehen, ab wann wer gehen wen antreten könnte. Mein Problem ist da vor allem, die erste Runde so zusammenzustellen (64 Paarungen), dass die Besten zuerst mal gegen die Schlechtesten antreten, damit sich nicht gleich zwei Champions in der ersten Runde gegenseitig rauswerfen, während ein Honk weiterkommt, der gegen einen anderen Honk kämpfen musste.
Es geht also darum, bei der Erstellung der ersten Paarung eine Setzung vorzunehmen resp. einfliessen zu lassen.
Und wie gesagt, wenn das automatisiert wäre und auch die Ermittlung der Sieger in den reinen NSC-Wettkämpfer automatisiert wäre, dann wäre man schon sehr viel schneller unterwegs und könnte sich um das eigentliche Spiel sowie die Runden mit SC-Beteiligung kümmern.


Liebe Grüsse
torben

Offline Maarzan

  • Mythos
  • ********
  • Beiträge: 8.749
  • Username: Maarzan
Würfeln? Best 3of4W6, weil ja wohl die Besten aus den entsprechenden Ländern antreten, ggf aus 5W6 falls ein Land besondere Traditionen hat.
Die Länder werden wohl wissen (aber ggf. taktieren?) wer die eigenen Besten sind und daher sollen sie ihre 6? Starter selbst in Reihenfolge bringen - sprich die Länder sortieren nach diesem für den Wettbewerb relevanten Wert. Dann werden entsprechend die Teilnehmer nach Landesliste gerankt zugeteilt, sprich 1en gegen 6en , 2en gegen 5en  und 3en gegen 4er.

Storytellertraumatisiert und auf der Suche nach einer kuscheligen Selbsthilferunde ...

Online klatschi

  • Famous Hero
  • ******
  • Eichhörnchen auf Crack
  • Beiträge: 2.469
  • Username: klatschi
@klatschi:
Die Modellierung des Turniers fände ich eigentlich schön.
Dein Ansatz mit den Qualitätsstufen gefällt mir. Wenn ich das richtig sehe, müsste man die QS-Punkte aber nicht nur auf die Wettkämpfer pro Mannschaft verteilen, sondern auch auf die Disziplinen pro Wettkämpfer, richtig?
Also z.B.
Alrik hat Nahkampf 6, Fernkampf 3, Reiten 5, Lyrik 12, Seilziehen 4 = 30 total
Amoniak hat Nahkampf 16, Fernkampf 4, Reiten 2, Lyrik 1, Seilziehen 7 = 30 total

Soweit klar, das müsste man dann halt einmal für alle durchschreiben (oder Excel in einer Tabelle per Zufall machen lassen).

Ich fände es eben interessant, wenn Alrik im Seilziehen gegen Amoniak gewinnen könnte, auch wenn der eigentlich um 3 besser ist, aber die Chance dafür ist halt geringer. Nur wie mach ich es, dass ich das jetzt in Runde 1 nicht für 58 Paarungen händisch auswürfeln muss?

[Edit] Ah, halt, wenn nur 3 QS-Stufen, wäre es eher
Alrik Nahkampf 2, Fernkampf 2, Reiten 3, Lyrik 3, Seilziehen 2 = 12
Amoniak Nahkampf 3, Fernkampf 2, Reiten 1, Lyrik 1, Seilziehen 3 = 10

Hm, gäbe es dann eine maximale QS-Zahl pro Wettkämpfer (nicht dass einer dann 15 Punkte für sich verbraucht)? [/Edit]

Auch die Idee, aus der QS einen Wert zu ermitteln gefällt mir gut, das könnte schön schnell gehen.

Ja, Challonge habe ich auch schon gesehen, aber für grössere Bäume muss man glaub zahlen und ich bin mir nicht ganz sicher, ob ich da dann nicht doch die Ergebnisse alle selbst eintragen muss oder ob es quasi eine Simulation macht und selbst die Gewinner bestimmt und einträgt.
Eliminations-Brackets mit 128 Teilnehmern habe ich schon einige gefunden.

Ah, ich dachte, jedes Volk hat einen Champion pro Disziplin - das fände ich auch irgendwie passend (da man halt den besten daheim ermittelt und dann seine Entourage dabei hat, wobei ein Champion auch in mehreren Disziplinen dabei sein kann, aber halt nicht in allen). Das hätte die Orga und das Punkteverteilen erleichtert...

Da viele der Teilnehmenden ja nur Statisten ohne wirklich viel Fleisch sind, würde ich persönlich wirklich nur QS vergleichen, wenn du einen Zufallswert haben willst, dann würde ich - wie sma vorgeschlagen hat - einfach 1w6+QS, wer höher ist, gewinnt, dann würde ich bei Gleichstand sogar sagen, dass die höhere QS gewinnt, das müsste dann auch tatsächlich mit Excel machbar sein.

  • Schritt 1: Du nimmst die Teilnehmer mit der dazugehörigen QS in ein Tabellenblatt und gibst jedem eine Zufallszahl; ich nenne die ab nun Sortierzahl. Dann sortierst du sie nach dieser Zahl und hast deine ersten Paarungen: 1 vs 2, 3 vs 4, etc.
  • neben jedem Teilnehmenden schreibst du nun eine Zufallszahl in einer Spalte mit dem Befehle =ZUFALLSBEREICH(1;6) und addierst das mit der QS
  • Du solltest bei der bedingten Formatierung festlegen können, dass eine Zeile hervorgehoben wird, wenn die Zahl größer ist als eine andere Zahl (hier vergleichst du dann Zeile 1 mit Zeile 2, Zeile 3 mit Zeile 4, Zeile 5 mit Zeile 6 etc. - entsprechend könntest du auf einen Blick sehen, wer gewonnen hat; di
  • gib den Gewinnern 1 Punkt, den Verlierern 0 Punkte, vergib neue Sortierzahlen und sortiere nun alle nach Priorität 1: gewonnene Punkte, Prio 2: Sortierzahl, dann hast du eine neu randomisierte Liste, in der nun alle mit Siegen untereinander gelost werden und alle mit Niederlagen.
  • Wiederhole das Ganze, bis einer die meisten Punkte hat.

Teile der Schritte kannst du sogar automatisieren. Man kann bei Excel - wenn ich es richtig im Kopf habe - gewisse Schritte ausführen, sich dabei vom Programm "filmen" lassen und sich danach als Makro-Code anzeigen lassen. Beispielsweise: Du startest die Chose, markiere Spalte D in Zeile 1 und fügst =ZUFALLSBEREICH(1;6) ein und ziehst das dann über die nächsten 20 Zeilen. Wenn du dann stoppst, hast du ein Code-Schnipsel, das du am Ende in ein größeres Makro einfügst, das dir gewisse Schritte einfach übernimmt, indem du es einfach immer wieder abspielen lässt.
Da müsste ich mich aber genauer Eindenken, ist mehr als ein Jahr her, dass ich das mal gemacht habe.

Kann auch sein dass ich mich täusche aber so würde ich es probieren
« Letzte Änderung: 21.02.2023 | 23:58 von klatschi »

Offline Skeeve

  • Hero
  • *****
  • Beiträge: 1.625
  • Geschlecht: Männlich
  • Username: XoxFox
Also was die Qualitätsstufen betrifft: da wäre ich für
  • QS 1 -->  :w4:
  • QS 2 -->  :w8:
  • QS 3 -->  :w12:
"Explodierende Würfel" und der höhere Wurf gewinnt das Duell... (Ja, ich leite nur Savage Worlds... für die Isengart-Runde wahrscheinlich unpassend. Ich kenne da die Mers/Rolemaster-Regeln nun gar nicht.)

Zu den Vor- und Nachteilen der verschiedenen Turnierformen gibt es auf Wikipedia vieles zu lesen. Ist mir alles zu viel Mathematik...
Beim einfachen K.O.-Turnier scheint die übliche Paarung wohl so zu sein wie schon Maarzan schrieb: Teilnehmerliste absteigend nach Qualität sortieren (der beste auf Pos. 1, der schlechteste an das Ende der Liste) und dann tritt der Beste gegen den Schlechtesten an, der zweitbeste gegen den zweitschlechtesten, ...

Wenn die Paarungen nicht so ganz extrem sein sollen, dann könnte ich mir noch vorstellen: die sortierte Teilnehmerliste in obere und untere Hälfte teilen und der erste der oberen Hälfte spielt gegen den ersten der unteren Hälfte, der zweite der obere Tabellenhälfte tritt gegen den zweiten der unteren Hälfte an, ...

... oft genug sind die Spieler die größten Feinde der Charaktere, da helfen auch keine ausgeglichenen Gegner

Hoher gesellschaftlicher Rang ist etwas, wonach die am meisten streben, die ihn am wenigsten verdienen.
Umgekehrt wird dieser Rang denen aufgedrängt, die ihn nicht wollen, aber am meisten verdienen. [Babylon 5]

Offline sma

  • Hero
  • *****
  • a.k.a. eibaan
  • Beiträge: 1.380
  • Geschlecht: Männlich
  • Username: sma
@sma:
Vielen Dank für die Programmierhinweise. Leider bin ich in Sachen programmieren nie über Qbasic in der Schule (vor 30 Jahren) hinausgekommen und kann daher leider so ein Programm nicht selbst schreiben.
Du erwähntest Python, daher wählte ich extra diese Sprache, denn selbst schreiben müsstest du es nicht, denn das hatte ich ja nun schon gemacht. Nur die Tabellen ausfüllen und den Code zusammenkopieren (und ein `import random` vorauschicken, das ich unterschlagen hatte). Habe ich hier mal für dich gemacht.

Offline torben

  • Experienced
  • ***
  • Beiträge: 332
  • Username: torben
Huh, viele Ansätze, toll  :)

@Maarzan:
Ich möchte eigentlich, dass die Teilnehmer aller Reiche gegeneinander antreten können, deshalb eine Single-Elimination aus 128 Teilnehmern mit zufälliger Sortierung (nachdem man einige "Schwergewichte" manuell gesetzt hat). Aber ja, nötigenfalls würde ich auch die besten jedes Landes selbst auswählen, aber eben, dann die Wettkampfpaarungen machen und den Gewinner bei reinen NSC-Paarungen zu ermitteln, das sollte automatisiert werden.


@klatschi:
Dein Ansatz klingt ziemlich klar, allerdings - und da bin ich mir nicht sicher - glaube ich, dass Deine Variante ausser Acht lässt, dass bei so einer zufälligen Vergabe der Sortierzahl in der ersten Runde quasi auch der Beste gegen den Zweitbesten als Zufallspaar herauskommen könnte, was ich eigentlich vermeiden will. Ich bin da aber noch weiter am Rumdenken und Ausprobieren.


@Skeeve:
Ja, ich bin auch zum K.O.-Turnier gekommen (Single-Elimination) und habe da auch schon PDF-Turnierbäume mit 128 Teilnehmern im Netz gefunden, wo man die Paarungen der 1. Runde im Grundsatz hat, also 1-128, 2-127, 3-126, usw. und das so auf dem Baum verteilt, dass am Ende im "Idealfall" der Stärkeeinreihung 1-2 kommen würde. Ich könnte vermutlich auch eine zufällige Stärkeneinreihung der 128 Teilnehmer in Excel hinbekommen, aber dann müsste ich, wenn ich den PDF-Baum verwenden würde, alle Sieger 1. auswürfeln und 2. von Hand eintragen. Diese beiden Schritte möchte ich nach Möglichkeit automatisieren, um Zeit zu sparen. Die Verwendung von verschiedenen Würfeln, um die unterschiedliche Stärke der Teilnehmer zu repräsentieren finde ich aber auch spannend  :)


@sma:
Ich habe mir jetzt mal Python installiert und Deinen Code ausprobiert... vielen Dank für die Mühe  :d Chatgpt hat mir dabei ein bisschen geholfen, denn ich bin hierin wirklich eine Nuss ohne jede Kenntnis, unglaublich  ::)
Soweit sehr cool. Wie gesagt, die Namen aller Teilnehmer (22x15 = 330 Namen) habe ich schon erdacht, so dass ich diesen Teil des Codes gar nicht bräuchte.
Wichtiger wäre, dass ich aus den 330 Teilnehmern jedem für jede Disziplin eine Qualitätsstufe zuweisen zu können (für einige manuell, für die übrigen zufällig durch das Programm). Dann müsste das Programm die 128 besten Teilnehmer auswählen und in einem Turnierbaum gegeneinander antreten lassen (1-128, 2-127, usw.). Auch dabei mit der Option, gewisse Ergebnisse manuell eintragen zu können und den Rest vom Programm per Zufall unter Berücksichtigung der QS zu bestimmen. Und das dann für alle 6 Runden, um von 128 Teilnehmern auf einen Sieger zu kommen.

Grüsse
torben
« Letzte Änderung: 22.02.2023 | 07:29 von torben »

Offline torben

  • Experienced
  • ***
  • Beiträge: 332
  • Username: torben
Argh, Datei-Endung nicht zulässig -> Text gelöscht, nochmals von vorne...  :-X

Aaalso, ich hab es mit Hilfe von Chatgpt und vielen händischen Änderungen an den Formeln und noch mehr copy&paste hinbekommen, in Excel ein Eliminationsturnier mit 128 Teilnehmern zu simulieren, wobei in der 1. Runde gilt Bester gegen Schlechtester bei QS 3 bis 1 und mit Zufallsbereich 1 bis 6. Die Gewinnchance bei gleicher QS liegt bei 50%, bei 1 QS Unterschied ist's 66% und bei 2 QS Unterschied ist's 95%. Und ich kann manuell Sieger von Runden festlegen.
Für die Charakter habe ich jetzt auch einfach mal je eine QS eingesetzt, im Spiel werden die Duelle der Charakter dann jeweils ausgewürfelt und manuell eingetragen.

Ich versuche nochmals, die Datei hier anzuhängen, falls jemand an sowas Interesse hat, jetzt halt als .zip.
Ach und wundert Euch nicht über die Namen, es war spät und ich brauchte das Geld... oder so  ;D ;D Nein, die ersten beiden Anfangsbuchstaben korrespondieren jeweils mit dem Namen des Reiches, aus welchem die Teilnehmer stammen und die Farbe signalisiert, ob die Charakter (grün), Zwerge (lila), cyan-hörig (blau), neutral (braun), oder ausrichter-hörig (rot) sind.

Vielen Dank für Euren Input und die unterschiedlichen Anregungen. Falls Ihr weitere Kommentare habt, gerne her damit.

Grüsse
torben

Online klatschi

  • Famous Hero
  • ******
  • Eichhörnchen auf Crack
  • Beiträge: 2.469
  • Username: klatschi
Respekt - auch wenn verschiedene SL das Ganze sicher aus anderen Sicht- und Herangehensweisen angegangen wären, finde ich es super, dass du dir mit diesem Thread eine Möglichkeit eröffnet hast, das Ganze nach deinen Vorstellungen abzuarbeiten, auch wenn du dich dadurch mit "unbequemen" Dingen umeinanderschlagen musstest.
Da ich erst letztens ein ähnliches Problem hatte und mich auch in neue Dinge einarbeiten musste, kann ich nachvollziehen, dass das sicher nicht immer cool war. Schön aber, dass du es durchgezogen hast und ich hoffe, dass ihr viel Spaß habt, das Ganze durchzuspielen!

Es ist schon inspirierend zu sehen, was SLs alles für ihre Kampagnen tun  ~;D