import numpy as np from state import f_state_slices class APlayer(object): def __init__(self, mark): self.mark = mark self.other_mark = 'O' if 'O' in mark: self.other_mark = 'X' self.state = None self.state_last = None def set_debug(self, with_debug): pass def move(self, state: np.array): return state, False def to_state(self, state: np.array, move): state.reshape(state.size)[move] = self.mark return state def reward(self, value): pass def new_game(self): pass def has_won(self, state: np.array): result = False ref = [self.mark, self.mark, self.mark] for f_state_slice in f_state_slices(): if np.all(state[f_state_slice] == ref): result = True break return result