Autor Thema: Python-Kampfsimulator  (Gelesen 4208 mal)

4 Port USB Hub

  • Hero Member
  • *****
  • Beiträge: 1.043
  • Jetzt mit USB 3.0 Ports
    • Profil anzeigen
Python-Kampfsimulator
« am: 20 Jun 2014, 19:28:44 »
Hallo,

ich habe ein kleines python-Programm geschrieben welches beliebig viele Kämpfe zwischen zwei Kontrahenten auswürfelt.
Ich wollte sehen wie sich das Verändern bestimmter Stellschrauben auf den Erfolg auswirkt.

Ein paar (teilweise eigentlich selbstverständliche) Erkenntnisse:
Aktive Parade lohnt sich mehr für Kämpfer mit langsamer Waffe. Bei 10 Ticks Waffengeschwindigkeit sind die 3 Extra-Ticks nur 30% weniger Schaden pro Tick, bei 6 Ticks schon 50%.
Genau die gleiche Argumentation gilt für Rüstungen.

Nach den Schnellstarterregeln lohnt sich der Risikowurf beim Angriff eigentlich immer, aber im GRW wird der Patzer ja verschärft.

Eine Rüstung kann entgegen der initialen Annahme von Nutzen von Rüstungen durchaus die Gewinnwahrscheinlichkeit erhöhen.

Insgesamt aber scheint alles sehr ausgewogen zu sein, es gibt keine "Dies ist immer die bessere Wahl" Option.

Ich habe den Quellcode mal angehängt. (Das ist mein erstes python-script, daher bitte ich alle professionellen Programmier um Nachsicht beim Betrachten ;) )
Für Fetzenstein! Nieder mit Knax!

Eyb in the box

  • Hero Member
  • *****
  • Beiträge: 1.566
  • Bruderschaft vom sehenden Varg
    • Profil anzeigen
Re: Python-Kampfsimulator
« Antwort #1 am: 20 Jun 2014, 19:33:39 »
Noch nicht ausprobiert, aber klingt sehr vielversprechend! :)

4 Port USB Hub

  • Hero Member
  • *****
  • Beiträge: 1.043
  • Jetzt mit USB 3.0 Ports
    • Profil anzeigen
Re: Python-Kampfsimulator
« Antwort #2 am: 20 Jun 2014, 22:37:41 »
Ich habe spasseshalber mal Cederion aus dem 1.1 Schnellstarter gegen Wulfhard aus dem GRT-Schnellstarter antreten lassen, und zwar 500.000 mal:
Cederion gewann ~50.7%, Wulfhard den Rest. Fand ich sehr beeindruckend, dass die beiden so nahe zusammenliegen. :)

Tiai gewann 53% der Kämpfe gegen Cederion, wenn sie die Kettensichel benutzt. Mit der Maira nur 44.5% :) Gegen Wulfhard ist sie sogar in 57% der Fälle siegreich. Und das noch ganz ohne zaubern. :) Der Verteidigungsbonus aus der Ausweichen-Meisterschaft ist hier wohl ein wichtiger Faktor, mit dessen Hilfe sie da locker mithalten kann.
« Letzte Änderung: 20 Jun 2014, 22:48:31 von 4 Port USB Hub »
Für Fetzenstein! Nieder mit Knax!

4 Port USB Hub

  • Hero Member
  • *****
  • Beiträge: 1.043
  • Jetzt mit USB 3.0 Ports
    • Profil anzeigen
Re: Python-Kampfsimulator
« Antwort #3 am: 22 Jun 2014, 15:19:59 »
Der Kampfsimulator hat nun auch ein log welches den Kampf einigermaßen anschaulich darstellt.
Auch einige Archetypen aus den Schnellstarter und ein paar Zauber habe ich nun eingebaut.

Sorry but you are not allowed to view spoiler contents.

Ich finde die Resultate schon sehr interessant die man so teilweise rauskriegt. :)
Für Fetzenstein! Nieder mit Knax!

SeldomFound

  • Beta-Tester
  • Hero Member
  • ***
  • Beiträge: 10.152
  • Wohin auch die Reise geht, ich bin da
    • Profil anzeigen
Re: Python-Kampfsimulator
« Antwort #4 am: 22 Jun 2014, 15:30:25 »
Sorry, wie benutze ich jetzt eigentlich diesen Kampfsimulator?
Patience is a virtue, possess it if you can
Seldom found in woman
Never found in man

4 Port USB Hub

  • Hero Member
  • *****
  • Beiträge: 1.043
  • Jetzt mit USB 3.0 Ports
    • Profil anzeigen
Re: Python-Kampfsimulator
« Antwort #5 am: 22 Jun 2014, 15:36:26 »
Das ist in python geschrieben, das müsstest du von https://www.python.org/downloads/ herunterladen und dann z.b. per python beispielkampf.py ausführen. Ohne grundlegende Code-Erfahrung ist es allerdings schwer, damit viel rumzuspielen.
Für Fetzenstein! Nieder mit Knax!

Alagos

  • Beta-Tester
  • Hero Member
  • ***
  • Beiträge: 875
    • Profil anzeigen
Re: Python-Kampfsimulator
« Antwort #6 am: 22 Jun 2014, 18:35:22 »
Ich habs auch versucht und bin gescheitert :D. Wär cool, wenn es sowas für "normale" Endbenutzer geben würde. Aber natürlich trotzdem toll, dass es das überhaupt gibt :).
Ich leite aktuell: Der Fluch der Hexenkönigin.

maggus

  • Beta-Tester
  • Hero Member
  • ***
  • Beiträge: 2.040
  • Zeigefingerzeiger
    • Profil anzeigen
    • maggus bei Facebook
Re: Python-Kampfsimulator
« Antwort #7 am: 22 Jun 2014, 19:39:40 »
Der Kampfsimulator hat nun auch ein log welches den Kampf einigermaßen anschaulich darstellt.
Auch einige Archetypen aus den Schnellstarter und ein paar Zauber habe ich nun eingebaut.

Sorry but you are not allowed to view spoiler contents.

Ich finde die Resultate schon sehr interessant die man so teilweise rauskriegt. :)

Wenn ich das Log aus Deinem Spoiler richtig lese, dann kämpfen Cederion und Sialids bis zum Tick 202 :o Das ist... sehr lang.

Tolles Tool übrigens :)
"Befreien Sie das Unreich!"

Grimrokh

  • Beta-Tester
  • Hero Member
  • ***
  • Beiträge: 2.760
  • Splitterträger seit 2013
    • Profil anzeigen
Re: Python-Kampfsimulator
« Antwort #8 am: 22 Jun 2014, 20:13:50 »
Zitat
Wenn ich das Log aus Deinem Spoiler richtig lese, dann kämpfen Cederion und Sialids bis zum Tick 202 :o Das ist... sehr lang.
Ach, das ginge ja noch. Aber wird hier überhaupt die Aktive Abwehr berücksichtigt? Ich halte diese nämlich für den wirklich zeitaufwändigen Faktor, weil bei (fast) jedem Einsatz ein paar Schadenspunkte weniger verursacht werden als der Angriff eigentlich verursachen würde. Und wie sieht es mit Splitterpunkten aus? Damit kann man in der Praxis Schaden oft komplett abwenden (wenn man die VTD um 3 erhöht, nachdem man das Angriffsergebnis kennt) oder jeweils 5 Schadenspunkte komplett ignorieren usw. Schützende Zauber können den Kampf dann natürlich noch zusätzlich verlängern. Aber letztlich sind 200 Ticks auch nur 1-2 Minuten ;)
Wir sind Legion

SeldomFound

  • Beta-Tester
  • Hero Member
  • ***
  • Beiträge: 10.152
  • Wohin auch die Reise geht, ich bin da
    • Profil anzeigen
Re: Python-Kampfsimulator
« Antwort #9 am: 22 Jun 2014, 21:41:47 »
Ich habe mal von Hand gerechnet (Ich habe zuviel Zeit) und habe dabei die Aktive Abwehr beachtet:

Sorry but you are not allowed to view spoiler contents.


Zugegeben, in diesem Falle war Cederions Niederlage auch einfach Würfelpech (Ein und schließlich sogar zwei Patzer, dazu hat Sialdis extrem gut Schaden gewürfelt)!
Aber gegen Ende merkte man dann schon wie heftig eine VTD von 24 ist. Sie hat Cederion deutlich länger überleben lassen, als man glauben würde.


Übrigens: Dies sind die Schnellstarterregeln, wo die Boni durch Rüstungen noch nicht begrenzt sind und es keine Gelegenheitsangriff gibt, mit denen Cederion Sialdis hätte treffen können, während sie ihre Magische Rüstung zauberte!
Patience is a virtue, possess it if you can
Seldom found in woman
Never found in man

4 Port USB Hub

  • Hero Member
  • *****
  • Beiträge: 1.043
  • Jetzt mit USB 3.0 Ports
    • Profil anzeigen
Re: Python-Kampfsimulator
« Antwort #10 am: 22 Jun 2014, 22:47:13 »
Zitat
Wenn ich das Log aus Deinem Spoiler richtig lese, dann kämpfen Cederion und Sialids bis zum Tick 202 :o Das ist... sehr lang.
Ach, das ginge ja noch. Aber wird hier überhaupt die Aktive Abwehr berücksichtigt? Ich halte diese nämlich für den wirklich zeitaufwändigen Faktor, weil bei (fast) jedem Einsatz ein paar Schadenspunkte weniger verursacht werden als der Angriff eigentlich verursachen würde. Und wie sieht es mit Splitterpunkten aus? Damit kann man in der Praxis Schaden oft komplett abwenden (wenn man die VTD um 3 erhöht, nachdem man das Angriffsergebnis kennt) oder jeweils 5 Schadenspunkte komplett ignorieren usw. Schützende Zauber können den Kampf dann natürlich noch zusätzlich verlängern. Aber letztlich sind 200 Ticks auch nur 1-2 Minuten ;)
Aktive Abwehr wird berücksichtigt, ja.

Und gerade wenn beide Kontrahenten nur noch sehr wenig LP haben, dauert es mitunter sehr lange. Mit -8 auf die Angriffe wird es schwer, noch zu treffen.
Für Fetzenstein! Nieder mit Knax!

4 Port USB Hub

  • Hero Member
  • *****
  • Beiträge: 1.043
  • Jetzt mit USB 3.0 Ports
    • Profil anzeigen
Re: Python-Kampfsimulator
« Antwort #11 am: 04 Jul 2014, 17:09:39 »
Ich habe den Simulator mal genutzt, um Zwei identische Kämpfer mit allen Waffen auszurüsten und jeweils 200 mal pro Kombination gegeneinander antreten zu lassen. Das Ganze in zwei verschiedenen Kategorien (Einhandwaffen und Zweihandwaffen). Die Siege pro Waffe habe ich addiert und dann sortiert:

Einhandwaffen:
Vangarasstab5561
Speer5175
Streithammer5127
Breitschwert5030
Falchion4778
Streitkolben4765
Zackenspieß4666
Kriegsbeil4572
Anderthalbhander4529
Langschwert4366
Sabel4363
Valkyrja-Speer4299
FulnischesHalbschwert4289
Morgenstern4155
Klingenstab4102
Khopesh3950
Reitersabel3856
Schlagstock3401
Wurfspeer(NK)3381
Kurzschwert3368
Keule3364
Wurfhammer(NK)3350
Kettensichel3343
Krummdolch3343
Skavona3327
Maira2987
Katar2909
Wurfbeil(NK)2847
Dolch2827
Liandia2766
Schlagring2243
Scheibendolch2160
Dornenhandschuh2091
Stuhlbein,Flasche,Nudelholz1537
Wurfdolch(NK)1494
Peitsche1279

Zweihandwaffen:

Sturmsense2402
Kriegsflegel2381
Vangarasstab2282
Hellebarde2276
Streitaxt2187
Lanze2169
Glefe2158
Pfauenfeder2104
Speer2103
Zweihander2073
Kriegshammer2011
Spitzhacke2011
FulnischesDoppelschwert1984
StreithammerZH1950
Doppelaxt1882
Zackenspieß1881
AnderthalbhanderZH1838
Klingenstab1663
Kettensichel1419
Kampfstab1226
Für Fetzenstein! Nieder mit Knax!

cyberware

  • Full Member
  • ***
  • Beiträge: 206
    • Profil anzeigen
Re: Python-Kampfsimulator
« Antwort #12 am: 04 Jul 2014, 18:02:08 »
Hast du den Einhandwaffenkämpfern ein Schild gegeben?

4 Port USB Hub

  • Hero Member
  • *****
  • Beiträge: 1.043
  • Jetzt mit USB 3.0 Ports
    • Profil anzeigen
Re: Python-Kampfsimulator
« Antwort #13 am: 04 Jul 2014, 18:04:52 »
Hast du den Einhandwaffenkämpfern ein Schild gegeben?
Nein. Ich habe Einhandwaffenkämpfern nur unter sich antreten lassen, und genauso die Zweihandkämpfer.
Für Fetzenstein! Nieder mit Knax!

Alagos

  • Beta-Tester
  • Hero Member
  • ***
  • Beiträge: 875
    • Profil anzeigen
Re: Python-Kampfsimulator
« Antwort #14 am: 05 Jul 2014, 10:51:40 »
Oha. Da scheint es ja eine durchaus große Unwucht zwischen den verschiedenen Waffen zu geben. Gerade die eher "forschrittlichen" Waffen wie die Maira, die Skavona und die Kettensichel schneiden da gegen die "wuchtigen" Waffen deutlich schlechter ab.

Edit: Wobei die Waffen, die weiter unten stehen auch oft Durchdringung haben. Das sollte das zumindest etwas entschärfen ;).
« Letzte Änderung: 05 Jul 2014, 10:56:07 von Alagos »
Ich leite aktuell: Der Fluch der Hexenkönigin.