public boolean doTakeCard(int k) {
        // System.out.println("DOING TAKE CARD ...");

        Card card = cardRow.get(k);

        // === preparation for take-card ===拿牌前的準備
        //(1)enough point to take card點數要夠
        int cardPoint = CARD_POINT[k];
        if (get當前玩家內政點數() < cardPoint) {
            System.out.println("Not enough point to take card. ***Nothing happened***");
            return true;
        }

        //(2)not allow to take any card which is being taken within this round 不允許拿空牌
        if (card.get卡名().length() == 0) {
            System.out.println("This card has been taken! ***Nothing happened***");
            return true;
        }

        //(3)not allow to take AgeA leader if you ever took it successfully 不允許拿兩張A時代領袖的牌
        if (card.get時代() == 0 && card.get類型() == CardType.領袖) {
            if (isPlayerPossessedAgeALeader(get當前玩家())) {
                System.out.println("You are/were holing Age A leader before!***Nothing happened***");
                return true;
            }
            setPlayerPossessedAgeALeader(get當前玩家());
        }
        //TODO(4)不允許拿兩張同名的科技牌
        // === maintain take-card successfully ===
        switch (當前玩家) {
            case 1:
                player1Cards.add(cardRow.get(k));
                break;
            case 2:
                player2Cards.add(cardRow.get(k));
                break;
            case 3:
                player3Cards.add(cardRow.get(k));
                break;
            case 4:
                player4Cards.add(cardRow.get(k));
                break;
            default:
                return false;
        }
        System.out.println("player" + 當前玩家 + " 拿取 [" + cardRow.get(k).get卡名() + "]");
        do拿牌扣點(cardPoint);
        cardRow.remove(k);//從卡牌列上移除該牌
        cardRow.add(k, NOCARD);//並在卡牌列同一個位置增加空牌

        return true;
    }