Initial commit

This commit is contained in:
2025-08-28 04:58:26 +00:00
commit b38519b081
15 changed files with 523 additions and 0 deletions

34
nim/game_stub.py Normal file
View File

@@ -0,0 +1,34 @@
class NimGameStub:
"""A stub is a minimal version of a class which stands in for the
real class, which hasn't yet been written. The stub has all the correct
methods, and their inputs and outputs are the right kind of thing,
but it doesn't really do anything.
"""
def get_initial_state(self):
return {
"board": [1, 3, 5, 7],
"first_player": True
}
def get_next_state(self, state, action):
next_state = {
"board": state["board"].copy(),
"first_player": not state["first_player"],
}
return next_state
def get_actions(self, state):
return [
(0, 0),
(1, 0), (1, 1),
(2, 0), (2, 1), (2, 2), (3, 0), (3, 1), (3, 2), (3, 3),
]
def get_reward(self, state):
return 0
def is_over(self, state):
return False
def get_objective(self, state):
return max if state["first_player"] else min