Esempio n. 1
0
 def _check(self, tup_tree, tree_name, expected):
     tree = make_tree(tup_tree)
     v = alpha_beta_search(tree, 10, tree_eval, tree_get_next_move, is_leaf)
     try:
         self.assertEqual(v, expected)
     except Exception as e:
         self.log.error("%s:\n%s", tree_name, tree_as_string(tree))
         self.log.error("BEST MOVE: %s", format(v))
         self.log.error("EXPECTED: %s", format(expected))
         raise e
Esempio n. 2
0
 def test_search_3(self):
     actual_score = alpha_beta_search(self.WINNING_BOARD, 2,
                                      focused_evaluate)
     expected_score = 1
     self.assertEqual(actual_score, expected_score)
Esempio n. 3
0
 def test_search_6(self):
     actual_score = alpha_beta_search(self.BARELY_WINNING_BOARD, 2,
                                      better_evaluate)
     expected_score = 3
     self.assertEqual(actual_score, expected_score)
Esempio n. 4
0
    elif args.mode == 'my_player_vs_basic':
        run_game(my_player, basic_player)
    elif args.mode == 'debug_evaluate':
        '''board_tuples = ((0, 0, 0, 0, 0, 0, 0),
                        (0, 0, 0, 0, 0, 0, 0),
                        (0, 0, 0, 0, 0, 0, 0),
                        (0, 2, 2, 1, 1, 2, 0),
                        (0, 2, 1, 2, 1, 2, 0),
                        (2, 1, 2, 1, 1, 1, 0),
                        )'''

        board_tuples = (
            (0, 0, 0, 0, 0, 0, 0),
            (0, 0, 0, 0, 0, 0, 0),
            (2, 0, 0, 0, 0, 0, 0),
            (1, 2, 0, 0, 0, 0, 0),
            (1, 1, 0, 0, 0, 0, 0),
            (1, 1, 2, 2, 2, 0, 0),
        )
        test_board_1 = ConnectFourBoard(board_array=board_tuples,
                                        current_player=1)
        test_board_2 = ConnectFourBoard(board_array=board_tuples,
                                        current_player=2)
        actual_score = alpha_beta_search(test_board_1, 8, better_evaluate)

        print actual_score
        # better evaluate from player 1
        #print("{} => {}".format(test_board_1, better_evaluate(test_board_1)))
        # better evaluate from player 2
        #print("{} => {}".format(test_board_2, better_evaluate(test_board_2)))