Я пытаюсь спроектировать Трое Мужчин Морриса, используя алгоритм минимакса. Я немного застрял о том, как выполнить обмен между пустой и заполненной позицией. Я пытался, но я застрял в бесконечной рекурсии. У кого-нибудь есть идеи, как ограничить глубину рекурсии. Вот мой фрагмент кода.
for i in range(len(row)):
pc_list = np.array(checkAdjacent(row[i],column[i]))
for key in pc_list:
if state[key[0]-1,key[1]-1] == 2:
rstate = np.copy(state)
state[key[0]-1,key[1]-1],state[row[i],column[i]] =state[row[i],column[i]], state[key[0]-1,key[1]-1]
nextstate = np.copy(state)
scor,nullstate = minimax(nextstate,depth+1,False,alpha,beta,flag)
state = np.copy(rstate)
if scor > bestscore:
bestscore = scor
returnstate = np.copy(nextstate)
return bestscore,returnstate