Files
tic_tac_toe/state.py
T
2024-06-10 20:48:50 +02:00

37 lines
696 B
Python

import numpy as np
def get_potential_moves(state: np.array) -> np.array:
st = state.reshape(state.size)
indices = [idx for idx, s in enumerate(st) if '-' in s]
return np.array(indices)
def f_state_slices():
nr = 3
nc = 3
result = []
# Create row finishing states
d1 = ()
d2_r = ()
for r in range(0, nr):
d1 += (r,)
for c in range(0, nc):
d2 = (c,) * nc
result.append((d1, d2))
# Create column finishing states
for c in range(0, nc):
d2 = (c,) * nc
result.append((d2, d1))
for c in range(0, nc):
d2_r += (nc - c - 1,)
# Create diagonal finishing states #1
result.append((d1, d1))
# Create diagonal finishing states #2
result.append((d1, d2_r))
return result