From 5232310e3e4e4cbc7a0b9d575215f8b5f8fa94b3 Mon Sep 17 00:00:00 2001 From: MrGeorgen Date: Wed, 6 Aug 2025 11:59:31 +0200 Subject: [PATCH] wins 100% with optimal strategy --- nimm.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/nimm.py b/nimm.py index a71194b..3715785 100644 --- a/nimm.py +++ b/nimm.py @@ -13,7 +13,7 @@ def optimal_move(): return n return random.randint(1, 3) # Wenn keine perfekte Wahl, dann irgendein Zug -def ki_move(): +def ki_move(lastMove): global state antiMoves = lostMoves.get(state) if antiMoves == None: @@ -24,6 +24,9 @@ def ki_move(): for i, good in enumerate(availableMoves): if good: return i + 1 + + # Es gibt keine guten Züge mehr, also muss der letzte Zug schlecht gewesen sein. + addLostMove(lastMove.state, lastMove.move) return random.randint(1, 3) def makeMove(move): # gibt True zurück, wenn der Spieler verloren hat @@ -39,6 +42,7 @@ def addLostMove(state, move): if moves == None: moves = [] moves.append(move) + lostMoves[state] = moves def game(train): global state @@ -46,7 +50,7 @@ def game(train): lastMove = None while True: # KI beginnt, sonst kann sie nicht gewinnen - move = ki_move() + move = ki_move(lastMove) lost = makeMove(move) if lost: if train: