def AddToTree(board19, Candidate, player): temp = [] if (player == 10): enemy = 20 else: enemy = 10 for i in board19: temp += [i] evalTree = Tree(temp) for i in Candidate: for q in i[1]: tempboard = genNewBoard(temp, [i[0], q], player) tempTree = genTree(tempboard) tempCandidate = CandidateMoves(tempboard, enemy) for a in tempCandidate: for b in a[1]: temp2 = genNewBoard(tempboard, [a[0], b], enemy) temp2Tree = genTree(temp2) Candidate2 = CandidateMoves(temp2, player) for c in Candidate2: for d in c[1]: temp3 = genNewBoard(temp2, [c[0], d], player) temp3Tree = genTree(temp3) temp2Tree.AddSuccessor(temp3Tree) tempTree.AddSuccessor(temp2Tree) evalTree.AddSuccessor(tempTree) return evalTree
def getGameTree(board, player, depth): if depth == 0: return Tree((None, evalBoard(board, player))) if player == 10: opp = 20 else: opp = 10 nodeTree = Tree((None, None)) # move, score of board CM = CandidateMoves(board, player) for i in CM: for q in i[1]: move = [i[1], q] tempBoard = genNewBoard(board, move, player) nodeTree.AddSuccessor(getGameTree(tempBoard, player, depth - 1))