Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Random simulation
- def roll_out(self):
- self.visits += 1
- settings.path.append(int(self.index))
- board = copy.deepcopy(self.state) # starting state of board
- player = Player(self.state, self.color)
- opponent = Player(board, self.opp)
- if checkmate(board, self.color): # is the starting state already checkmate?
- value, self.win = 20, True
- settings.value[self.color] = value
- return
- if opponent.draw: # is the starting state already a draw?
- value, self.draw = 5, True
- settings.value[self.color] = value
- return
- for i in range(1000):
- self.random_move(opponent, board) # moves a random piece
- player.set_moves(board) # update our legal moves
- if player.draw:
- value = 5
- settings.value[self.color] = value
- return
- if opponent.won:
- value = 0
- settings.value[self.color] = value
- return
- if len(opponent.pieces) == 1 and len(player.pieces) == 1:
- value = 5
- settings.value[self.color] = value
- return
- self.random_move(player, board) # moves a random piece
- opponent.set_moves(board) # update opponents legal moves
- if opponent.draw:
- value = 5
- settings.value[self.color] = value
- return
- if player.won:
- value = 20
- settings.value[self.color] = value
- return
- if len(player.pieces) == 1 and len(opponent.pieces) == 1:
- value = 5
- settings.value[self.color] = value
- return
Add Comment
Please, Sign In to add comment