39 lines
708 B
Python
39 lines
708 B
Python
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
|
|
|
|
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 new_game(self):
|
|
pass
|
|
|
|
def end_game(self, reward):
|
|
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
|