diff --git a/scripts/deckgen.gd b/scripts/deckgen.gd index d4e50e4..1ff1922 100644 --- a/scripts/deckgen.gd +++ b/scripts/deckgen.gd @@ -5,11 +5,11 @@ const OPPONENT_RARITY_WEIGHT := {"gewöhnlich": 6.0, "selten": 3.0, "episch": 2. # Abnehmende Resonanz je Anzahl gleichelementiger Partner (Index = Partner). const RESONANCE_STEPS := [0, 1, 2, 3, 3] -# Gemessene Stärke der Elementkombinationen (Siegquote gegen das Feld, KI gegen KI, tests/strength_probe.gd). +# Gemessene Stärke der Elementkombinationen (Siegquote gegen das Feld, KI gegen KI, 60 Partien je Archetyp, tests/strength_probe.gd). const ARCHETYPE_STRENGTH := { - "Feuer": 40, "Wasser": 56, "Erde": 46, "Luft": 63, - "Feuer+Wasser": 40, "Feuer+Erde": 83, "Feuer+Luft": 40, - "Wasser+Erde": 53, "Wasser+Luft": 23, "Erde+Luft": 60, + "Feuer": 38, "Wasser": 38, "Erde": 55, "Luft": 55, + "Feuer+Wasser": 45, "Feuer+Erde": 78, "Feuer+Luft": 46, + "Wasser+Erde": 50, "Wasser+Luft": 45, "Erde+Luft": 78, } diff --git a/tests/strength_probe.gd b/tests/strength_probe.gd index bcb868c..92bfc05 100644 --- a/tests/strength_probe.gd +++ b/tests/strength_probe.gd @@ -16,7 +16,7 @@ func _initialize() -> void: var r := RandomNumberGenerator.new() r.seed = 21 var arts := archetypes() - var n := 30 + var n := 60 var results := {} for a in arts: var wins := 0 diff --git a/tests/test_runner.gd b/tests/test_runner.gd index 6e3db75..d2788a0 100644 --- a/tests/test_runner.gd +++ b/tests/test_runner.gd @@ -1240,7 +1240,11 @@ func test_deckstaerke_und_schwierigkeit() -> void: func test_starter_gegen_passende_gegner() -> void: check(Game.archetypes("leicht").size() == 5 and Game.archetypes("schwer").size() == 5 and Game.archetypes().size() == 10, "Archetypen geteilt") - check("Wasser" in Game.archetypes("leicht") and "Erde+Luft" in Game.archetypes("schwer"), "schwache und starke Archetypen") + var table: Dictionary = DeckGen.ARCHETYPE_STRENGTH + var keys: Array = table.keys() + keys.sort_custom(func(a, b): return table[a] < table[b]) + check(keys[0] in Game.archetypes("leicht") and keys[-1] in Game.archetypes("schwer"), "schwächster Archetyp in Leicht, stärkster in Schwer") + check(Game.archetypes("leicht").all(func(k): return table[k] <= table[Game.archetypes("schwer")[0]]), "Hälften nach Stärke getrennt") var r := RandomNumberGenerator.new() r.seed = 6 var starter := Profile.starter().deck_cards()