bool Dealer::accept(CardSet & opened) { Card openedRank; if (discarded.isEmpty() && opened.isEmpty() ) return false; // regarded as "pass for empty discard pile." if (!discarded.isEmpty() && discarded.size() != opened.size()) // the number of cards must be match. no five cards w/ Jkr allowed. return false; if (!checkRankUniqueness(opened)) return false; openedRank = getCardRank(opened); if (!discarded.isEmpty()) // 場にカードがでていないのであれば無条件に受理 if (!openedRank.isGreaterThan(discardedRank)) return false; // passed all the checks. discarded.makeEmpty(); //clear(); discarded.insert(opened); // discarded.insertAll(opened); opened.makeEmpty(); //clear(); discardedRank=openedRank; return true; }