@override Iterable<Card> popN(int n) sync* { if (n > _cards.length) n = _cards.length; for (int i = 0; i < n; i += 1) { yield _cards.removeLast(); } }