###前提・実現したいこと
minimax法が機能する事
###発生している問題・エラーメッセージ
この↓のコードは評価値を返す関数なんですけど、評価値だけでなくその最善手も返す(例えば評価値が最小であったself.board[1][2])ようにするにはどうしたらよいのでしょうか
def think_kuro(self, n): value = -10 for y in range(1,4): for x in range(1,4): if(self.board[y][x] == -1): self.board[y][x] = self.kuro self.goban[y][x] = self.kuro #勝敗の判定 v = self.check_winner()#先手が勝つなら+1 後手が勝つなら-1 それ以外は0に設定 #決着していなければ次の番へ渡す if(v == self.draw and n < self.size - 1): v = self.think_siro(n+1) if(v > value): value = v self.board[y][x] = -1 self.goban[y][x] = self.space return value def think_siro(self, n): value = 10 for y in range(1,4): for x in range(1,4): if(self.board[y][x] == -1): self.board[y][x] = self.siro self.goban[y][x] = self.siro #勝敗の判定 v = self.check_winner() #実装 #決着していなければ次の番へ渡す if(v == self.draw and n < self.size -1): v = self.think_kuro(n+1) if(v < value): #print(self.board) value = v self.board[y][x] = -1 self.goban[y][x] = self.space return value #評価値を返す
最善手を返すようにはどうしたらよいかに変更
あなたの回答
tips
プレビュー