Add sume utility methods

This commit is contained in:
Yorick Barbanneau 2023-12-21 21:45:19 +01:00
parent d480887a1d
commit 5f69c5ed9f

View file

@ -20,7 +20,7 @@ class PlayerEngine:
self.options = options
self.interrupt_search = False
self.logger.info("Init engine {}, options:{}".format(
self.__class__.__name__,
self._get_class_name(),
self.options
))
@ -30,8 +30,8 @@ class PlayerEngine:
"""
def get_move(self, board):
self.logger.info("engine: {} - player:{}".format(
self.__class__.__name__,
self.get_player_name(self.player)
self._get_class_name(),
self._get_player_name(self.player)
))
"""
@ -50,10 +50,25 @@ class PlayerEngine:
@param player: int
@return: string
"""
@staticmethod
def get_player_name(player):
return 'White (O)' if player == 2 else 'Black (X)'
def _get_player_name(self, player):
return 'White (O)' if self.player == 2 else 'Black (X)'
def _show_stats_info(self, depth, nodes, leafs, heuristic):
self.logger.info(" -> stats: depth:{:.>2} | node:{:.>6} | leafs:{:.>6} | heuristic:{:.>4}".format(
depth,
nodes,
leafs,
heuristic
))
def _show_better_move(self, move, heuristic):
self.logger.debug(" -> Found a better move: {},{} | heuristic:{}".format(
move[1],move[2],
heuristic
))
def _get_class_name(self):
return self.__class__.__name__
"""
Random game engine
@ -156,19 +171,12 @@ class MinmaxPlayerEngine(PlayerEngine):
if v > value:
value = v
move = m
self.logger.debug("\tfound a better move: {} (heuristic:{})".format(
move,
value
))
self._show_better_move(move, value)
nodes += n
leafs += l
board.pop()
self.logger.info("Tree statistics:\n\tnodes:{}\n\tleafs:{}\n\theuristic:{}".format(
nodes,
leafs,
value
))
self._show_stats_info(depth, nodes, leafs, value)
return move, value
"""
@ -242,16 +250,9 @@ class AlphabetaPlayerEngine(PlayerEngine):
if value >= alpha:
alpha = value
move = m
self.logger.debug("\t-> found a better move: {} | heuristic:{})".format(
move,
alpha
))
self._show_stats_info(move, alpha)
self.logger.info("Tree statistics:\n\tnodes:{}\n\tleafs:{}\n\theuristic:{}".format(
nodes,
leafs,
alpha
))
self._show_stats_info(depth, nodes, leafs, value)
return move, alpha
"""