Пример #1
0
    def test_parsing_9x9(self):
        self.assertEqual(coords.from_sgf('aa'), (0, 0))
        self.assertEqual(coords.from_sgf('ac'), (2, 0))
        self.assertEqual(coords.from_sgf('ca'), (0, 2))
        self.assertEqual(coords.from_sgf(''), None)
        self.assertEqual(coords.to_sgf(None), '')
        self.assertEqual('aa', coords.to_sgf(coords.from_sgf('aa')))
        self.assertEqual('sa', coords.to_sgf(coords.from_sgf('sa')))
        self.assertEqual((1, 17), coords.from_sgf(coords.to_sgf((1, 17))))
        self.assertEqual(coords.from_kgs(utils_test.BOARD_SIZE, 'A1'), (8, 0))
        self.assertEqual(coords.from_kgs(utils_test.BOARD_SIZE, 'A9'), (0, 0))
        self.assertEqual(coords.from_kgs(utils_test.BOARD_SIZE, 'C2'), (7, 2))
        self.assertEqual(coords.from_kgs(utils_test.BOARD_SIZE, 'J2'), (7, 8))
        self.assertEqual(coords.from_pygtp(utils_test.BOARD_SIZE, (1, 1)),
                         (8, 0))
        self.assertEqual(coords.from_pygtp(utils_test.BOARD_SIZE, (1, 9)),
                         (0, 0))
        self.assertEqual(coords.from_pygtp(utils_test.BOARD_SIZE, (3, 2)),
                         (7, 2))
        self.assertEqual(coords.to_pygtp(utils_test.BOARD_SIZE, (8, 0)),
                         (1, 1))
        self.assertEqual(coords.to_pygtp(utils_test.BOARD_SIZE, (0, 0)),
                         (1, 9))
        self.assertEqual(coords.to_pygtp(utils_test.BOARD_SIZE, (7, 2)),
                         (3, 2))

        self.assertEqual(coords.to_kgs(utils_test.BOARD_SIZE, (0, 8)), 'J9')
        self.assertEqual(coords.to_kgs(utils_test.BOARD_SIZE, (8, 0)), 'A1')
Пример #2
0
    def test_parsing_9x9(self):
        self.assertEqual(coords.from_sgf('aa'), (0, 0))
        self.assertEqual(coords.from_sgf('ac'), (2, 0))
        self.assertEqual(coords.from_sgf('ca'), (0, 2))
        self.assertEqual(coords.from_sgf(''), None)
        self.assertEqual(coords.to_sgf(None), '')
        self.assertEqual(
            'aa',
            coords.to_sgf(coords.from_sgf('aa')))
        self.assertEqual(
            'sa',
            coords.to_sgf(coords.from_sgf('sa')))
        self.assertEqual(
            (1, 17),
            coords.from_sgf(coords.to_sgf((1, 17))))
        self.assertEqual(coords.from_kgs('A1'), (8, 0))
        self.assertEqual(coords.from_kgs('A9'), (0, 0))
        self.assertEqual(coords.from_kgs('C2'), (7, 2))
        self.assertEqual(coords.from_kgs('J2'), (7, 8))
        self.assertEqual(coords.from_pygtp((1, 1)), (8, 0))
        self.assertEqual(coords.from_pygtp((1, 9)), (0, 0))
        self.assertEqual(coords.from_pygtp((3, 2)), (7, 2))
        self.assertEqual(coords.to_pygtp((8, 0)), (1, 1))
        self.assertEqual(coords.to_pygtp((0, 0)), (1, 9))
        self.assertEqual(coords.to_pygtp((7, 2)), (3, 2))

        self.assertEqual(coords.to_kgs((0, 8)), 'J9')
        self.assertEqual(coords.to_kgs((8, 0)), 'A1')
Пример #3
0
    def test_pass(self):
        self.assertEqual(coords.from_sgf(''), None)
        self.assertEqual(coords.from_flat(81), None)
        self.assertEqual(coords.from_kgs('pass'), None)
        self.assertEqual(coords.from_pygtp((0, 0)), None)

        self.assertEqual(coords.to_sgf(None), '')
        self.assertEqual(coords.to_flat(None), 81)
        self.assertEqual(coords.to_kgs(None), 'pass')
        self.assertEqual(coords.to_pygtp(None), (0, 0))
Пример #4
0
  def test_topleft(self):
    self.assertEqual(coords.from_sgf('ia'), (0, 8))
    self.assertEqual(coords.from_flat(utils_test.BOARD_SIZE, 8), (0, 8))
    self.assertEqual(coords.from_kgs(utils_test.BOARD_SIZE, 'J9'), (0, 8))
    self.assertEqual(coords.from_pygtp(utils_test.BOARD_SIZE, (9, 9)), (0, 8))

    self.assertEqual(coords.to_sgf((0, 8)), 'ia')
    self.assertEqual(coords.to_flat(utils_test.BOARD_SIZE, (0, 8)), 8)
    self.assertEqual(coords.to_kgs(utils_test.BOARD_SIZE, (0, 8)), 'J9')
    self.assertEqual(coords.to_pygtp(utils_test.BOARD_SIZE, (0, 8)), (9, 9))
Пример #5
0
    def test_upperleft(self):
        self.assertEqual(coords.from_sgf('aa'), (0, 0))
        self.assertEqual(coords.from_flat(0), (0, 0))
        self.assertEqual(coords.from_kgs('A9'), (0, 0))
        self.assertEqual(coords.from_pygtp((1, 9)), (0, 0))

        self.assertEqual(coords.to_sgf((0, 0)), 'aa')
        self.assertEqual(coords.to_flat((0, 0)), 0)
        self.assertEqual(coords.to_kgs((0, 0)), 'A9')
        self.assertEqual(coords.to_pygtp((0, 0)), (1, 9))
Пример #6
0
    def test_pass(self):
        self.assertEqual(coords.from_sgf(''), None)
        self.assertEqual(coords.from_flat(81), None)
        self.assertEqual(coords.from_kgs('pass'), None)
        self.assertEqual(coords.from_pygtp((0, 0)), None)

        self.assertEqual(coords.to_sgf(None), '')
        self.assertEqual(coords.to_flat(None), 81)
        self.assertEqual(coords.to_kgs(None), 'pass')
        self.assertEqual(coords.to_pygtp(None), (0, 0))
Пример #7
0
    def test_topleft(self):
        self.assertEqual(coords.from_sgf('ia'), (0, 8))
        self.assertEqual(coords.from_flat(8), (0, 8))
        self.assertEqual(coords.from_kgs('J9'), (0, 8))
        self.assertEqual(coords.from_pygtp((9, 9)), (0, 8))

        self.assertEqual(coords.to_sgf((0, 8)), 'ia')
        self.assertEqual(coords.to_flat((0, 8)), 8)
        self.assertEqual(coords.to_kgs((0, 8)), 'J9')
        self.assertEqual(coords.to_pygtp((0, 8)), (9, 9))
Пример #8
0
    def test_upperleft(self):
        self.assertEqual(coords.from_sgf('aa'), (0, 0))
        self.assertEqual(coords.from_flat(0), (0, 0))
        self.assertEqual(coords.from_kgs('A9'), (0, 0))
        self.assertEqual(coords.from_pygtp((1, 9)), (0, 0))

        self.assertEqual(coords.to_sgf((0, 0)), 'aa')
        self.assertEqual(coords.to_flat((0, 0)), 0)
        self.assertEqual(coords.to_kgs((0, 0)), 'A9')
        self.assertEqual(coords.to_pygtp((0, 0)), (1, 9))
Пример #9
0
  def test_pass(self):
    self.assertEqual(coords.from_sgf(''), None)
    self.assertEqual(coords.from_flat(utils_test.BOARD_SIZE, 81), None)
    self.assertEqual(coords.from_kgs(utils_test.BOARD_SIZE, 'pass'), None)
    self.assertEqual(coords.from_pygtp(utils_test.BOARD_SIZE, (0, 0)), None)

    self.assertEqual(coords.to_sgf(None), '')
    self.assertEqual(coords.to_flat(utils_test.BOARD_SIZE, None), 81)
    self.assertEqual(coords.to_kgs(utils_test.BOARD_SIZE, None), 'pass')
    self.assertEqual(coords.to_pygtp(utils_test.BOARD_SIZE, None), (0, 0))
Пример #10
0
    def test_topleft(self):
        self.assertEqual(coords.from_sgf('ia'), (0, 8))
        self.assertEqual(coords.from_flat(8), (0, 8))
        self.assertEqual(coords.from_kgs('J9'), (0, 8))
        self.assertEqual(coords.from_pygtp((9, 9)), (0, 8))

        self.assertEqual(coords.to_sgf((0, 8)), 'ia')
        self.assertEqual(coords.to_flat((0, 8)), 8)
        self.assertEqual(coords.to_kgs((0, 8)), 'J9')
        self.assertEqual(coords.to_pygtp((0, 8)), (9, 9))
Пример #11
0
  def test_upperleft(self):
    self.assertEqual(coords.from_sgf('aa'), (0, 0))
    self.assertEqual(coords.from_flat(utils_test.BOARD_SIZE, 0), (0, 0))
    self.assertEqual(coords.from_kgs(utils_test.BOARD_SIZE, 'A9'), (0, 0))
    self.assertEqual(coords.from_pygtp(utils_test.BOARD_SIZE, (1, 9)), (0, 0))

    self.assertEqual(coords.to_sgf((0, 0)), 'aa')
    self.assertEqual(coords.to_flat(utils_test.BOARD_SIZE, (0, 0)), 0)
    self.assertEqual(coords.to_kgs(utils_test.BOARD_SIZE, (0, 0)), 'A9')
    self.assertEqual(coords.to_pygtp(utils_test.BOARD_SIZE, (0, 0)), (1, 9))
Пример #12
0
    def test_pass(self):
        self.assertEqual(coords.from_sgf(''), None)
        self.assertEqual(coords.from_flat(utils_test.BOARD_SIZE, 81), None)
        self.assertEqual(coords.from_kgs(utils_test.BOARD_SIZE, 'pass'), None)
        self.assertEqual(coords.from_pygtp(utils_test.BOARD_SIZE, (0, 0)),
                         None)

        self.assertEqual(coords.to_sgf(None), '')
        self.assertEqual(coords.to_flat(utils_test.BOARD_SIZE, None), 81)
        self.assertEqual(coords.to_kgs(utils_test.BOARD_SIZE, None), 'pass')
        self.assertEqual(coords.to_pygtp(utils_test.BOARD_SIZE, None), (0, 0))
Пример #13
0
    def test_topleft(self):
        self.assertEqual(coords.from_sgf('ia'), (0, 8))
        self.assertEqual(coords.from_flat(utils_test.BOARD_SIZE, 8), (0, 8))
        self.assertEqual(coords.from_kgs(utils_test.BOARD_SIZE, 'J9'), (0, 8))
        self.assertEqual(coords.from_pygtp(utils_test.BOARD_SIZE, (9, 9)),
                         (0, 8))

        self.assertEqual(coords.to_sgf((0, 8)), 'ia')
        self.assertEqual(coords.to_flat(utils_test.BOARD_SIZE, (0, 8)), 8)
        self.assertEqual(coords.to_kgs(utils_test.BOARD_SIZE, (0, 8)), 'J9')
        self.assertEqual(coords.to_pygtp(utils_test.BOARD_SIZE, (0, 8)),
                         (9, 9))
Пример #14
0
    def test_upperleft(self):
        self.assertEqual(coords.from_sgf('aa'), (0, 0))
        self.assertEqual(coords.from_flat(utils_test.BOARD_SIZE, 0), (0, 0))
        self.assertEqual(coords.from_kgs(utils_test.BOARD_SIZE, 'A9'), (0, 0))
        self.assertEqual(coords.from_pygtp(utils_test.BOARD_SIZE, (1, 9)),
                         (0, 0))

        self.assertEqual(coords.to_sgf((0, 0)), 'aa')
        self.assertEqual(coords.to_flat(utils_test.BOARD_SIZE, (0, 0)), 0)
        self.assertEqual(coords.to_kgs(utils_test.BOARD_SIZE, (0, 0)), 'A9')
        self.assertEqual(coords.to_pygtp(utils_test.BOARD_SIZE, (0, 0)),
                         (1, 9))
Пример #15
0
    def cmd_mg_genmove(self, arguments):
        """Like regular genmove but reports the MCTS status periodically.

        Args:
          arguments: A string containing how many calls to tree_search should be
                     made between reporting the MCTS status.
        """

        game = self._game

        start = time.time()
        debug_interval = int(arguments)
        current_readouts = game.root.N
        # This rather strange initial value means that the search status will
        # be reported after the very first call to tree_search, rather than
        # after debug_interval calls.
        last_dbg = -debug_interval
        leaves = None
        num_readouts = game.simulations_per_move
        while game.root.N < current_readouts + num_readouts:
            search_result = game.tree_search()
            if search_result:
                leaves = search_result
            if game.root.N - last_dbg > debug_interval:
                last_dbg = game.root.N
                self._minigui_report_search_status(leaves)

        move = game.pick_move()

        duration = time.time() - start

        self._minigui_report_search_status(leaves)

        dbg("")
        dbg(game.root.describe())
        if game.should_resign():
            game.set_result(-1 * game.root.position.to_play, was_resign=True)
            # Tell the game object that we're passing to update the root node.
            # This is required to ensure that subsequents calls to gamestate
            # return the correct information.
            game.play_move(None)
            return gtp.RESIGN
        game.play_move(move)
        if game.root.is_done():
            game.set_result(game.root.position.result(), was_resign=False)
        dbg("")
        dbg(game.root.position.__str__(colors=False))
        dbg("%d readouts, %.3f s/100. (%.2f sec)", num_readouts,
            duration / num_readouts * 100.0, duration)
        dbg("")
        return gtp.gtp_vertex(coords.to_pygtp(move))
Пример #16
0
 def get_move(self, color):
     self.accomodate_out_of_turn(color)
     move = self.suggest_move(self.position)
     if self.should_resign():
         return gtp.RESIGN
     return coords.to_pygtp(self.board_size, move)
Пример #17
0
 def get_move(self, color):
     self.accomodate_out_of_turn(color)
     move = self.suggest_move(self.position)
     if self.should_resign():
         return gtp.RESIGN
     return coords.to_pygtp(move)