def pickMaxMin(self, board, marker): moves = board.getMoves() pairs = [] for (x, y) in moves: temp = board.clone() temp.move(x, y, marker) if temp.finished(): score = self.evalBoard(temp) else: pick = self.pickMaxMin(temp, self.flip(marker)) score = pick[1] pairs.append(((x, y), score)) pairs.sort(key=lambda x: x[1]) if marker == self.marker: index = -1 else: index = 0 return pairs[index]
def pickMaxMin(self, board, marker): moves = board.getMoves() pairs = [] for (x,y) in moves: temp = board.clone() temp.move(x,y,marker) if temp.finished(): score = self.evalBoard(temp) else: pick = self.pickMaxMin(temp, self.flip(marker)) score = pick[1] pairs.append(((x,y),score)) pairs.sort(key=lambda x:x[1]) if marker == self.marker: index = -1 else: index = 0 return pairs[index]
def getMove(self, board): options = board.getMoves() return self.oracle.choice(options)