Best Python code snippet using autotest_python
HeavyABPlayer.py
Source:HeavyABPlayer.py  
...78    # TODO: add here the utility, succ, and perform_move functions used in AlphaBeta algorithm79    def succ_phase1_player(self, state):80        states = []81        soldier_to_place = 9 - state.playerSoldiersToPlace82        save_state_pre_dir = state.__copy__()83        for pos in range(24):84            if state.board[pos] == 0:85                state.board[pos] = 186                state.playerPositions[soldier_to_place] = pos87                state.playerSoldiersToPlace -= 188                state.playerSoldiersRemaining += 189                if self.is_mill(position=pos, board=state.board):90                    save_state_pre_kill = state.__copy__()91                    for rival in range(9 - state.rivalSoldiersToPlace):92                        if state.rivalPositions[rival] >= 0:93                            tmp = state.rivalPositions[rival]94                            state.board[tmp] = 095                            state.rivalPositions[rival] = -296                            state.rivalSoldiersRemaining -= 197                            if state.direction is None:98                                state.direction = (pos, soldier_to_place, tmp)99                            state.playerIncompleteMills, state.playerAvailableMoves, state.rivalIncompleteMills, \100                            state.rivalAvailableMoves = self.moves_and_incomp_mills_calc(state=state)101                            states.append(state.__copy__())102                        state = save_state_pre_kill.__copy__()103                else:104                    if state.direction is None:105                        state.direction = (pos, soldier_to_place, -1)106                    state.playerIncompleteMills, state.playerAvailableMoves, state.rivalIncompleteMills, \107                    state.rivalAvailableMoves = self.moves_and_incomp_mills_calc(state=state)108                    states.append(state.__copy__())109            state = save_state_pre_dir.__copy__()110        return states111    def succ_phase1_rival(self, state):112        states = []113        soldier_to_place = np.where(state.rivalPositions == -1)114        save_state_pre_dir = state.__copy__()115        for pos in range(24):116            if state.board[pos] == 0:117                state.board[pos] = 2118                state.rivalPositions[soldier_to_place] = pos119                state.rivalSoldiersToPlace -= 1120                state.rivalSoldiersRemaining += 1121                if self.is_mill(pos, state.board):122                    save_state_pre_kill = state.__copy__()123                    for player in range(9 - state.playerSoldiersToPlace):124                        if state.playerPositions[player] >= 0:125                            tmp = state.playerPositions[player]126                            state.board[tmp] = 0127                            state.playerPositions[player] = -2128                            state.playerSoldiersRemaining -= 1129                            if state.direction is None:130                                state.direction = (pos, soldier_to_place, tmp)131                            state.playerIncompleteMills, state.playerAvailableMoves, state.rivalIncompleteMills, \132                            state.rivalAvailableMoves = self.moves_and_incomp_mills_calc(state=state)133                            states.append(state.__copy__())134                        state = save_state_pre_kill.__copy__()135                else:136                    if state.direction is None:137                        state.direction = (pos, soldier_to_place, -1)138                    state.playerIncompleteMills, state.playerAvailableMoves, state.rivalIncompleteMills, \139                    state.rivalAvailableMoves = self.moves_and_incomp_mills_calc(state=state)140                    states.append(state.__copy__())141            state = save_state_pre_dir.__copy__()142        return states143    def succ_phase2_player(self, state):144        states = []145        save_state_pre_sold = state.__copy__()146        for soldier in range(9):147            soldier_pos = state.playerPositions[soldier]148            if soldier_pos >= 0:149                save_state_pre_dir = state.__copy__()150                for pos in self.directions(soldier_pos):151                    if state.board[pos] == 0:152                        state.playerPositions[soldier] = pos153                        state.board[soldier_pos] = 0154                        state.board[pos] = 1155                        if self.is_mill(pos, state.board):156                            save_state_pre_kill = state.__copy__()157                            for rival in range(9 - state.rivalSoldiersToPlace):158                                if state.rivalPositions[rival] >= 0:159                                    tmp = state.rivalPositions[rival]160                                    state.board[tmp] = 0161                                    state.rivalPositions[rival] = -2162                                    state.rivalSoldiersRemaining -= 1163                                    if state.direction is None:164                                        state.direction = (pos, soldier, tmp)165                                    state.playerIncompleteMills, state.playerAvailableMoves, \166                                    state.rivalIncompleteMills, state.rivalAvailableMoves = \167                                        self.moves_and_incomp_mills_calc(state=state)168                                    states.append(state.__copy__())169                                state = save_state_pre_kill.__copy__()170                        else:171                            if state.direction is None:172                                state.direction = (pos, soldier, -1)173                            state.playerIncompleteMills, state.playerAvailableMoves, \174                            state.rivalIncompleteMills, state.rivalAvailableMoves = \175                                self.moves_and_incomp_mills_calc(state=state)176                            states.append(state.__copy__())177                    state = save_state_pre_dir.__copy__()178            state = save_state_pre_sold.__copy__()179        return states180    def succ_phase2_rival(self, state):181        states = []182        save_state_pre_sold = state.__copy__()183        for soldier in range(9):184            soldier_pos = state.rivalPositions[soldier]185            if soldier_pos >= 0:186                save_state_pre_dir = state.__copy__()187                for pos in self.directions(soldier_pos):188                    if state.board[pos] == 0:189                        state.rivalPositions[soldier] = pos190                        state.board[soldier_pos] = 0191                        state.board[pos] = 2192                        if self.is_mill(pos, state.board):193                            save_state_pre_kill = state.__copy__()194                            for player in range(9 - state.playerSoldiersToPlace):195                                if state.playerPositions[player] >= 0:196                                    tmp = state.playerPositions[player]197                                    state.board[tmp] = 0198                                    state.playerPositions[player] = -2199                                    state.playerSoldiersRemaining -= 1200                                    if state.direction is None:201                                        state.direction = (pos, soldier, tmp)202                                    state.playerIncompleteMills, state.playerAvailableMoves, \203                                    state.rivalIncompleteMills, state.rivalAvailableMoves = \204                                        self.moves_and_incomp_mills_calc(state=state)205                                    states.append(state.__copy__())206                                state = save_state_pre_kill.__copy__()207                        else:208                            if state.direction is None:209                                state.direction = (pos, soldier, -1)210                            state.playerIncompleteMills, state.playerAvailableMoves, \211                            state.rivalIncompleteMills, state.rivalAvailableMoves = \212                                self.moves_and_incomp_mills_calc(state=state)213                            states.append(state.__copy__())214                    state = save_state_pre_dir.__copy__()215            state = save_state_pre_sold.__copy__()216        return states217        ########## helper functions for AlphaBeta algorithm ##########218    def goal(self, state):219        return (state.rivalSoldiersToPlace == 0 and state.playerSoldiersToPlace == 0) and \220               (((state.playerSoldiersRemaining < 3 or state.rivalSoldiersRemaining < 3 or221                  state.playerAvailableMoves == 0 or state.rivalAvailableMoves == 0)))222    def succ(self, state):223        next_state = state.__copy__()224        if state.turn:225            next_state.turn = not next_state.turn226            if state.playerSoldiersToPlace > 0:227                return self.succ_phase1_player(next_state)228            else:229                return self.succ_phase2_player(next_state)230        else:231            next_state.turn = not next_state.turn232            if state.rivalSoldiersToPlace > 0:233                return self.succ_phase1_rival(next_state)234            else:235                return self.succ_phase2_rival(next_state)236    def diff_mill_count(self, state):237        count_1 = 0...LightABPlayer.py
Source:LightABPlayer.py  
...80    ########## helper functions in class ##########81    def succ_phase1_player(self, state):82        states = []83        soldier_to_place = 9 - state.playerSoldiersToPlace84        save_state_pre_dir = state.__copy__()85        for pos in range(24):86            if state.board[pos] == 0:87                state.board[pos] = 188                state.playerPositions[soldier_to_place] = pos89                state.playerSoldiersToPlace -= 190                state.playerSoldiersRemaining += 191                if self.is_mill(position=pos, board=state.board):92                    save_state_pre_kill = state.__copy__()93                    for rival in range(9 - state.rivalSoldiersToPlace):94                        if state.rivalPositions[rival] >= 0:95                            tmp = state.rivalPositions[rival]96                            state.board[tmp] = 097                            state.rivalPositions[rival] = -298                            state.rivalSoldiersRemaining -= 199                            if state.direction is None:100                                state.direction = (pos, soldier_to_place, tmp)101                            state.playerIncompleteMills, state.playerAvailableMoves, state.rivalIncompleteMills, \102                                state.rivalAvailableMoves = self.moves_and_incomp_mills_calc(state=state)103                            states.append(state.__copy__())104                        state = save_state_pre_kill.__copy__()105                else:106                    if state.direction is None:107                        state.direction = (pos, soldier_to_place, -1)108                    state.playerIncompleteMills, state.playerAvailableMoves, state.rivalIncompleteMills,\109                        state.rivalAvailableMoves = self.moves_and_incomp_mills_calc(state=state)110                    states.append(state.__copy__())111            state = save_state_pre_dir.__copy__()112        return states113    def succ_phase1_rival(self, state):114        states = []115        soldier_to_place = np.where(state.rivalPositions == -1)116        save_state_pre_dir = state.__copy__()117        for pos in range(24):118            if state.board[pos] == 0:119                state.board[pos] = 2120                state.rivalPositions[soldier_to_place] = pos121                state.rivalSoldiersToPlace -= 1122                state.rivalSoldiersRemaining += 1123                if self.is_mill(pos, state.board):124                    save_state_pre_kill = state.__copy__()125                    for player in range(9 - state.playerSoldiersToPlace):126                        if state.playerPositions[player] >= 0:127                            tmp = state.playerPositions[player]128                            state.board[tmp] = 0129                            state.playerPositions[player] = -2130                            state.playerSoldiersRemaining -= 1131                            if state.direction is None:132                                state.direction = (pos, soldier_to_place, tmp)133                            state.playerIncompleteMills, state.playerAvailableMoves, state.rivalIncompleteMills, \134                                state.rivalAvailableMoves = self.moves_and_incomp_mills_calc(state=state)135                            states.append(state.__copy__())136                        state = save_state_pre_kill.__copy__()137                else:138                    if state.direction is None:139                        state.direction = (pos, soldier_to_place, -1)140                    state.playerIncompleteMills, state.playerAvailableMoves, state.rivalIncompleteMills,\141                        state.rivalAvailableMoves = self.moves_and_incomp_mills_calc(state=state)142                    states.append(state.__copy__())143            state = save_state_pre_dir.__copy__()144        return states145    def succ_phase2_player(self, state):146        states = []147        save_state_pre_sold = state.__copy__()148        for soldier in range(9):149            soldier_pos = state.playerPositions[soldier]150            if soldier_pos >= 0:151                save_state_pre_dir = state.__copy__()152                for pos in self.directions(soldier_pos):153                    if state.board[pos] == 0:154                        state.playerPositions[soldier] = pos155                        state.board[soldier_pos] = 0156                        state.board[pos] = 1157                        if self.is_mill(pos, state.board):158                            save_state_pre_kill = state.__copy__()159                            for rival in range(9 - state.rivalSoldiersToPlace):160                                if state.rivalPositions[rival] >= 0:161                                    tmp = state.rivalPositions[rival]162                                    state.board[tmp] = 0163                                    state.rivalPositions[rival] = -2164                                    state.rivalSoldiersRemaining -= 1165                                    if state.direction is None:166                                        state.direction = (pos, soldier, tmp)167                                    state.playerIncompleteMills, state.playerAvailableMoves, \168                                        state.rivalIncompleteMills, state.rivalAvailableMoves = \169                                        self.moves_and_incomp_mills_calc(state=state)170                                    states.append(state.__copy__())171                                state = save_state_pre_kill.__copy__()172                        else:173                            if state.direction is None:174                                state.direction = (pos, soldier, -1)175                            state.playerIncompleteMills, state.playerAvailableMoves, \176                                state.rivalIncompleteMills, state.rivalAvailableMoves = \177                                self.moves_and_incomp_mills_calc(state=state)178                            states.append(state.__copy__())179                    state = save_state_pre_dir.__copy__()180            state = save_state_pre_sold.__copy__()181        return states182    def succ_phase2_rival(self, state):183        states = []184        save_state_pre_sold = state.__copy__()185        for soldier in range(9):186            soldier_pos = state.rivalPositions[soldier]187            if soldier_pos >= 0:188                save_state_pre_dir = state.__copy__()189                for pos in self.directions(soldier_pos):190                    if state.board[pos] == 0:191                        state.rivalPositions[soldier] = pos192                        state.board[soldier_pos] = 0193                        state.board[pos] = 2194                        if self.is_mill(pos, state.board):195                            save_state_pre_kill = state.__copy__()196                            for player in range(9 - state.playerSoldiersToPlace):197                                if state.playerPositions[player] >= 0:198                                    tmp = state.playerPositions[player]199                                    state.board[tmp] = 0200                                    state.playerPositions[player] = -2201                                    state.playerSoldiersRemaining -= 1202                                    if state.direction is None:203                                        state.direction = (pos, soldier, tmp)204                                    state.playerIncompleteMills, state.playerAvailableMoves, \205                                        state.rivalIncompleteMills, state.rivalAvailableMoves = \206                                        self.moves_and_incomp_mills_calc(state=state)207                                    states.append(state.__copy__())208                                state = save_state_pre_kill.__copy__()209                        else:210                            if state.direction is None:211                                state.direction = (pos, soldier, -1)212                            state.playerIncompleteMills, state.playerAvailableMoves, \213                                state.rivalIncompleteMills, state.rivalAvailableMoves = \214                                self.moves_and_incomp_mills_calc(state=state)215                            states.append(state.__copy__())216                    state = save_state_pre_dir.__copy__()217            state = save_state_pre_sold.__copy__()218        return states219    ########## helper functions for AlphaBeta algorithm ##########220    def goal(self, state):221        return (state.rivalSoldiersToPlace == 0 and state.playerSoldiersToPlace == 0) and \222               (((state.playerSoldiersRemaining < 3 or state.rivalSoldiersRemaining < 3 or223                  state.playerAvailableMoves == 0 or state.rivalAvailableMoves == 0)))224    def succ(self, state):225        next_state = state.__copy__()226        if state.turn:227            next_state.turn = not next_state.turn228            if state.playerSoldiersToPlace > 0:229                return self.succ_phase1_player(next_state)230            else:231                return self.succ_phase2_player(next_state)232        else:233            next_state.turn = not next_state.turn234            if state.rivalSoldiersToPlace > 0:235                return self.succ_phase1_rival(next_state)236            else:237                return self.succ_phase2_rival(next_state)238    def utility(self, state):239        if self.goal(state) and (state.playerSoldiersRemaining < 3 or state.playerAvailableMoves == 0):...Node.py
Source:Node.py  
...54    def __add__(self, other):55        # adding a number to a tree means56        # setting the current tree's operator as the +57        # setting the left as the current tree58        newNode = self.__copy__()59        newNode.left = Node(newNode.op, newNode.left, newNode.right)60        newNode.right = Num(other) if type(other) in [float, int] else other61        newNode.op = "+"62        return newNode636465    def __sub__(self, other):66        newNode = self.__copy__()67        newNode.left = Node(newNode.op, newNode.left, newNode.right)68        newNode.right = Num(other) if type(other) in [float, int] else other69        newNode.op = "-"70        return newNode7172    def __mul__(self, other):73        newNode = self.__copy__()74        newNode.left = Node(newNode.op, newNode.left, newNode.right)75        newNode.right = Num(other) if type(other) in [float, int] else other76        newNode.op = "*"77        return newNode7879    def __truediv__(self, other):80        newNode = self.__copy__()81        newNode.left = Node(newNode.op, newNode.left, newNode.right)82        newNode.right = Num(other) if type(other) in [float, int] else other83        newNode.op = "/"84        return newNode8586    def __iadd__(self, other):87        return self.__add__(other)8889    def __isub__(self, other):90        return self.__sub__(other)9192    def __imul__(self, other):93        return self.__mul__(other)9495    def __itruediv__(self, other):96        return self.__truediv__(other)9798    def __radd__(self, other):99        return other.__add__(self)100101    def __rsub__(self, other):102        return other.__sub__(self)103104    def __rmul__(self, other):105        return other.__mul__(self)106107    def __rdiv__(self, other):108        return other.__div__(self)109110    def __copy__(self):111        lft = self.left.__copy__()112        rgt = self.right.__copy__()113        return Node(self.op, lft, rgt)114115class Num:116    def __init__(self, val):117        self.val = val118119    def evaluate(self):120        return self.val121122    def __repr__(self):123        return self.__str__()124125    def __str__(self):126        return f"{self.val}"127128    def __int__(self):129        return round(self.val)130131    def __add__(self, other):132        return Node("+", self.__copy__(), other.__copy__())133134    def __sub__(self, other):135        return Node("-", self.__copy__(), other.__copy__())136137    def __mul__(self, other):138        return Node("*", self.__copy__(), other.__copy__())139140    def __truediv__(self, other):141        return Node("/", self.__copy__(), other.__copy__())142143    def __iadd__(self, other):144        return self.__add__(other)145146    def __isub__(self, other):147        return self.__sub__(other)148149    def __imul__(self, other):150        return self.__mul__(other)151152    def __itruediv__(self, other):153        return self.__truediv__(other)154155    def __copy__(self):156        return Num(self.val)157158159class Var:160    def __init__(self, name):161        self.op = name162163    def evaluate(self):164        return f"{self.op}"165166    def __copy__(self):167        return Var(self.op)168169    def __str__(self):
...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
