def test_get_best_moves(self): board = KalahBoard(4, 4) self.assertEqual(board.get_board(), [4, 4, 4, 4, 0, 4, 4, 4, 4, 0]) self.assertEqual(board.allowed_moves(), [0, 1, 2, 3]) self.assertEqual(utils.get_best_moves(board), [0, 1, 2, 3]) board.set_board([4, 0, 5, 5, 1, 5, 4, 4, 4, 0]) self.assertEqual(board.allowed_moves(), [0, 2, 3]) self.assertEqual(utils.get_best_moves(board), [0, 2, 3]) board.set_board([4, 0, 5, 5, 1, 5, 4, 4, 4, 0]) self.assertEqual(board.allowed_moves(), [0, 2, 3]) self.assertEqual(utils.get_best_moves(board), [0, 2, 3]) board.set_current_player(1) board.set_board([4, 0, 5, 5, 1, 5, 4, 4, 4, 0]) self.assertEqual(board.allowed_moves(), [5, 6, 7, 8]) self.assertEqual(utils.get_best_moves(board), [5, 6, 7, 8])
def test_moves_6_4(self): board = KalahBoard(6, 4) board.set_board([0, 0, 0, 0, 0, 1, 24, 0, 0, 0, 2, 0, 0, 21]) board.set_current_player(1) self.assertEqual(board.get_board(), [0, 0, 0, 0, 0, 1, 24, 0, 0, 0, 2, 0, 0, 21]) self.assertEqual(board.current_player(), 1) self.assertEqual(board.game_over(), False) self.assertEqual(board.score(), [24, 21]) self.assertEqual(board.allowed_moves(), [10]) self.assertEqual(board.move(10), True) self.assertEqual(board.get_board(), [0, 0, 0, 0, 0, 1, 24, 0, 0, 0, 0, 1, 1, 21]) self.assertEqual(board.current_player(), 0) self.assertEqual(board.game_over(), False) self.assertEqual(board.score(), [24, 21]) self.assertEqual(board.allowed_moves(), [5]) initial_board = [4, 4, 4, 4, 4, 0, 1, 5, 5, 5, 4, 4, 4, 0] board = KalahBoard(6, 4) board.set_board(initial_board) board.set_current_player(1) self.assertEqual(board.get_board(), initial_board) self.assertEqual(board.current_player(), 1) self.assertEqual(board.game_over(), False) self.assertEqual(board.score(), [1, 0]) self.assertEqual(board.allowed_moves(), [7, 8, 9, 10, 11, 12]) self.assertEqual(board.move(8), True) self.assertEqual(board.get_board(), [4, 4, 4, 4, 4, 0, 1, 5, 0, 6, 5, 5, 5, 1]) self.assertEqual(board.current_player(), 1) self.assertEqual(board.game_over(), False) self.assertEqual(board.score(), [1, 1]) self.assertEqual(board.allowed_moves(), [7, 9, 10, 11, 12])
def test_empty_pit_capture_4_4(self): # Test for player 1 board = KalahBoard(4, 4) board.set_current_player(0) board.set_board([1, 0, 4, 4, 7, 4, 4, 4, 4, 0]) self.assertEqual(board.get_board(), [1, 0, 4, 4, 7, 4, 4, 4, 4, 0]) self.assertEqual(board.current_player(), 0) self.assertEqual(board.game_over(), False) self.assertEqual(board.score(), [7, 0]) self.assertEqual(board.allowed_moves(), [0, 2, 3]) self.assertEqual(board.move(0), True) self.assertEqual(board.get_board(), [0, 0, 4, 4, 12, 4, 0, 4, 4, 0]) self.assertEqual(board.current_player(), 1) self.assertEqual(board.game_over(), False) self.assertEqual(board.score(), [12, 0]) self.assertEqual(board.allowed_moves(), [5, 7, 8]) # Test for player 2 board = KalahBoard(4, 4) board.set_current_player(1) board.set_board([4, 0, 5, 5, 1, 5, 4, 4, 4, 0]) self.assertEqual(board.get_board(), [4, 0, 5, 5, 1, 5, 4, 4, 4, 0]) self.assertEqual(board.current_player(), 1) self.assertEqual(board.game_over(), False) self.assertEqual(board.score(), [1, 0]) self.assertEqual(board.allowed_moves(), [5, 6, 7, 8]) self.assertEqual(board.move(7), True) self.assertEqual(board.get_board(), [5, 1, 5, 5, 1, 5, 4, 0, 5, 1]) self.assertEqual(board.current_player(), 0) self.assertEqual(board.game_over(), False) self.assertEqual(board.score(), [1, 1]) self.assertEqual(board.allowed_moves(), [0, 1, 2, 3])