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