From 139c7b6798b6e26c9aed0083791af3a206f9ebee Mon Sep 17 00:00:00 2001 From: Gerowasch Date: Sat, 3 Oct 2026 05:08:48 +0200 Subject: [PATCH 01/23] Add SchwobaSenGnitz strategy implementation Implement Schwoba sen gnitz strategy with specific behaviors based on opponent's actions. --- axelrod/strategies/schwoba_sen_gnitz.py | 62 +++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 axelrod/strategies/schwoba_sen_gnitz.py diff --git a/axelrod/strategies/schwoba_sen_gnitz.py b/axelrod/strategies/schwoba_sen_gnitz.py new file mode 100644 index 000000000..25272571f --- /dev/null +++ b/axelrod/strategies/schwoba_sen_gnitz.py @@ -0,0 +1,62 @@ +import random +from axelrod.action import Action +from axelrod.strategy import Strategy + +class SchwobaSenGnitz(Strategy): + """ + Schwoba sen gnitz (Schwaben sind gerissen) - Python-Version 2026. + Autor: Georg 'HackyHackberger' Schmidt (1985 / 2026) + Ursprünglicher Code in Turbo Pascal, 1985 + Startet 100 % friedlich. Nach dem ersten gegnerischen Verrat erwacht die + optimierte gnitze Technik: 10,2 % Sondierung, 89,7 % Deeskalation. + Erkennt nach 10 Runden unversöhnliche Gegner und riegelt ab. + """ + + name = "Schwoba sen gnitz" + authors = ["Georg 'HackyHackberger' Schmidt"] + classifier = { + "memory_depth": float("inf"), + "stochastic": True, + "makes_use_of": set(), + "long_run_time": False, + "inspects_source": False, + "manipulates_state": False, + "manipulates_history": False, + } + + def __init__(self) -> None: + super().__init__() + self.raubtier_erwacht = False + self.schutz_modus_aktiviert = False + + def strategy(self, opponent: Strategy) -> Action: + runde = len(self.history) + if runde == 0: + return Action.C + + if not self.raubtier_erwacht and opponent.history[-1] == Action.D: + self.raubtier_erwacht = True + + if not self.raubtier_erwacht: + return Action.C + + if runde >= 10: + letzte_10_gegner = opponent.history[-10:] + if all(zug == Action.D for zug in letzte_10_gegner): + self.schutz_modus_aktiviert = True + + if self.schutz_modus_aktiviert: + return Action.D + + if opponent.history[-1] == Action.D: + # 89,7 % Deeskalations-Bremse gegen KIs + if random.random() < 0.897: + return Action.C + else: + return Action.D + + # 10,2 % gnitze Sondierung + if random.random() < 0.102: + return Action.D + + return Action.C From d437d692bb6f2b8afc4785e69f93908964e939ec Mon Sep 17 00:00:00 2001 From: Gerowasch Date: Sat, 3 Oct 2026 05:25:16 +0200 Subject: [PATCH 02/23] Add SchwobaSenGnitz strategy to imports --- axelrod/strategies/_strategies.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/axelrod/strategies/_strategies.py b/axelrod/strategies/_strategies.py index bc80eeccc..d800aa46c 100644 --- a/axelrod/strategies/_strategies.py +++ b/axelrod/strategies/_strategies.py @@ -284,6 +284,7 @@ ZDMischief, ZDSet2, ) +from .schwoba_sen_gnitz import SchwobaSenGnitz # Note: Meta* strategies are handled in .__init__.py @@ -438,6 +439,7 @@ RevisedDowning, Ripoff, RiskyQLearner, + SchwobaSenGnitz, SecondByAppold, SecondByBlack, SecondByBorufsen, From 73e043fc0d0d7ec829ca002e23ed2223a920e99e Mon Sep 17 00:00:00 2001 From: Gerowasch Date: Sat, 3 Oct 2026 05:50:10 +0200 Subject: [PATCH 03/23] Fix import statements for relative paths --- axelrod/strategies/schwoba_sen_gnitz.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/axelrod/strategies/schwoba_sen_gnitz.py b/axelrod/strategies/schwoba_sen_gnitz.py index 25272571f..bcefe87eb 100644 --- a/axelrod/strategies/schwoba_sen_gnitz.py +++ b/axelrod/strategies/schwoba_sen_gnitz.py @@ -1,6 +1,6 @@ import random -from axelrod.action import Action -from axelrod.strategy import Strategy +from ..action import Action +from ..strategy import Strategy class SchwobaSenGnitz(Strategy): """ From bc3c2592f226eb7f7236d6631fb00675c637265d Mon Sep 17 00:00:00 2001 From: Gerowasch Date: Mon, 5 Oct 2026 13:34:48 +0200 Subject: [PATCH 04/23] Update schwoba_sen_gnitz.py Wrong filename and direcry structure for _stragegy.py changed --- axelrod/strategies/schwoba_sen_gnitz.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/axelrod/strategies/schwoba_sen_gnitz.py b/axelrod/strategies/schwoba_sen_gnitz.py index bcefe87eb..c84bebaa7 100644 --- a/axelrod/strategies/schwoba_sen_gnitz.py +++ b/axelrod/strategies/schwoba_sen_gnitz.py @@ -1,6 +1,6 @@ import random from ..action import Action -from ..strategy import Strategy +from ._strategy import Strategy class SchwobaSenGnitz(Strategy): """ From 9b1aa194d7237f1e5b51b590a9b9adb37c7267a0 Mon Sep 17 00:00:00 2001 From: Gerowasch Date: Mon, 5 Oct 2026 13:49:59 +0200 Subject: [PATCH 05/23] Update schwoba_sen_gnitz.py corected action and player and set class to (player) --- axelrod/strategies/schwoba_sen_gnitz.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/axelrod/strategies/schwoba_sen_gnitz.py b/axelrod/strategies/schwoba_sen_gnitz.py index c84bebaa7..4dfe12356 100644 --- a/axelrod/strategies/schwoba_sen_gnitz.py +++ b/axelrod/strategies/schwoba_sen_gnitz.py @@ -1,8 +1,8 @@ import random -from ..action import Action -from ._strategy import Strategy +from axelrod.action import Action +from axelrod.player import Player -class SchwobaSenGnitz(Strategy): +class SchwobaSenGnitz(Player): """ Schwoba sen gnitz (Schwaben sind gerissen) - Python-Version 2026. Autor: Georg 'HackyHackberger' Schmidt (1985 / 2026) From 6b80e0cc64dbd311e2415d8cbf00be434c6765ff Mon Sep 17 00:00:00 2001 From: Gerowasch Date: Mon, 5 Oct 2026 13:54:58 +0200 Subject: [PATCH 06/23] Update schwoba_sen_gnitz.py Line 32 --- axelrod/strategies/schwoba_sen_gnitz.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/axelrod/strategies/schwoba_sen_gnitz.py b/axelrod/strategies/schwoba_sen_gnitz.py index 4dfe12356..7deb2634a 100644 --- a/axelrod/strategies/schwoba_sen_gnitz.py +++ b/axelrod/strategies/schwoba_sen_gnitz.py @@ -29,7 +29,7 @@ def __init__(self) -> None: self.raubtier_erwacht = False self.schutz_modus_aktiviert = False - def strategy(self, opponent: Strategy) -> Action: + def strategy(self, opponent: Player) -> Action: runde = len(self.history) if runde == 0: return Action.C From 9892aa12ee5c7b5a9498842660ebb9741d8d97b7 Mon Sep 17 00:00:00 2001 From: Gerowasch Date: Mon, 5 Oct 2026 14:11:12 +0200 Subject: [PATCH 07/23] Update schwoba_sen_gnitz.py So, ich glaub das sollte nun alles haben. War in Pascal einfacher --- axelrod/strategies/schwoba_sen_gnitz.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/axelrod/strategies/schwoba_sen_gnitz.py b/axelrod/strategies/schwoba_sen_gnitz.py index 7deb2634a..6b8415803 100644 --- a/axelrod/strategies/schwoba_sen_gnitz.py +++ b/axelrod/strategies/schwoba_sen_gnitz.py @@ -22,6 +22,10 @@ class SchwobaSenGnitz(Player): "inspects_source": False, "manipulates_state": False, "manipulates_history": False, + "uses_length": False, + "uses_game": False, + "uses_tournament": False, + "uses_clones": False, } def __init__(self) -> None: From cb2135df3e0ec9b99c485de1b6994e0a11b1adff Mon Sep 17 00:00:00 2001 From: Gerowasch Date: Mon, 5 Oct 2026 15:11:53 +0200 Subject: [PATCH 08/23] Create turniertest.py Eigene Testumgebung --- turniertest.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 turniertest.py diff --git a/turniertest.py b/turniertest.py new file mode 100644 index 000000000..8a7fb1977 --- /dev/null +++ b/turniertest.py @@ -0,0 +1,25 @@ +import axelrod as axl +from axelrod.strategies.schwoba_sen_gnitz import SchwobaSenGnitz + +# 1. Wir laden deine Strategie und ein paar offizielle Gegner +players = [ + SchwobaSenGnitz(), + axl.TitForTat(), + axl.Grim(), # Das ist der Grudger + axl.Cooperator(), # AllC + axl.Defector(), # AllD + axl.Altenator() if hasattr(axl, 'Altenator') else axl.Alternator(), + axl.Random() +] + +# 2. Turnier starten: 1000 Runden, 5 Wiederholungen für stabile Zufallswerte +tournament = axl.Tournament(players=players, turns=1000, repetitions=5) +results = tournament.play() + +# 3. Ergebnis sauber im Terminal ausdrucken +print("\n" + "="*40) +print(" ERGEBNIS DES CT-RELOADED TURNIERS") +print("="*40) +for position, player in enumerate(results.ranked_names, start=1): + print(f"{position}. Platz: {player}") +print("="*40 + "\n") From d3b6d4e3f5e66684bc62542faf7ebdd360d3f224 Mon Sep 17 00:00:00 2001 From: Gerowasch Date: Mon, 5 Oct 2026 15:15:38 +0200 Subject: [PATCH 09/23] Create turniertest.yml --- .github/workflows/turniertest.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 .github/workflows/turniertest.yml diff --git a/.github/workflows/turniertest.yml b/.github/workflows/turniertest.yml new file mode 100644 index 000000000..bef98c13a --- /dev/null +++ b/.github/workflows/turniertest.yml @@ -0,0 +1,24 @@ +name: Mein eigenes Axelrod Turnier + +on: + workflow_dispatch: # Das erlaubt es dir, den Startknopf selbst im Browser zu drücken! + +jobs: + run-tournament: + runs-on: ubuntu-latest + steps: + - name: Code ausleihen + uses: actions/checkout@v4 + + - name: Python vorbereiten + uses: actions/setup-python@v5 + with: + python-version: '3.11' + + - name: Axelrod installieren + run: | + pip install --upgrade pip + pip install -e . + + - name: Turnier starten + run: python .py From 7528449b33acbfaea8a3cc2660da6577594d2233 Mon Sep 17 00:00:00 2001 From: Gerowasch Date: Mon, 5 Oct 2026 15:17:12 +0200 Subject: [PATCH 10/23] Update turniertest.yml --- .github/workflows/turniertest.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/turniertest.yml b/.github/workflows/turniertest.yml index bef98c13a..e211c3d34 100644 --- a/.github/workflows/turniertest.yml +++ b/.github/workflows/turniertest.yml @@ -21,4 +21,4 @@ jobs: pip install -e . - name: Turnier starten - run: python .py + run: python turiertest.py From 2c9dd2c0e2972b64fdd1dfe5d796ba48bed1bcc5 Mon Sep 17 00:00:00 2001 From: Gerowasch Date: Mon, 5 Oct 2026 15:20:24 +0200 Subject: [PATCH 11/23] Create tuniertestvoll.py Das grosse Hauen und Stechen --- tuniertestvoll.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 tuniertestvoll.py diff --git a/tuniertestvoll.py b/tuniertestvoll.py new file mode 100644 index 000000000..b680fbbe7 --- /dev/null +++ b/tuniertestvoll.py @@ -0,0 +1,22 @@ +import axelrod as axl + +# 1. Das ist die magische Zeile: Sie liest ALLE im Framework existierenden Strategien ein! +# Über 200 Stück, inklusive KIs, Klassikern und deiner neuen Strategie. +all_players = [s() for s in axl.all_strategies] + +print(f"Turnier wird vorbereitet mit {len(all_players)} Strategien...") + +# 2. Das riesige Turnier konfigurieren (1000 Runden) +# Wir nutzen 2 Wiederholungen (repetitions=2), damit die GitHub-Server nicht zu lange rechnen +tournament = axl.Tournament(players=all_players, turns=1000, repetitions=2) + +# 3. Das Turnier starten +results = tournament.play() + +# 4. Die Top 20 im Terminal ausgeben +print("\n" + "="*50) +print(" DAS OFFIZIELLE AXELROD HAIFISCHBECKEN (TOP 20)") +print("="*50) +for position, player in enumerate(results.ranked_names[:20], start=1): + print(f"{position}. Platz: {player}") +print("="*50 + "\n") From 9858a9fb305e32ca43d1bd0bd30fab1b802f258f Mon Sep 17 00:00:00 2001 From: Gerowasch Date: Mon, 5 Oct 2026 15:22:37 +0200 Subject: [PATCH 12/23] Create turniertestvoll.yml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Löst den grossen Krieg aus --- .github/workflows/turniertestvoll.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 .github/workflows/turniertestvoll.yml diff --git a/.github/workflows/turniertestvoll.yml b/.github/workflows/turniertestvoll.yml new file mode 100644 index 000000000..422c39c3a --- /dev/null +++ b/.github/workflows/turniertestvoll.yml @@ -0,0 +1,24 @@ +name: Mein eigenes Axelrod Turnier + +on: + workflow_dispatch: # Das erlaubt es dir, den Startknopf selbst im Browser zu drücken! + +jobs: + run-tournament: + runs-on: ubuntu-latest + steps: + - name: Code ausleihen + uses: actions/checkout@v4 + + - name: Python vorbereiten + uses: actions/setup-python@v5 + with: + python-version: '3.11' + + - name: Axelrod installieren + run: | + pip install --upgrade pip + pip install -e . + + - name: Turnier starten + run: python turiertestvoll.py From 29b48dac2511a6a46898864e831096d54f337c3a Mon Sep 17 00:00:00 2001 From: Gerowasch Date: Mon, 5 Oct 2026 15:24:38 +0200 Subject: [PATCH 13/23] Update turniertestvoll.yml --- .github/workflows/turniertestvoll.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/turniertestvoll.yml b/.github/workflows/turniertestvoll.yml index 422c39c3a..fd3738d7c 100644 --- a/.github/workflows/turniertestvoll.yml +++ b/.github/workflows/turniertestvoll.yml @@ -1,4 +1,4 @@ -name: Mein eigenes Axelrod Turnier +name: Axelrod Turnier hier geht die Post ab on: workflow_dispatch: # Das erlaubt es dir, den Startknopf selbst im Browser zu drücken! From c3c96b6d05680df19f77675ff43acb764a694473 Mon Sep 17 00:00:00 2001 From: Gerowasch Date: Mon, 5 Oct 2026 15:39:55 +0200 Subject: [PATCH 14/23] Update tuniertestvoll.py Andere Version wegen node20-Fehler --- tuniertestvoll.py | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/tuniertestvoll.py b/tuniertestvoll.py index b680fbbe7..bfd0f1e47 100644 --- a/tuniertestvoll.py +++ b/tuniertestvoll.py @@ -1,19 +1,24 @@ import axelrod as axl -# 1. Das ist die magische Zeile: Sie liest ALLE im Framework existierenden Strategien ein! -# Über 200 Stück, inklusive KIs, Klassikern und deiner neuen Strategie. -all_players = [s() for s in axl.all_strategies] +# 1. Sicherheitsfilter: Lädt nur die KIs und Strategien, die fehlerfrei starten +all_players = [] +for s in axl.all_strategies: + try: + player_instance = s() + all_players.append(player_instance) + except Exception: + continue # Überspringt fehlerhafte oder unvollständige Fremdstrategien -print(f"Turnier wird vorbereitet mit {len(all_players)} Strategien...") +print(f"Das große Haifischbecken wird vorbereitet mit {len(all_players)} Strategien...") -# 2. Das riesige Turnier konfigurieren (1000 Runden) -# Wir nutzen 2 Wiederholungen (repetitions=2), damit die GitHub-Server nicht zu lange rechnen -tournament = axl.Tournament(players=all_players, turns=1000, repetitions=2) +# 2. Rundenanzahl bleibt bei 1000, aber Wiederholungen (repetitions) auf 1 oder 2 setzen! +# Das spart den Servern Stunden an Rechenzeit, liefert aber ein klares Ergebnis. +tournament = axl.Tournament(players=all_players, turns=1000, repetitions=1) -# 3. Das Turnier starten +# 3. Turnier starten results = tournament.play() -# 4. Die Top 20 im Terminal ausgeben +# 4. Die Top 20 sauber ausgeben print("\n" + "="*50) print(" DAS OFFIZIELLE AXELROD HAIFISCHBECKEN (TOP 20)") print("="*50) From 40d9d6f5bee511154b5d96961517fb1ed6c6f0a3 Mon Sep 17 00:00:00 2001 From: Gerowasch Date: Mon, 5 Oct 2026 15:49:32 +0200 Subject: [PATCH 15/23] Update turniertest.yml bumpy und scipi noch dazu --- .github/workflows/turniertest.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/turniertest.yml b/.github/workflows/turniertest.yml index e211c3d34..b63a7c390 100644 --- a/.github/workflows/turniertest.yml +++ b/.github/workflows/turniertest.yml @@ -1,7 +1,7 @@ name: Mein eigenes Axelrod Turnier on: - workflow_dispatch: # Das erlaubt es dir, den Startknopf selbst im Browser zu drücken! + workflow_dispatch: jobs: run-tournament: @@ -15,10 +15,12 @@ jobs: with: python-version: '3.11' - - name: Axelrod installieren + - name: System-Abhängigkeiten und Axelrod installieren run: | - pip install --upgrade pip + pip install --upgrade pip setuptools wheel + # Das sind die fehlenden Pakete, die die KIs zum Überleben brauchen: + pip install numpy scipy pip install -e . - name: Turnier starten - run: python turiertest.py + run: python turniertest.py # Oder hier den Namen deiner großen Datei eintragen! From dca54fa52e448e0c95bbdac2a543adc73e1d837f Mon Sep 17 00:00:00 2001 From: Gerowasch Date: Mon, 5 Oct 2026 15:59:22 +0200 Subject: [PATCH 16/23] Update turniertest.py Tippfehler --- turniertest.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/turniertest.py b/turniertest.py index 8a7fb1977..93d1e0a8b 100644 --- a/turniertest.py +++ b/turniertest.py @@ -5,10 +5,10 @@ players = [ SchwobaSenGnitz(), axl.TitForTat(), - axl.Grim(), # Das ist der Grudger + axl.Grudger(), # Das ist der Grudger axl.Cooperator(), # AllC axl.Defector(), # AllD - axl.Altenator() if hasattr(axl, 'Altenator') else axl.Alternator(), + axl.Alternator() if hasattr(axl, 'Altenator') else axl.Alternator(), axl.Random() ] From 29b59fb82e57f9f377eab39ac52c8ee0e0414be8 Mon Sep 17 00:00:00 2001 From: Gerowasch Date: Mon, 5 Oct 2026 16:06:30 +0200 Subject: [PATCH 17/23] Update turniertestvoll.yml Numpy und Scipy einladen. --- .github/workflows/turniertestvoll.yml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/turniertestvoll.yml b/.github/workflows/turniertestvoll.yml index fd3738d7c..49c089854 100644 --- a/.github/workflows/turniertestvoll.yml +++ b/.github/workflows/turniertestvoll.yml @@ -1,7 +1,7 @@ -name: Axelrod Turnier hier geht die Post ab +name: Das große Axelrod Turnier on: - workflow_dispatch: # Das erlaubt es dir, den Startknopf selbst im Browser zu drücken! + workflow_dispatch: jobs: run-tournament: @@ -15,10 +15,12 @@ jobs: with: python-version: '3.11' - - name: Axelrod installieren + - name: System-Abhängigkeiten und Axelrod installieren run: | - pip install --upgrade pip + pip install --upgrade pip setuptools wheel + # Unverzichtbar für die KIs im großen Feld: + pip install numpy scipy pip install -e . - name: Turnier starten - run: python turiertestvoll.py + run: python turniertestvoll.py From 5c2b8bce22802864b8233dd9118eb82cc229b149 Mon Sep 17 00:00:00 2001 From: Gerowasch Date: Mon, 5 Oct 2026 16:07:31 +0200 Subject: [PATCH 18/23] Update tuniertestvoll.py --- tuniertestvoll.py | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/tuniertestvoll.py b/tuniertestvoll.py index bfd0f1e47..bdb139c60 100644 --- a/tuniertestvoll.py +++ b/tuniertestvoll.py @@ -1,24 +1,19 @@ import axelrod as axl -# 1. Sicherheitsfilter: Lädt nur die KIs und Strategien, die fehlerfrei starten all_players = [] for s in axl.all_strategies: try: player_instance = s() all_players.append(player_instance) except Exception: - continue # Überspringt fehlerhafte oder unvollständige Fremdstrategien + continue -print(f"Das große Haifischbecken wird vorbereitet mit {len(all_players)} Strategien...") +print(f"Das große Haifischbecken wird vorbereitet mit {len(all_players)} robusten Strategien...") -# 2. Rundenanzahl bleibt bei 1000, aber Wiederholungen (repetitions) auf 1 oder 2 setzen! -# Das spart den Servern Stunden an Rechenzeit, liefert aber ein klares Ergebnis. +# 1000 Runden, 1 Wiederholung für schnellen Cloud-Durchlauf tournament = axl.Tournament(players=all_players, turns=1000, repetitions=1) - -# 3. Turnier starten results = tournament.play() -# 4. Die Top 20 sauber ausgeben print("\n" + "="*50) print(" DAS OFFIZIELLE AXELROD HAIFISCHBECKEN (TOP 20)") print("="*50) From c35e699f5f190949eca97c0dce2425cf54e23daf Mon Sep 17 00:00:00 2001 From: Gerowasch Date: Mon, 5 Oct 2026 16:16:20 +0200 Subject: [PATCH 19/23] Update tuniertestvoll.py Bisschen sparsamer mit den Ressourcen umgehen --- tuniertestvoll.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/tuniertestvoll.py b/tuniertestvoll.py index bdb139c60..486549d4f 100644 --- a/tuniertestvoll.py +++ b/tuniertestvoll.py @@ -1,18 +1,19 @@ import axelrod as axl +# Wir erzeugen die Instanzen korrekt mit s() +# Falls eine kaputte Fremd-Strategie dabei ist, filtert der try-except Block sie aus all_players = [] for s in axl.all_strategies: try: - player_instance = s() - all_players.append(player_instance) + all_players.append(s()) except Exception: - continue + continue -print(f"Das große Haifischbecken wird vorbereitet mit {len(all_players)} robusten Strategien...") +print(f"Starte das große Turnier mit {len(all_players)} Strategien...") -# 1000 Runden, 1 Wiederholung für schnellen Cloud-Durchlauf +# 1000 Runden, 1 Wiederholung. Keine Extrafunktionen, um den RAM zu schonen. tournament = axl.Tournament(players=all_players, turns=1000, repetitions=1) -results = tournament.play() +results = tournament.play(progress_bar=False) print("\n" + "="*50) print(" DAS OFFIZIELLE AXELROD HAIFISCHBECKEN (TOP 20)") From e767b1733d23e30397f1a75800f0aabf47973da3 Mon Sep 17 00:00:00 2001 From: Gerowasch Date: Mon, 5 Oct 2026 16:28:18 +0200 Subject: [PATCH 20/23] Update turniertestvoll.yml --- .github/workflows/turniertestvoll.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/turniertestvoll.yml b/.github/workflows/turniertestvoll.yml index 49c089854..8d4e6a089 100644 --- a/.github/workflows/turniertestvoll.yml +++ b/.github/workflows/turniertestvoll.yml @@ -23,4 +23,4 @@ jobs: pip install -e . - name: Turnier starten - run: python turniertestvoll.py + run: python Axelrod/turniertestvoll.py From be37c5febac81354905dafbf99ef1550ac4364f8 Mon Sep 17 00:00:00 2001 From: Gerowasch Date: Mon, 5 Oct 2026 16:31:56 +0200 Subject: [PATCH 21/23] Rename tuniertestvoll.py to turniertestvoll.py Mal den Namen so angepasst wie der das sucht --- tuniertestvoll.py => turniertestvoll.py | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename tuniertestvoll.py => turniertestvoll.py (100%) diff --git a/tuniertestvoll.py b/turniertestvoll.py similarity index 100% rename from tuniertestvoll.py rename to turniertestvoll.py From fc4a98d38b7ff37e7065b0fbc38bf97d221b491b Mon Sep 17 00:00:00 2001 From: Gerowasch Date: Mon, 5 Oct 2026 16:36:52 +0200 Subject: [PATCH 22/23] Update turniertestvoll.yml Da wirste doch zum Elch --- .github/workflows/turniertestvoll.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/turniertestvoll.yml b/.github/workflows/turniertestvoll.yml index 8d4e6a089..49c089854 100644 --- a/.github/workflows/turniertestvoll.yml +++ b/.github/workflows/turniertestvoll.yml @@ -23,4 +23,4 @@ jobs: pip install -e . - name: Turnier starten - run: python Axelrod/turniertestvoll.py + run: python turniertestvoll.py From d10119d443393a9e37d4a4b246bbce7dc5bf8a28 Mon Sep 17 00:00:00 2001 From: Gerowasch Date: Mon, 5 Oct 2026 22:44:53 +0200 Subject: [PATCH 23/23] Update turniertestvoll.py Weniger Runden (200 statt 1000) damit das Ding vielleicht in sechs Stunden fertig wird --- turniertestvoll.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/turniertestvoll.py b/turniertestvoll.py index 486549d4f..e658e6d1a 100644 --- a/turniertestvoll.py +++ b/turniertestvoll.py @@ -12,7 +12,7 @@ print(f"Starte das große Turnier mit {len(all_players)} Strategien...") # 1000 Runden, 1 Wiederholung. Keine Extrafunktionen, um den RAM zu schonen. -tournament = axl.Tournament(players=all_players, turns=1000, repetitions=1) +tournament = axl.Tournament(players=all_players, turns=200, repetitions=1) results = tournament.play(progress_bar=False) print("\n" + "="*50)