diff --git a/__pycache__/nim.cpython-313.pyc b/__pycache__/nim.cpython-313.pyc index 181141d..af19071 100644 Binary files a/__pycache__/nim.cpython-313.pyc and b/__pycache__/nim.cpython-313.pyc differ diff --git a/nim.py b/nim.py index bce6111..ad1a42c 100644 --- a/nim.py +++ b/nim.py @@ -95,15 +95,17 @@ class NimAI(): float: The highest Q-value among available actions. Returns 0 if no actions are available. """ + state = tuple(state) # actions = [] - # for q in self.q.key: - # if q[0] == state: + # for q in self.q: + # print(q) + # if q[0] == tuple(state): # actions.append(q[1]) - actions = tuple([key[1] for key in self.q.keys() if key[0] == state]) - try: - return max([q for q in self.q[tuple(state), actions]]) - except: - return 0 + actions = [key[1] for key in self.q if key[0] == state] + # print(actions) + # print(self.q[state, action] for action in actions) + # print(max(self.q[state, action] for action in actions)) + return 0 if actions == [] else max(self.q[state, action] for action in actions) def choose_action(self, state, epsilon=True): """ diff --git a/test.py b/test.py index dfa2c8b..3a974b3 100644 --- a/test.py +++ b/test.py @@ -19,6 +19,8 @@ def test_update_q_value(ai): def test_best_future_reward(ai): print("\n--- Testing best_future_reward ---") + print(ai.best_future_reward([1,1,1,0])) + print(ai.best_future_reward([1,1,1,1])) def test_choose_action(ai):