-
Notifications
You must be signed in to change notification settings - Fork 17
/
RolloutPlayer.py
26 lines (22 loc) · 807 Bytes
/
RolloutPlayer.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# -*- coding: utf-8 -*-
from Player import Player
from RolloutMCTS import RolloutMCTS
'''
Random Rollout Player using Random Guided MCTS Searching
'''
class RolloutPlayer(Player):
def __init__(self, nplays=1000, c_puct=5, player_no=0, player_name=""):
Player.__init__(self, player_no, player_name)
self.mcts = RolloutMCTS(nplays, c_puct)
def reset_player(self):
self.mcts.reuse(-1)
def play(self, board, **kwargs):
sensible_moves = board.availables
if len(sensible_moves) > 0:
move = self.mcts.simulate(board)
self.mcts.reuse(-1)
return move
else:
print("WARNING: the board is full")
def __str__(self):
return "RolloutPlayer {}{}".format(self.get_player_no(), self.get_player_name())